]> arthur.barton.de Git - ngircd.git/blobdiff - src/ngircd/irc-info.c
Use correct sender as target for ISUPPORT replies on "VERSION"
[ngircd.git] / src / ngircd / irc-info.c
index aa98a5b560b163f4b96a5b4c7b1a20b7f4f6f2f3..d367647f4ea7bfd67132d45323049f1a62c5ab66 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -401,6 +401,13 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
                                Client_ID(from), Client_ID(c)))
                return DISCONNECTED;
 
+       /* Account name metadata? */
+       if (Client_AccountName(c) &&
+           !IRC_WriteStrClient(from, RPL_WHOISLOGGEDIN_MSG,
+                               Client_ID(from), Client_ID(c),
+                               Client_AccountName(c)))
+               return DISCONNECTED;
+
        /* Local client and requester is the user itself or an IRC Op? */
        if (Client_Conn(c) > NONE &&
            (from == c || (!Conf_MorePrivacy && Client_HasMode(from, 'o')))) {
@@ -1099,10 +1106,19 @@ IRC_VERSION( CLIENT *Client, REQUEST *Req )
        }
 
        /* send version information */
-       return IRC_WriteStrClient(Client, RPL_VERSION_MSG, Client_ID(prefix),
-                                 PACKAGE_NAME, PACKAGE_VERSION,
-                                 NGIRCd_DebugLevel, Conf_ServerName,
-                                 NGIRCd_VersionAddition);
+       if (!IRC_WriteStrClient(Client, RPL_VERSION_MSG, Client_ID(prefix),
+                               PACKAGE_NAME, PACKAGE_VERSION,
+                               NGIRCd_DebugLevel, Conf_ServerName,
+                               NGIRCd_VersionAddition))
+               return DISCONNECTED;
+
+#ifndef STRICT_RFC
+       /* send RPL_ISUPPORT(005) numerics */
+       if (!IRC_Send_ISUPPORT(prefix))
+               return DISCONNECTED;
+#endif
+
+       return CONNECTED;
 } /* IRC_VERSION */
 
 /**