]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/channel.c
Suppress 'Can't create pre-defined channel: invalid name: ""' messages
[ngircd-alex.git] / src / ngircd / channel.c
index d1f9c6c9790a17748b1a37dbed6ae3bb24e69a84..74c97a0a8dc41abe99c30981d0f840402f040df9 100644 (file)
@@ -110,9 +110,12 @@ Channel_InitPredefined( void )
        assert(channel_count == 0 || conf_chan != NULL);
 
        for (i = 0; i < channel_count; i++, conf_chan++) {
-               if (!conf_chan->name[0] || !Channel_IsValidName(conf_chan->name)) {
-                       Log(LOG_ERR, "Can't create pre-defined channel: invalid name: \"%s\"",
-                                                                       conf_chan->name);
+               if (!conf_chan->name[0])
+                       continue;
+               if (!Channel_IsValidName(conf_chan->name)) {
+                       Log(LOG_ERR,
+                           "Can't create pre-defined channel: invalid name: \"%s\"",
+                           conf_chan->name);
                        continue;
                }
 
@@ -263,6 +266,9 @@ Channel_Part(CLIENT * Client, CLIENT * Origin, const char *Name, const char *Rea
                return false;
        }
 
+       if (Conf_MorePrivacy)
+               Reason = "";
+
        /* Part client from channel */
        if (!Remove_Client(REMOVE_PART, chan, Client, Origin, Reason, true))
                return false;
@@ -331,6 +337,9 @@ Channel_Quit( CLIENT *Client, const char *Reason )
        assert( Client != NULL );
        assert( Reason != NULL );
 
+       if (Conf_MorePrivacy)
+               Reason = "";
+
        IRC_WriteStrRelatedPrefix( Client, Client, false, "QUIT :%s", Reason );
 
        c = My_Channels;
@@ -961,6 +970,9 @@ Remove_Client( int Type, CHANNEL *Chan, CLIENT *Client, CLIENT *Origin, const ch
                                Client_Mask( Client ), c->name, Client_ID(Origin), Reason);
                        break;
                default: /* PART */
+                       if (Conf_MorePrivacy)
+                               Reason = "";
+
                        if (InformServer)
                                IRC_WriteStrServersPrefix(Origin, Client, "PART %s :%s", c->name, Reason);
 
@@ -1082,10 +1094,10 @@ Channel_CheckKey(CHANNEL *Chan, CLIENT *Client, const char *Key)
 
        if (!strchr(Chan->modes, 'k'))
                return true;
-       if (strcmp(Chan->key, Key) == 0)
-               return true;
        if (*Key == '\0')
                return false;
+       if (strcmp(Chan->key, Key) == 0)
+               return true;
 
        file_name = array_start(&Chan->keyfile);
        if (!file_name)