X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Faccesslog.c;h=88b61b3a889067922295b56703c97811f76077a7;hb=e6fbc5e5b16049336cb7357d387b0f08e91fad59;hp=0c292c818f7b5c0c13c1e2270c26ed8a93fba124;hpb=9a98cec1b50ed03008cccf2778db47c0f4f23cc3;p=ashd.git diff --git a/src/accesslog.c b/src/accesslog.c index 0c292c8..88b61b3 100644 --- a/src/accesslog.c +++ b/src/accesslog.c @@ -46,8 +46,10 @@ static char *format; static struct timeval now; static volatile int reopen = 0; -static void qputs(char *s, FILE *o) +static void qputs(char *sp, FILE *o) { + unsigned char *s = (unsigned char *)sp; + for(; *s; s++) { if(*s == '\"') { fputs("\\\"", o); @@ -58,7 +60,7 @@ static void qputs(char *s, FILE *o) } else if(*s == '\t') { fputs("\\t", o); } else if((*s < 32) || (*s >= 128)) { - fprintf(o, "\\x%02x", (int)(unsigned char)*s); + fprintf(o, "\\x%02x", (int)*s); } else { fputc(*s, o); } @@ -395,6 +397,7 @@ int main(int argc, char **argv) if(pfd[1].revents & POLLHUP) break; } + fclose(out); if(pidfile != NULL) unlink(pidfile); return(0);