X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_cgi.c;h=53c104f08aaa2797bf9fa766b4d8cc4ec861def2;hb=298b318acaf1147474ab9e97cac37c3608660efd;hp=9c81c1543cae8d00df10b29d273a303a2ba1baec;hpb=0fe03275068c0e55d01a7cc2308fa12fdee569cf;p=rrdtool.git diff --git a/src/rrd_cgi.c b/src/rrd_cgi.c index 9c81c15..53c104f 100644 --- a/src/rrd_cgi.c +++ b/src/rrd_cgi.c @@ -128,9 +128,9 @@ int main(int argc, char *argv[]) { server_url = getenv("SERVER_URL"); } - if (optind != argc-1) { - fprintf(stderr, "ERROR: expected a filename\n"); - exit(1); + if ( (optind != argc-2 && strstr(getenv("SERVER_SOFTWARE"),"Apache/2") != NULL) && optind != argc-1) { + fprintf(stderr, "ERROR: expected a filename\n"); + exit(1); } else { length = readfile(argv[optind], &buffer, 1); } @@ -413,7 +413,7 @@ char* printtimelast(long argc, char **args) { rrd_clear_error(); return err; } - tm_last = *localtime(&last); + localtime_r(&last, &tm_last); strftime(buf,254,args[1],&tm_last); return buf; } @@ -432,7 +432,7 @@ char* printtimenow(long argc, char **args) { if (buf == NULL){ return stralloc("[ERROR: allocating strftime buffer]"); }; - tm_now = *localtime(&now); + localtime_r(&now, &tm_now); strftime(buf,254,args[0],&tm_now); return buf; } @@ -578,10 +578,10 @@ int parse(char **buf, long i, char *tag, char * http_time(time_t *now) { - struct tm *tmptime; + struct tm tmptime; static char buf[60]; - tmptime=gmtime(now); - strftime(buf,sizeof(buf),"%a, %d %b %Y %H:%M:%S GMT",tmptime); + gmtime_r(now, &tmptime); + strftime(buf,sizeof(buf),"%a, %d %b %Y %H:%M:%S GMT", &tmptime); return(buf); }