]> arthur.barton.de Git - ngircd.git/blobdiff - src/ngircd/irc-mode.c
Handle unknown user modes on server links
[ngircd.git] / src / ngircd / irc-mode.c
index 7861868d7bac8e4885466932f05473d6128036d2..b469a16911f65292b0fddb3df21574dcaee0c642 100644 (file)
@@ -242,16 +242,25 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
                                x[0] = 'x';
                        break;
                default:
-                       Log(LOG_DEBUG, "Unknown mode \"%c%c\" from \"%s\"!?",
-                           set ? '+' : '-', *mode_ptr, Client_ID(Origin));
-                       if (Client_Type(Client) != CLIENT_SERVER)
+                       if (Client_Type(Client) != CLIENT_SERVER) {
+                               Log(LOG_DEBUG,
+                                   "Unknown mode \"%c%c\" from \"%s\"!?",
+                                   set ? '+' : '-', *mode_ptr,
+                                   Client_ID(Origin));
                                ok = IRC_WriteStrClient(Origin,
                                                        ERR_UMODEUNKNOWNFLAG2_MSG,
                                                        Client_ID(Origin),
                                                        set ? '+' : '-',
                                                        *mode_ptr);
-                       x[0] = '\0';
-                       goto client_exit;
+                               x[0] = '\0';
+                               goto client_exit;
+                       } else {
+                               Log(LOG_DEBUG,
+                                   "Handling unknown mode \"%c%c\" from \"%s\" for \"%s\" ...",
+                                   set ? '+' : '-', *mode_ptr,
+                                   Client_ID(Origin), Client_ID(Target));
+                               x[0] = *mode_ptr;
+                       }
                }
 
                if (!ok)