]> jfr.im git - irc/quakenet/newserv.git/blobdiff - miscreply/time.c
qabot: Fix null pointer dereference.
[irc/quakenet/newserv.git] / miscreply / time.c
index 98a1869c85f4ae5f52d4d6971f2ee2f8958a1128..a983b800d841c629e6fc87e90a725b3e6f9b6d91 100644 (file)
@@ -1,13 +1,10 @@
 /* time.c */
 
 #include "miscreply.h"
-#include "numeric.h"
 #include "../irc/irc.h"
 #include "../core/error.h"
-#include "../nick/nick.h"
 
 #include <stdio.h>
-#include <string.h>
 
 
 
@@ -18,8 +15,7 @@
  *    where the last part is the timezone offset
  *
  */
-char *timelongdate(void)
-{
+static char *timelongdate(void) {
   static char buf[64];
   unsigned int off;
   struct tm *tmp;
@@ -72,15 +68,10 @@ char *timelongdate(void)
  */
 int handletimemsg(void *source, int cargc, char **cargv) {
 
-  nick *snick;                                          /* struct nick for source nick */
-
-  int i;                                                /* index for serverlist[] */
-  long unsigned int timestamp = getnettime();           /* current nettime */
-  long unsigned int offset = timestamp - time(NULL);    /* offset nettime to system clock */
-  char *sourcenum = (char *)source;                     /* source user numeric */
-  char *targetnum = getmynumeric();                     /* target server numeric */
-  char *servernum;                                      /* server numeric parameter */
-  char *servername = myserver->content;                 /* servername */
+  nick *snick;                                         /* struct nick for source nick */
+  long unsigned int timestamp = getnettime();          /* current nettime */
+  long unsigned int offset = timestamp - time(NULL);   /* offset nettime to system clock */
+  char *sourcenum = (char *)source;                    /* source user numeric */
 
   /* check parameters */
   if (cargc < 1) {
@@ -88,36 +79,15 @@ int handletimemsg(void *source, int cargc, char **cargv) {
     return CMD_OK;
   }
 
-  /* get the parameter */
-  servernum = cargv[0];
-
-  /* from a server? */
-  if (IsServer(sourcenum))
-    return CMD_OK;
-
   /* find source user */ 
   if (!(snick = miscreply_finduser(sourcenum, "TIME")))
     return CMD_OK;
 
-  /* request is not me and not for * (all servers) */
-  if (!IsMeNum(servernum) && !(servernum[0] == '*' && servernum[1] == '\0')) {
-
-    /* find the server */
-    if ((i = miscreply_findservernum(sourcenum, servernum, "TIME")) == -1)
-      return CMD_OK;
-
-    targetnum = longtonumeric(i, 2);
-    servername = serverlist[i].name->content;
-
-    /* tell user */
-    send_snotice(sourcenum, "TIME: Server %s is not a real server.", servername);
-  }
-
   /*
    * 391 RPL_TIME "source 391 target servername timestamp offset :longdate"
    *              "irc.netsplit.net 391 foobar irc.netsplit.net 1269713493 0 :Saturday March 27 2010 -- 19:11 +01:00"
    */
-  send_reply(targetnum, RPL_TIME, sourcenum, "%s %lu %lu :%s", servername, timestamp, offset, timelongdate());
+  irc_send("%s 391 %s %s %lu %ld :%s", getmynumeric(), sourcenum, myserver->content, timestamp, offset, timelongdate());
 
   return CMD_OK;
 }