]> jfr.im git - solanum.git/blobdiff - modules/cap_server_time.c
chmode: Get elevated access for op-only queries
[solanum.git] / modules / cap_server_time.c
index 0988587c47e92848f1dfdb0b725e898c3facd3f1..1fd383fd3bd048fad2785730e67e43b6f371922d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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>
@@ -55,11 +55,13 @@ cap_server_time_process(hook_data *data)
        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);
        }