Doug wrote:
>
> Now that things are running the way I want them, I started looking at
> some of the other features. When I enable the logging feature htsearch
> dumps core every time.
Ok, Gilles' patch fixed the logging... thanks once again. :) Here is
the complete info on the changes I made for our version of htdig. If
anyone spots something really silly, please don't hesitate to let me
know.
Doug
diff -cr htdig-3.1.0b4-stock/htlib/URL.cc htdig-3.1.0b4/htlib/URL.cc
*** htdig-3.1.0b4-stock/htlib/URL.cc Thu Dec 24 09:20:20 1998
--- htdig-3.1.0b4/htlib/URL.cc Thu Jan 21 12:32:17 1999
***************
*** 137,142 ****
--- 137,145 ----
// Thanks goes to David Filiatrault <[EMAIL PROTECTED]> for suggesting
// this removal process.
//
+
+ char *stupid_question_mark = strchr(ref, '?');
+
char *anchor = strchr(ref, '#');
char *params = strchr(ref, '?');
if (anchor)
***************
*** 155,160 ****
--- 158,171 ----
}
}
+
+ // Well, if that works for anchors will it work for the stinkin' ?'s
+ if (stupid_question_mark)
+ {
+ *stupid_question_mark = '\0';
+ }
+
+
//
// If, after the removal of a possible '#' we have nothing left,
// we just want to use the base URL.
***************
*** 277,285 ****
--- 288,303 ----
// Ignore any part of the URL that follows the '#' since this is just
// an index into a document.
//
+
+ char *stupid_question_mark = strchr(nurl, '?');
char *p = strchr(nurl, '#');
if (p)
*p = '\0';
+
+ if (stupid_question_mark)
+ {
+ *stupid_question_mark = '\0';
+ }
//
// Extract the service
diff -cr htdig-3.1.0b4-stock/htsearch/Display.cc htdig-3.1.0b4/htsearch/Display.cc
*** htdig-3.1.0b4-stock/htsearch/Display.cc Tue Dec 22 18:15:39 1998
--- htdig-3.1.0b4/htsearch/Display.cc Fri Jan 22 15:47:11 1999
***************
*** 114,119 ****
--- 114,120 ----
#include <ctype.h>
#include <syslog.h>
+ extern char *sn_query_string;
//*****************************************************************************
//
***************
*** 351,356 ****
--- 352,359 ----
int matchesPerPage = config.Value("matches_per_page");
int nPages = (nMatches + matchesPerPage - 1) / matchesPerPage;
+ vars.Add("SN_QUERY_STRING", new String(sn_query_string));
+
if (nPages < 1)
nPages = 1; // We always have at least one page...
vars.Add("MATCHES_PER_PAGE", new String(config["matches_per_page"]));
***************
*** 498,503 ****
--- 501,511 ----
s << "format=" << input->get("format") << '&';
if (input->exists("matchesperpage"))
s << "matchesperpage=" << input->get("matchesperpage") << '&';
+
+ // Add query string
+ if (sn_query_string)
+ s << "SN_query_string=" << sn_query_string << '&';
+
if (input->exists("words"))
s << "words=" << input->get("words") << '&';
s << "page=" << pageNumber;
***************
*** 1023,1037 ****
int level = LOG_LEVEL;
int facility = LOG_FACILITY;
if (matches)
nMatches = matches->Count();
openlog("htsearch", LOG_PID, facility);
syslog(level, "%s [%s] (%s) [%s] [%s] (%d/%s) - %d -- %s\n",
! getenv("REMOTE_HOST"),
input->exists("config") ? input->get("config") : "default",
config["match_method"], input->get("words"), logicalWords.get(),
nMatches, config["matches_per_page"],
! page, getenv("HTTP_REFERER")
);
}
--- 1031,1056 ----
int level = LOG_LEVEL;
int facility = LOG_FACILITY;
+ char *host = getenv("REMOTE_HOST");
+ char *ref = getenv("HTTP_REFERER");
+
+ if (host == NULL)
+ host = getenv("REMOTE_ADDR");
+ if (host == NULL)
+ host = "-";
+
+ if (ref == NULL)
+ ref = "-";
+
if (matches)
nMatches = matches->Count();
openlog("htsearch", LOG_PID, facility);
syslog(level, "%s [%s] (%s) [%s] [%s] (%d/%s) - %d -- %s\n",
! host,
input->exists("config") ? input->get("config") : "default",
config["match_method"], input->get("words"), logicalWords.get(),
nMatches, config["matches_per_page"],
! page, ref
);
}
diff -cr htdig-3.1.0b4-stock/htsearch/htsearch.cc htdig-3.1.0b4/htsearch/htsearch.cc
*** htdig-3.1.0b4-stock/htsearch/htsearch.cc Tue Dec 22 17:53:16 1998
--- htdig-3.1.0b4/htsearch/htsearch.cc Fri Jan 22 15:59:15 1999
***************
*** 100,105 ****
--- 100,106 ----
int debug = 0;
int minimum_word_length = 3;
+ char *sn_query_string;
//*****************************************************************************
// int main()
***************
*** 218,223 ****
--- 219,227 ----
if (input.exists("keywords"))
requiredWords.Create(input["keywords"], " \t\r\n");
+ if (input.exists("SN_query_string"))
+ sn_query_string = input["SN_query_string"];
+
minimum_word_length = config.Value("minimum_word_length", minimum_word_length);
Parser *parser = new Parser();