X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Faccesslog.c;h=4c06e69fef026f7f913c4246d874a7f83e6c266c;hb=8ad7573acd834e02bffbd7adc3814d4ca5645677;hp=ac324d5fcfe7d4d8578235c23881e5ab319a8f18;hpb=f99bcc64b0dbb3159fec8c64bea42c9ac870a22b;p=ashd.git diff --git a/src/accesslog.c b/src/accesslog.c index ac324d5..4c06e69 100644 --- a/src/accesslog.c +++ b/src/accesslog.c @@ -41,7 +41,7 @@ static char *outname = NULL; static FILE *out; static int flush = 1; static char *format; -static time_t now; +static struct timeval now; static volatile int reopen = 0; static void qputs(char *s, FILE *o) @@ -67,7 +67,6 @@ static void logitem(struct hthead *req, char o, char *d) { char *h, *p; char buf[1024]; - struct timeval tv; switch(o) { case '%': @@ -101,18 +100,17 @@ static void logitem(struct hthead *req, char o, char *d) case 't': if(!*d) d = "%a, %d %b %Y %H:%M:%S %z"; - strftime(buf, sizeof(buf), d, localtime(&now)); + strftime(buf, sizeof(buf), d, localtime(&now.tv_sec)); qputs(buf, out); break; case 'T': if(!*d) d = "%a, %d %b %Y %H:%M:%S %z"; - strftime(buf, sizeof(buf), d, gmtime(&now)); + strftime(buf, sizeof(buf), d, gmtime(&now.tv_sec)); qputs(buf, out); break; case 's': - gettimeofday(&tv, NULL); - fprintf(out, "%06i", (int)tv.tv_usec); + fprintf(out, "%06i", (int)now.tv_usec); break; case 'A': logitem(req, 'h', "X-Ash-Address"); @@ -164,7 +162,7 @@ static void logreq(struct hthead *req) static void serve(struct hthead *req, int fd) { - now = time(NULL); + gettimeofday(&now, NULL); if(sendreq(ch, req, fd)) { flog(LOG_ERR, "accesslog: could not pass request to child: %s", strerror(errno)); exit(1); @@ -206,7 +204,6 @@ int main(int argc, char **argv) int fd; struct pollfd pfd[2]; - optarg = NULL; while((c = getopt(argc, argv, "+hFaf:")) >= 0) { switch(c) { case 'h':