if (conf_chan->modes_num) {
/* Prepare fake request structure */
strlcpy(name, conf_chan->name, sizeof(name));
- Log(LOG_INFO, "Evaluating predefined channel modes for \"%s\".", name);
+ LogDebug("Evaluating predefined channel modes for \"%s\" ...", name);
Req.argv[0] = name;
Req.prefix = Client_ID(Client_ThisServer());
Req.command = "MODE";
IRC_MODE(Client_ThisServer(), &Req);
}
- /* Original channel modes srings are no longer needed */
+ /* Original channel modes strings are no longer needed */
free(conf_chan->modes[n]);
}
}
Set_KeyFile(new_chan, conf_chan->keyfile);
Log(LOG_INFO,
- "Created pre-defined channel \"%s\", mode \"%s\" (key \"%s\", limit %d).",
- new_chan->name, new_chan->modes, new_chan->key,
+ "Created pre-defined channel \"%s\", mode \"%s\" (%s, user limit %d).",
+ new_chan->name, new_chan->modes,
+ new_chan->key[0] ? "channel key set" : "no channel key",
new_chan->maxusers);
}
} /* Channel_UserModes */
+/**
+ * Test if a user has a given channel user mode.
+ *
+ * @param Chan The channel to check.
+ * @param Client The client to check.
+ * @param Mode The channel user mode to test for.
+ * @return true if the user has the given channel user mode set.
+ */
GLOBAL bool
Channel_UserHasMode( CHANNEL *Chan, CLIENT *Client, char Mode )
{
- return strchr(Channel_UserModes(Chan, Client), Mode) != NULL;
+ char *channel_user_modes;
+
+ assert(Chan != NULL);
+ assert(Client != NULL);
+ assert(Mode > 0);
+
+ channel_user_modes = Channel_UserModes(Chan, Client);
+ if (!channel_user_modes || !*channel_user_modes)
+ return false;
+
+ return strchr(channel_user_modes, Mode) != NULL;
} /* Channel_UserHasMode */