Commit 9d5c6df7 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

added localtime_r()

parent c1ab16da
Loading
Loading
Loading
Loading
+269 −269

File changed.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(lib/urldata.h)
AM_CONFIG_HEADER(config.h src/config.h)
AM_INIT_AUTOMAKE(curl,"7.0.8beta")
AM_INIT_AUTOMAKE(curl,"7.0.10beta")
AM_PROG_LIBTOOL

dnl
@@ -287,6 +287,7 @@ AC_CHECK_FUNCS( socket \
                gethostbyname_r \
                gethostbyaddr \
                gethostbyaddr_r \
                localtime_r \
                getservbyname \
                gettimeofday \
                inet_addr \
+12 −2
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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" */