mirror of
https://github.com/curl/curl.git
synced 2026-08-24 19:13:39 +03:00
added localtime_r()
This commit is contained in:
parent
c1ab16dabb
commit
9d5c6df788
4 changed files with 295 additions and 272 deletions
|
|
@ -9,10 +9,13 @@
|
|||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
# include "config.h"
|
||||
# ifdef HAVE_ALLOCA_H
|
||||
# include <alloca.h>
|
||||
# endif
|
||||
# ifdef HAVE_TIME_H
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Since the code of getdate.y is not included in the Emacs executable
|
||||
|
|
@ -468,6 +471,7 @@ o_merid : /* NULL */
|
|||
|
||||
extern struct tm *gmtime ();
|
||||
extern struct tm *localtime ();
|
||||
extern struct tm *localtime_r (time_t *, struct tm *);
|
||||
extern time_t mktime ();
|
||||
|
||||
/* Month and day table. */
|
||||
|
|
@ -918,10 +922,16 @@ curl_getdate (const char *p, const time_t *now)
|
|||
{
|
||||
struct tm tm, tm0, *tmp;
|
||||
time_t Start;
|
||||
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
struct tm keeptime;
|
||||
#endif
|
||||
yyInput = p;
|
||||
Start = now ? *now : time ((time_t *) NULL);
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
tmp = localtime_r(&Start, &keeptime);
|
||||
#else
|
||||
tmp = localtime (&Start);
|
||||
#endif
|
||||
if (!tmp)
|
||||
return -1;
|
||||
yyYear = tmp->tm_year + TM_YEAR_ORIGIN;
|
||||
|
|
|
|||
12
lib/http.c
12
lib/http.c
|
|
@ -61,6 +61,7 @@
|
|||
#endif
|
||||
#include <netinet/in.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <sys/resource.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
|
|
@ -360,7 +361,18 @@ CURLcode http(struct connectdata *conn)
|
|||
if(data->timecondition) {
|
||||
struct tm *thistime;
|
||||
|
||||
#ifdef HAVE_LOCALTIME_R
|
||||
extern struct tm *localtime_r(time_t *, struct tm *);
|
||||
/* thread-safe version */
|
||||
struct tm keeptime;
|
||||
thistime = localtime_r(&data->timevalue, &keeptime);
|
||||
#else
|
||||
thistime = localtime(&data->timevalue);
|
||||
#endif
|
||||
if(NULL == thistime) {
|
||||
failf(data, "localtime() failed!");
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
#ifdef HAVE_STRFTIME
|
||||
/* format: "Tue, 15 Nov 1994 12:45:26 GMT" */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue