X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fcommand.c;h=fafd56b1253d3d2f0f8619d416876f2a8cbc43d5;hb=dec23b2f25ece17efc64295a144cde7b72b7014d;hp=18eb9691dde569074611b530fd9927a0a7fc47c1;hpb=0f093b08e579e8c8e04800ed74210bbd521a1475;p=silc.git diff --git a/apps/silcd/command.c b/apps/silcd/command.c index 18eb9691..fafd56b1 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -3642,8 +3642,9 @@ int silc_server_check_cmode_rights(SilcChannelEntry channel, modes are available automatically for channel operator. */ if (mode & SILC_CHANNEL_MODE_PRIVKEY) { - if (is_op && !is_fo) - return FALSE; + if (!(channel->mode & SILC_CHANNEL_MODE_PRIVKEY)) + if (is_op && !is_fo) + return FALSE; } else { if (channel->mode & SILC_CHANNEL_MODE_PRIVKEY) { if (is_op && !is_fo) @@ -3652,8 +3653,9 @@ int silc_server_check_cmode_rights(SilcChannelEntry channel, } if (mode & SILC_CHANNEL_MODE_PASSPHRASE) { - if (is_op && !is_fo) - return FALSE; + if (!(channel->mode & SILC_CHANNEL_MODE_PASSPHRASE)) + if (is_op && !is_fo) + return FALSE; } else { if (channel->mode & SILC_CHANNEL_MODE_PASSPHRASE) { if (is_op && !is_fo) @@ -3662,8 +3664,9 @@ int silc_server_check_cmode_rights(SilcChannelEntry channel, } if (mode & SILC_CHANNEL_MODE_CIPHER) { - if (is_op && !is_fo) - return FALSE; + if (!(channel->mode & SILC_CHANNEL_MODE_CIPHER)) + if (is_op && !is_fo) + return FALSE; } else { if (channel->mode & SILC_CHANNEL_MODE_CIPHER) { if (is_op && !is_fo) @@ -3672,8 +3675,9 @@ int silc_server_check_cmode_rights(SilcChannelEntry channel, } if (mode & SILC_CHANNEL_MODE_FOUNDER_AUTH) { - if (is_op && !is_fo) - return FALSE; + if (!(channel->mode & SILC_CHANNEL_MODE_FOUNDER_AUTH)) + if (is_op && !is_fo) + return FALSE; } else { if (channel->mode & SILC_CHANNEL_MODE_FOUNDER_AUTH) { if (is_op && !is_fo)