forked from osmocom/wireshark
Allow use of huges values for localtime / ctime / gmtime with MSVC 2008 or later svn path=/trunk/; revision=46930daniel/osmux
parent
38fdbeeb7e
commit
deb4f08cb2
|
@ -395,7 +395,7 @@ time_string(time_t timer, capture_info *cf_info, gboolean want_lf)
|
|||
g_snprintf(time_string_buf, 20, "%lu%s", (unsigned long)timer, lf);
|
||||
return time_string_buf;
|
||||
} else {
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime(), and thus ctime(), on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
|
|
@ -149,7 +149,7 @@ abs_time_to_str_with_sec_resolution(const struct wtap_nstime *abs_time)
|
|||
struct tm *tmp;
|
||||
gchar *buf = g_malloc(16);
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
|
|
@ -571,7 +571,7 @@ abs_time_to_str(const nstime_t *abs_time, const absolute_time_display_e fmt,
|
|||
const char *zonename = "???";
|
||||
gchar *buf = NULL;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
@ -655,7 +655,7 @@ abs_time_secs_to_str(const time_t abs_time, const absolute_time_display_e fmt,
|
|||
const char *zonename = "???";
|
||||
gchar *buf = NULL;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
|
|
@ -116,7 +116,7 @@ time_to_string(char *string_buff, gulong string_buff_size, time_t ti_time)
|
|||
{
|
||||
struct tm *ti_tm;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
|
|
@ -375,6 +375,7 @@ k12text_dump(wtap_dumper *wdh _U_, const struct wtap_pkthdr *phdr,
|
|||
guint ns;
|
||||
guint ms;
|
||||
gboolean ret;
|
||||
struct tm *tmp;
|
||||
|
||||
str_enc = NULL;
|
||||
for(i=0; encaps[i].s; i++) {
|
||||
|
@ -397,16 +398,19 @@ k12text_dump(wtap_dumper *wdh _U_, const struct wtap_pkthdr *phdr,
|
|||
ms = phdr->ts.nsecs / 1000000;
|
||||
ns = (phdr->ts.nsecs - (1000000*ms))/1000;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling gmtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
if (phdr->ts.secs > 2000000000)
|
||||
g_snprintf(p, 90, "+---------+---------------+----------+\r\nXX:XX:XX,");
|
||||
tmp = NULL;
|
||||
else
|
||||
#endif
|
||||
strftime(p, 90, "+---------+---------------+----------+\r\n%H:%M:%S,",
|
||||
gmtime(&phdr->ts.secs));
|
||||
tmp = gmtime(&phdr->ts.secs);
|
||||
if (tmp == NULL)
|
||||
g_snprintf(p, 90, "+---------+---------------+----------+\r\nXX:XX:XX,");
|
||||
else
|
||||
strftime(p, 90, "+---------+---------------+----------+\r\n%H:%M:%S,", tmp);
|
||||
wl = strlen(p);
|
||||
p += wl;
|
||||
left -= wl;
|
||||
|
|
|
@ -2127,7 +2127,7 @@ ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
|
|||
date. */
|
||||
if (ngsniffer->first_frame) {
|
||||
ngsniffer->first_frame=FALSE;
|
||||
#ifdef _MSC_VER
|
||||
#if (defined _WIN32) && (_MSC_VER < 1500)
|
||||
/* calling localtime() on MSVC 2005 with huge values causes it to crash */
|
||||
/* XXX - find the exact value that still does work */
|
||||
/* XXX - using _USE_32BIT_TIME_T might be another way to circumvent this problem */
|
||||
|
|
Loading…
Reference in New Issue