summaryrefslogtreecommitdiffstats
path: root/src/datetime.c
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2022-03-18 20:31:27 (EDT)
committer P. J. McDermott <pj@pehjota.net>2022-03-18 20:31:27 (EDT)
commiteb8dbc0d4cddd1161e2b02d7973985a36e2efc95 (patch)
tree180f4105c7554a91ee2f99a4f7d3c7ce297affe3 /src/datetime.c
parent557090b458bc5a61b56eaf4a0cc66376ac84bdd4 (diff)
downloadatsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.zip
atsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.tar.gz
atsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.tar.bz2
datetime: Get now (struct tm) from caller
Diffstat (limited to 'src/datetime.c')
-rw-r--r--src/datetime.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/datetime.c b/src/datetime.c
index 59adcb9..27c27a2 100644
--- a/src/datetime.c
+++ b/src/datetime.c
@@ -117,14 +117,9 @@ _datetime_reset_tm(struct tm *tm)
}
static void
-_datetime_normalize(struct tm *arg_tm, time_t *arg_sec)
+_datetime_normalize(struct tm *now_tm, struct tm *arg_tm, time_t *arg_sec)
{
- time_t now_sec;
- struct tm *now_tm;
- int wday;
-
- now_sec = time(NULL);
- now_tm = localtime(&now_sec);
+ int wday;
if (arg_tm->tm_sec == INT_MIN) {
arg_tm->tm_sec = 0;
@@ -177,7 +172,7 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec)
}
int
-datetime_parse(const char *input, time_t *arg_sec)
+datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec)
{
int date_fmt_len;
int time_fmt_len;
@@ -207,7 +202,7 @@ datetime_parse(const char *input, time_t *arg_sec)
end = strptime(input, fmt_buf, &arg_tm);
if (end != NULL && *end == '\0') {
free(fmt_buf);
- _datetime_normalize(&arg_tm, arg_sec);
+ _datetime_normalize(now_tm, &arg_tm, arg_sec);
return 0;
}
}
@@ -223,7 +218,7 @@ datetime_parse(const char *input, time_t *arg_sec)
end = strptime(input, fmt_buf, &arg_tm);
if (end != NULL && *end == '\0') {
free(fmt_buf);
- _datetime_normalize(&arg_tm, arg_sec);
+ _datetime_normalize(now_tm, &arg_tm, arg_sec);
return 0;
}
}
@@ -234,7 +229,7 @@ datetime_parse(const char *input, time_t *arg_sec)
end = strptime(input, DATETIME_MISC_FMTS_[d], &arg_tm);
if (end != NULL && *end == '\0') {
free(fmt_buf);
- _datetime_normalize(&arg_tm, arg_sec);
+ _datetime_normalize(now_tm, &arg_tm, arg_sec);
return 0;
}
}