]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/irc-info.c
Fix PING-PONG handling when processing backlog in read buffers
[ngircd-alex.git] / src / ngircd / irc-info.c
index 1bbaf57b3b53a35e905be647c5f075690ade38ac..e38d5bb6f3338629f35cc2e22b7ef46bb08f6e15 100644 (file)
@@ -558,7 +558,15 @@ IRC_INFO(CLIENT * Client, REQUEST * Req)
                                NGIRCd_Version))
                return DISCONNECTED;
 
-#if defined(__DATE__) && defined(__TIME__)
+#if defined(BIRTHDATE)
+       char t_str[60];
+       time_t t = BIRTHDATE;
+       (void)strftime(t_str, sizeof(t_str), "%a %b %d %Y at %H:%M:%S (%Z)",
+                       localtime(&t));
+       snprintf(msg, sizeof(msg), "Birth Date: %s", t_str);
+       if (!IRC_WriteStrClient(Client, RPL_INFO_MSG, Client_ID(prefix), msg))
+               return DISCONNECTED;
+#elif defined(__DATE__) && defined(__TIME__)
        snprintf(msg, sizeof(msg), "Birth Date: %s at %s", __DATE__, __TIME__);
        if (!IRC_WriteStrClient(Client, RPL_INFO_MSG, Client_ID(prefix), msg))
                return DISCONNECTED;
@@ -886,16 +894,16 @@ IRC_STATS( CLIENT *Client, REQUEST *Req )
                        list = Class_GetList(CLASS_GLINE);
                else
                        list = Class_GetList(CLASS_KLINE);
-                       list_item = Lists_GetFirst(list);
-                       while (list_item) {
-                               if (!IRC_WriteStrClient(from, RPL_STATSXLINE_MSG,
+               list_item = Lists_GetFirst(list);
+               while (list_item) {
+                       if (!IRC_WriteStrClient(from, RPL_STATSXLINE_MSG,
                                                Client_ID(from), query,
                                                Lists_GetMask(list_item),
                                                Lists_GetValidity(list_item),
                                                Lists_GetReason(list_item)))
-                                       return DISCONNECTED;
-                               list_item = Lists_GetNext(list_item);
-                       }
+                               return DISCONNECTED;
+                       list_item = Lists_GetNext(list_item);
+               }
                break;
        case 'L':       /* Link status (servers and user links) */
                if (!Op_Check(from, Req))
@@ -1557,7 +1565,8 @@ IRC_Send_ISUPPORT(CLIENT * Client)
                                                   Conf_Network))
                return DISCONNECTED;
        if (!IRC_WriteStrClient(Client, RPL_ISUPPORT1_MSG, Client_ID(Client),
-                               CHANTYPES, CHANTYPES, Conf_MaxJoins))
+                               Conf_AllowedChannelTypes, Conf_AllowedChannelTypes,
+                               Conf_MaxJoins))
                return DISCONNECTED;
        return IRC_WriteStrClient(Client, RPL_ISUPPORT2_MSG, Client_ID(Client),
                                  CHANNEL_NAME_LEN - 1, Conf_MaxNickLength - 1,