diff -c WWW-orig/Daemon/Implementation/HTConfig.c WWW/Daemon/Implementation/HTConfig.c *** WWW-orig/Daemon/Implementation/HTConfig.c Mon Sep 26 09:22:52 1994 --- WWW/Daemon/Implementation/HTConfig.c Mon Dec 12 18:55:06 1994 *************** *** 1682,1687 **** --- 1685,1698 ---- } else if (!strcmp(vec[0], "errorlog")) { sc.error_log_name = tilde_to_home(vec[1]); CTRACE(stderr, "ErrorLog.... %s\n", sc.error_log_name); + + } else if (!strcmp(vec[0], "useragentlog")) { + sc.useragent_log_name = tilde_to_home(vec[1]); + CTRACE(stderr, "UseragentLog... %s\n", sc.useragent_log_name); + + } else if (!strcmp(vec[0], "refererlog")) { + sc.referer_log_name = tilde_to_home(vec[1]); + CTRACE(stderr, "RefererLog...%s\n", sc.referer_log_name); } else if (!strcmp(vec[0], "logfiledateext")) { StrAllocCopy(sc.log_file_date_ext, vec[1]); diff -c WWW-orig/Daemon/Implementation/HTConfig.h WWW/Daemon/Implementation/HTConfig.h *** WWW-orig/Daemon/Implementation/HTConfig.h Sun Sep 25 08:55:28 1994 --- WWW/Daemon/Implementation/HTConfig.h Sun Dec 11 18:53:04 1994 *************** *** 79,84 **** --- 79,86 ---- char * proxy_log_name; /* Proxy access log file name */ char * cache_log_name; /* Cache access log file name */ char * error_log_name; /* Error log file name */ + char * useragent_log_name; /* Useragent log file name */ + char * referer_log_name; /* Referer log file name */ char * log_file_date_ext; /* Log file Date Extension */ BOOL reloading; /* Are we now reloding rules */ HTList * rule_files; /* All loaded files by name */ diff -c WWW-orig/Daemon/Implementation/HTLog.c WWW/Daemon/Implementation/HTLog.c *** WWW-orig/Daemon/Implementation/HTLog.c Sun Sep 25 13:53:37 1994 --- WWW/Daemon/Implementation/HTLog.c Sat Jan 14 16:15:27 1995 *************** *** 40,45 **** --- 40,47 ---- PRIVATE FILE * proxy_log = NULL; PRIVATE FILE * cache_log = NULL; PRIVATE FILE * error_log = NULL; + PRIVATE FILE * useragent_log = NULL; + PRIVATE FILE * referer_log = NULL; extern char * HTClientHost; extern char * HTClientHostName; *************** *** 280,285 **** --- 282,289 ---- if (sc.new_logfile_format) { char buf[30]; + char * HTHost = n_pick(HTClientHostName,HTClientHost); + char * HTLogTime = log_time(); if (out.status_code > 0) { #if 0 *************** *** 301,308 **** else strcpy(buf, "- -"); fprintf(log, "%s %s %s [%s] \"%s\" %s\n", ! n_pick(HTClientHostName,HTClientHost), ! r_ident, authuser, log_time(), n_noth(HTReqLine), buf); } else { /* Still old format */ time(&t); --- 305,316 ---- else strcpy(buf, "- -"); fprintf(log, "%s %s %s [%s] \"%s\" %s\n", ! HTHost, r_ident, authuser, HTLogTime, n_noth(HTReqLine), buf); ! fprintf(useragent_log, "%s [%s] \"%s\"\n", ! HTHost, HTLogTime, n_noth(HTUserAgent)); ! if ( HTReferer ) ! fprintf(referer_log, "%s [%s] \"%s\"\n", ! HTHost, HTLogTime, n_noth(HTReferer)); } else { /* Still old format */ time(&t); *************** *** 316,321 **** --- 324,331 ---- } HTFlush(log); + HTFlush(useragent_log); + HTFlush(referer_log); } *************** *** 431,436 **** --- 441,454 ---- fclose(cache_log); cache_log = NULL; } + if (useragent_log) { + fclose(useragent_log); + useragent_log = NULL; + } + if (referer_log) { + fclose(referer_log); + referer_log = NULL; + } } *************** *** 468,473 **** --- 486,493 ---- char * pln = NULL; char * cln = NULL; char * eln = NULL; + char * uln = NULL; + char * rln = NULL; /* * Open access log file *************** *** 544,554 **** --- 564,606 ---- flag = NO; } + /* + * Open useragent log file + */ + if (sc.useragent_log_name) { + uln = time_escapes(sc.useragent_log_name); + useragent_log = do_open(uln); + if (useragent_log) { + CTRACE(stderr, "Log......... \"%s\" opened\n", uln); + } + else { + HTLog_error2("Can't open log file:", uln); + flag = NO; + } + } + + /* + * Open referer log file + */ + if (sc.referer_log_name) { + rln = time_escapes(sc.referer_log_name); + referer_log = do_open(rln); + if (referer_log) { + CTRACE(stderr, "Log......... \"%s\" opened\n", rln); + } + else { + HTLog_error2("Can't open log file:", rln); + flag = NO; + } + } + done: FREE(aln); FREE(pln); FREE(eln); FREE(cln); + FREE(uln); + FREE(rln); return flag; }