summaryrefslogtreecommitdiffstats
path: root/runtime/datetime.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/datetime.c')
-rw-r--r--runtime/datetime.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/runtime/datetime.c b/runtime/datetime.c
index 0b9b1ae2..841ff625 100644
--- a/runtime/datetime.c
+++ b/runtime/datetime.c
@@ -61,8 +61,10 @@ timeval2syslogTime(struct timeval *tp, struct syslogTime *t)
struct tm *tm;
struct tm tmBuf;
long lBias;
+ time_t secs;
- tm = localtime_r((time_t*) &(tp->tv_sec), &tmBuf);
+ secs = tp->tv_sec;
+ tm = localtime_r(&secs, &tmBuf);
t->year = tm->tm_year + 1900;
t->month = tm->tm_mon + 1;
@@ -180,12 +182,13 @@ getTime(time_t *ttSeconds)
* the method always returns zero.
* \retval The number parsed.
*/
-static int srSLMGParseInt32(uchar** ppsz, int *pLenStr)
+static inline int
+srSLMGParseInt32(uchar** ppsz, int *pLenStr)
{
register int i;
i = 0;
- while(*pLenStr > 0 && isdigit((int) **ppsz)) {
+ while(*pLenStr > 0 && **ppsz >= '0' && **ppsz <= '9') {
i = i * 10 + **ppsz - '0';
++(*ppsz);
--(*pLenStr);
@@ -902,6 +905,11 @@ time_t syslogTime2time_t(struct syslogTime *ts)
case 12:
MonthInDays = 334; //until 01 of December
break;
+ default: /* this cannot happen (and would be a program error)
+ * but we need the code to keep the compiler silent.
+ */
+ MonthInDays = 0; /* any value fits ;) */
+ break;
}