diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2002-02-01 11:11:26 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2002-02-01 11:11:26 +0000 | 
| commit | 0d5bfe883e95038be1efff4b72b45122dc1fec9d (patch) | |
| tree | 004e222a5e34bfeb8f620c267e0d8c7b3e9e4098 | |
| parent | cc2f1d4894c682861a6eab09afd1fbd3a045dfa8 (diff) | |
Andreas Damm made getdate use gmtime_r if available
| -rw-r--r-- | lib/getdate.c | 9 | ||||
| -rw-r--r-- | lib/getdate.y | 11 | 
2 files changed, 17 insertions, 3 deletions
| diff --git a/lib/getdate.c b/lib/getdate.c index 68653d3fb..f6941e708 100644 --- a/lib/getdate.c +++ b/lib/getdate.c @@ -2102,7 +2102,14 @@ curl_getdate (const char *p, const time_t *now)    if (cookie.yyHaveZone)      {        long delta; -      struct tm *gmt = gmtime (&Start); +      struct tm *gmt; +#ifdef HAVE_GMTIME_R +      /* thread-safe version */ +      struct tm keeptime; +      gmt = (struct tm *)gmtime_r(&Start, &keeptime); +#else +      gmt = gmtime(&Start); +#endif        if (!gmt)  	return -1;        delta = cookie.yyTimezone * 60L + difftm (&tm, gmt); diff --git a/lib/getdate.y b/lib/getdate.y index cf5f920db..e63eb6e0b 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -211,7 +211,7 @@ typedef struct _CONTEXT {  %expect 13  /* turn global variables into locals, additionally enable extra arguments -** for yylex (pointer to yylval and use defined value) +** for yylex (pointer to yylval and user defined value)  */  %pure_parser @@ -1058,7 +1058,14 @@ curl_getdate (const char *p, const time_t *now)    if (cookie.yyHaveZone)      {        long delta; -      struct tm *gmt = gmtime (&Start); +      struct tm *gmt; +#ifdef HAVE_GMTIME_R +      /* thread-safe version */ +      struct tm keeptime; +      gmt = (struct tm *)gmtime_r(&Start, &keeptime); +#else +      gmt = gmtime(&Start); +#endif        if (!gmt)  	return -1;        delta = cookie.yyTimezone * 60L + difftm (&tm, gmt); | 
