f87aaedc9bcdbda819ff0e01e942b5e74c477829 galt Thu Feb 3 02:12:18 2022 -0800 Fixing multi-threading issues by removing setenv usage in https.c and common.c. refs #28844 diff --git src/lib/common.c src/lib/common.c index 367ed60..c5f803f 100644 --- src/lib/common.c +++ src/lib/common.c @@ -3728,52 +3728,37 @@ return cloneString(skipToNumeric(db)); } boolean isAllDigits(char *s) /* Return TRUE if string is non-empty and contains only digits (i.e. is a nonnegative integer). */ { if (isEmpty(s)) return FALSE; char c; while ((c = *s++) != 0) if (!isdigit(c)) return FALSE; return TRUE; } -time_t mktimeFromUtc (struct tm *t) -/* Return time_t for tm in UTC (GMT) - * Useful for stuff like converting to time_t the - * last-modified HTTP response header - * which is always GMT. Returns -1 on failure of mktime */ -{ - time_t time; - char *tz; - char save_tz[100]; - tz=getenv("TZ"); - if (tz) - safecpy(save_tz, sizeof(save_tz), tz); - setenv("TZ", "GMT0", 1); - tzset(); - t->tm_isdst = 0; - time=mktime(t); - if (tz) - setenv("TZ", save_tz, 1); - else - unsetenv("TZ"); - tzset(); - return (time); + +time_t mktimeFromUtc(struct tm *tm) +{ +time_t ret = tm->tm_sec + tm->tm_min*60 + tm->tm_hour*3600 + tm->tm_yday*86400; +ret += ((time_t)31536000) * (tm->tm_year-70); +ret += ((tm->tm_year-69)/4)*86400 - ((tm->tm_year-1)/100)*86400 + ((tm->tm_year+299)/400)*86400; +return ret; } time_t dateToSeconds(const char *date,const char*format) // Convert a string date to time_t { struct tm storage={0,0,0,0,0,0,0,0,0}; if (strptime(date,format,&storage)==NULL) return 0; else return mktime(&storage); } boolean dateIsOld(const char *date,const char*format) // Is this string date older than now?