diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2017-05-11 16:06:12 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2017-05-11 16:06:12 -0500 |
commit | cf5e9aa2bbcdf1783fadeab26586c1134929d928 (patch) | |
tree | 2033aec06cc4b684b971d28c7fe8053f76b7cbfa /src/rc | |
parent | a3250e77d412f2290e381b9e7569930d95e4fc5b (diff) |
Move time_t conversions to rc-misc.c so they can be shared
Diffstat (limited to 'src/rc')
-rw-r--r-- | src/rc/rc-misc.c | 34 | ||||
-rw-r--r-- | src/rc/supervise-daemon.c | 4 |
2 files changed, 35 insertions, 3 deletions
diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c index 8afff0a2..b75c3b4e 100644 --- a/src/rc/rc-misc.c +++ b/src/rc/rc-misc.c @@ -442,3 +442,37 @@ RC_SERVICE lookup_service_state(const char *service) return service_bits[i].bit; return 0; } + +char *from_time_t(time_t tv) +{ + char time_string[20]; + + strftime(time_string, 20, "%Y-%m-%d %H:%M:%S", localtime(&tv)); + return time_string; +} + +time_t to_time_t(char *timestring) +{ + int check = 0; + int year = 0; + int month = 0; + int day = 0; + int hour = 0; + int min = 0; + int sec = 0; + struct tm breakdown = {0}; + time_t result = -1; + + check = sscanf(timestring, "%4d-%2d-%2d %2d:%2d:%2d", + &year, &month, &day, &hour, &min, &sec); + if (check == 6) { + breakdown.tm_year = year - 1900; /* years since 1900 */ + breakdown.tm_mon = month - 1; + breakdown.tm_mday = day; + breakdown.tm_hour = hour; + breakdown.tm_min = min; + breakdown.tm_sec = sec; + result = mktime(&breakdown); + } + return result; +} diff --git a/src/rc/supervise-daemon.c b/src/rc/supervise-daemon.c index bc5fd3d0..a971e6a3 100644 --- a/src/rc/supervise-daemon.c +++ b/src/rc/supervise-daemon.c @@ -185,7 +185,6 @@ static void child_process(char *exec, char **argv, char *svcname, char **c; char cmdline[PATH_MAX]; time_t start_time; - char start_time_string[20]; char start_count_string[20]; #ifdef HAVE_PAM @@ -344,8 +343,7 @@ static void child_process(char *exec, char **argv, char *svcname, syslog(LOG_INFO, "Running command line: %s", cmdline); if (svcname) { start_time = time(NULL); -strftime(start_time_string, 20, "%Y-%m-%d %H:%M:%S", localtime(&start_time)); - rc_service_value_set(svcname, "start_time", start_time_string); + rc_service_value_set(svcname, "start_time", from_time_t(start_time)); sprintf(start_count_string, "%i", start_count); rc_service_value_set(svcname, "start_count", start_count_string); } |