Sean CaronStyle cleanup03833748 years agoHistory
174 lines · 3.1 KB · C
RawDownload
/* bijou HTTP server for plan 9 by sean caron (scaron@umich.edu) */ #include "main.h" /* Generate a timestamp for log file entries */void timestamp(char *ptr) {    Tm *ti;     ti = localtime(time(0));     sprint(ptr, "%02d/%02d/%04d %02d:%02d:%02d", (ti->mon)+1, ti->mday, (ti->year)+1900,        ti->hour, ti->min, ti->sec);     return;} /* Generate a timestamp suitable for a directory listing */void file_time(char *ptr, ulong dtime) {    Tm *ti;     char month[4];     ti = gmtime(dtime);     switch (ti->mon) {        case 0:            strcpy(month, "Jan");            break;         case 1:            strcpy(month, "Feb");            break;         case 2:            strcpy(month, "Mar");            break;         case 3:            strcpy(month, "Apr");            break;         case 4:            strcpy(month, "May");            break;         case 5:            strcpy(month, "Jun");            break;         case 6:            strcpy(month, "Jul");            break;         case 7:            strcpy(month, "Aug");            break;         case 8:            strcpy(month, "Sep");            break;         case 9:            strcpy(month, "Oct");            break;         case 10:            strcpy(month, "Nov");            break;         case 11:            strcpy(month, "Dec");            break;    }     sprint(ptr, "%02d-%s-%04d %02d:%02d", ti->mday, month, (ti->year)+1900, ti->hour, ti->min);     return;} /* Generate a RFC1123 compliant timestamp for the Date header field */void rfc1123_time(char *ptr, ulong tm) {    Tm *ti;     char day[4];    char month[4];     ti = gmtime(tm);     switch (ti->wday) {        case 0:            strcpy(day, "Sun");            break;         case 1:            strcpy(day, "Mon");            break;         case 2:            strcpy(day, "Tue");            break;         case 3:            strcpy(day, "Wed");            break;         case 4:            strcpy(day, "Thu");            break;         case 5:            strcpy(day, "Fri");            break;         case 6:            strcpy(day, "Sat");            break;    }	    switch (ti->mon) {        case 0:            strcpy(month, "Jan");            break;         case 1:            strcpy(month, "Feb");            break;         case 2:            strcpy(month, "Mar");            break;         case 3:            strcpy(month, "Apr");            break;         case 4:            strcpy(month, "May");            break;         case 5:            strcpy(month, "Jun");            break;         case 6:            strcpy(month, "Jul");            break;         case 7:            strcpy(month, "Aug");            break;         case 8:            strcpy(month, "Sep");            break;         case 9:            strcpy(month, "Oct");            break;         case 10:            strcpy(month, "Nov");            break;         case 11:            strcpy(month, "Dec");            break;    }     sprint(ptr, "%s, %02d %s %04d %02d:%02d:%02d GMT", day, ti->mday, month, (ti->year)+1900,         ti->hour, ti->min, ti->sec);     return;}