-/* Copyright (C) 2009-2013, Martin Johansson <martin@fatbob.nu>
- Copyright (C) 2005-2013, Thorvald Natvig <thorvald@natvig.com>
+/* Copyright (C) 2009-2014, Martin Johansson <martin@fatbob.nu>
+ Copyright (C) 2005-2014, Thorvald Natvig <thorvald@natvig.com>
All rights reserved.
if (i == 0) {
rootChan = createChannel(0, chdesc.name, chdesc.description);
rootChan->noenter = chdesc.noenter;
+ rootChan->silent = chdesc.silent;
list_add_tail(&rootChan->flatlist_node, &channels);
if (strcmp(defaultChannelName, chdesc.name) == 0)
defaultChan = rootChan;
channel_t *ch, *ch_itr = NULL;
ch = Chan_createChannel(chdesc.name, chdesc.description);
ch->noenter = chdesc.noenter;
+ ch->position = chdesc.position;
+ ch->silent = chdesc.silent;
if (chdesc.password) {
Log_info("Setting password on channel '%s'", ch->name);
ch->password = strdup(chdesc.password);
channelJoinResult_t Chan_userJoin_id_test(int channelid, client_t *client)
{
+ channelJoinResult_t result;
channel_t *ch_itr = NULL;
do {
Chan_iterate(&ch_itr);
} while (ch_itr != NULL && ch_itr->id != channelid);
if (ch_itr == NULL) {
Log_warn("Channel id %d not found - ignoring.", channelid);
- return CHJOIN_NOTFOUND;
+ result.CHJOIN_NOTFOUND = true;
}
- else if (ch_itr->noenter)
- return CHJOIN_NOENTER;
- else if (ch_itr->password && !Client_token_match(client, ch_itr->password))
- return CHJOIN_WRONGPW;
- else return CHJOIN_OK;
+ else
+ result.CHJOIN_NOTFOUND = false;
+
+ result.CHJOIN_NOENTER = ch_itr->noenter;
+ result.CHJOIN_WRONGPW = ch_itr->password && !Client_token_match(client, ch_itr->password) && !client->isAdmin;
+ result.CHJOIN_SILENT = ch_itr->silent;
+
+ return result;
}
#if 0