/*
- * charybdis: an advanced ircd.
+ * Solanum: a slightly advanced ircd
* cap_server_time.c: implement the server-time IRCv3.2 capability
*
* Copyright (c) 2016 William Pitcock <nenolod@dereferenced.org>
static char buf[BUFSIZE];
struct MsgBuf *msgbuf = data->arg1;
struct timeval tv;
- time_t ts = rb_current_time();
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);
+ if (strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S.", gmtime(&tv.tv_sec)) == 0)
+ return;
+
+ if (rb_snprintf_append(buf, sizeof(buf), "%03uZ", (int)tv.tv_usec / 1000) < 0)
+ return;
msgbuf_append_tag(msgbuf, "time", buf, CLICAP_SERVER_TIME);
}