cap_server_time: provide time with millisecond resolution

This commit is contained in:
Simon Arlott 2017-07-30 22:03:23 +01:00
parent 30275c67c5
commit 2d5f4d8e7f
No known key found for this signature in database
GPG key ID: C8975F2043CA5D24

View file

@ -53,12 +53,16 @@ static void
cap_server_time_process(hook_data *data)
{
static char buf[BUFSIZE];
time_t ts = rb_current_time();
struct MsgBuf *msgbuf = data->arg1;
struct timeval tv;
time_t ts = rb_current_time();
strftime(buf, sizeof buf, "%Y-%m-%dT%H:%M:%S.000Z", gmtime(&ts));
if (!rb_gettimeofday(&tv, NULL)) {
strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S.", gmtime(&tv.tv_sec));
rb_snprintf_append(buf, sizeof(buf), "%03uZ", (int)tv.tv_usec / 1000);
msgbuf_append_tag(msgbuf, "time", buf, CLICAP_SERVER_TIME);
msgbuf_append_tag(msgbuf, "time", buf, CLICAP_SERVER_TIME);
}
}
DECLARE_MODULE_AV2(cap_server_time, NULL, NULL, NULL, NULL, cap_server_time_hfnlist, cap_server_time_cap_list, NULL, cap_server_time_desc);