Re: htdig: htsearch logging problem


Doug (DougB@simplenet.com)
Fri, 22 Jan 1999 16:08:38 -0800


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 <dwf@WebThreads.Com> 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();

----------------------------------------------------------------------
To unsubscribe from the htdig mailing list, send a message to
htdig-request@sdsu.edu containing the single word "unsubscribe" in
the body of the message.



This archive was generated by hypermail 2.0b3 on Mon Jan 25 1999 - 08:15:24 PST