--- a/src/server/util/util.c Sat Oct 17 23:05:23 2015 +0200 +++ b/src/server/util/util.c Fri Oct 23 17:28:09 2015 +0200 @@ -906,3 +906,70 @@ return gmtime_r(clock, res); } +int util_isdate(char *str) { + sstr_t datestr = sstr(str); + sstr_t example = S("Sun, 06 Nov 1994 08:49:37 GMT"); + + if(datestr.length != example.length) { + return 0; + } + + for(int i=0;i<datestr.length;i++) { + char e = example.ptr[i]; + if(isdigit(e)) { + if(!isdigit(datestr.ptr[i])) { + return 0; + } + } else if(e == ' ') { + if(datestr.ptr[i] != ' ') { + return 0; + } + } else if(e == ',') { + if(datestr.ptr[i] != ',') { + return 0; + } + } else if(e == ':') { + if(datestr.ptr[i] != ':') { + return 0; + } + } + } + + if(!sstrsuffix(datestr, S("GMT"))) { + return 0; + } + + return 1; +} + + +/* ------------------------- util_mime_separator -------------------------- */ + + +NSAPI_PUBLIC int util_mime_separator(char *sep) +{ + int size = 35; // documented in nsapi.h + int pos = 0; + + sep[pos++] = CR; + sep[pos++] = LF; + sep[pos++] = '-'; + sep[pos++] = '-'; + + int r[6]; + for(int i=0;i<6;i++) { + r[i] = rand() % 10000; + } + pos += snprintf( + sep+4, + size-4, + "X%04x%04x%04x%04x%04x%04xE", + r[0], + r[1], + r[2], + r[3], + r[4], + r[5]); + + return pos; +}