X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Faccesslog.c;h=88b61b3a889067922295b56703c97811f76077a7;hb=b1b0fe0f4793825232288427da4856e9adf8b868;hp=3a978e052fed76b6e5be8b4d010e611034d7e422;hpb=e09f3227872481af1a7bafe50d71a60f47292ac2;p=ashd.git diff --git a/src/accesslog.c b/src/accesslog.c index 3a978e0..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", *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);