create string only if it's needed
authorAlan T. DeKok <aland@freeradius.org>
Fri, 12 May 2017 13:16:00 +0000 (09:16 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 16 May 2017 12:07:36 +0000 (08:07 -0400)
src/modules/rlm_sqlcounter/rlm_sqlcounter.c

index d36b6b4..8d43e73 100644 (file)
@@ -113,12 +113,13 @@ static int find_next_reset(rlm_sqlcounter_t *inst, REQUEST *request, time_t time
        char sCurrentTime[40], sNextTime[40];
 
        tm = localtime_r(&timeval, &s_tm);
-       len = strftime(sCurrentTime, sizeof(sCurrentTime), "%Y-%m-%d %H:%M:%S", tm);
-       if (len == 0) *sCurrentTime = '\0';
        tm->tm_sec = tm->tm_min = 0;
 
        rad_assert(inst->reset != NULL);
 
+       /*
+        *      Reset every N hours, days, weeks, months.
+        */
        if (isdigit((int) inst->reset[0])){
                len = strlen(inst->reset);
                if (len == 0) return -1;
@@ -170,6 +171,9 @@ static int find_next_reset(rlm_sqlcounter_t *inst, REQUEST *request, time_t time
 
        if (!request || (rad_debug_lvl < 2)) return ret;
 
+       len = strftime(sCurrentTime, sizeof(sCurrentTime), "%Y-%m-%d %H:%M:%S", tm);
+       if (len == 0) *sCurrentTime = '\0';
+
        len = strftime(sNextTime, sizeof(sNextTime),"%Y-%m-%d %H:%M:%S",tm);
        if (len == 0) *sNextTime = '\0';
        RDEBUG2("rlm_sqlcounter: Current Time: %" PRId64 " [%s], Next reset %" PRId64 " [%s]",