X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_util.h;h=8300a4b57b997fab3b248610d8517f302291fd46;hb=33fde1853daddd7f34565507cb96652f0cec4ee2;hp=4feb4ee545bd8f6d977b9cb2ce50a9519f20a1b3;hpb=77599da05bae9b355f600d63f9be8c285ff0ea4d;p=silc.git diff --git a/apps/silcd/server_util.h b/apps/silcd/server_util.h index 4feb4ee5..8300a4b5 100644 --- a/apps/silcd/server_util.h +++ b/apps/silcd/server_util.h @@ -72,7 +72,8 @@ bool silc_server_channel_has_local(SilcChannelEntry channel); always in up to date thus we can only check the channel list from `client' which is faster than checking the user list from `channel'. */ bool silc_server_client_on_channel(SilcClientEntry client, - SilcChannelEntry channel); + SilcChannelEntry channel, + SilcChannelClientEntry *chl); /* Checks string for bad characters and returns TRUE if they are found. */ bool silc_server_name_bad_chars(const char *name, SilcUInt32 name_len); @@ -111,4 +112,17 @@ bool silc_server_connection_allowed(SilcServer server, SilcServerConfigConnParams *params, SilcSKE ske); +/* Checks that client has rights to add or remove channel modes. If any + of the checks fails FALSE is returned. */ +bool silc_server_check_cmode_rights(SilcServer server, + SilcChannelEntry channel, + SilcChannelClientEntry client, + SilcUInt32 mode); + +/* Check that the client has rights to change its user mode. Returns + FALSE if setting some mode is not allowed. */ +bool silc_server_check_umode_rights(SilcServer server, + SilcClientEntry client, + SilcUInt32 mode); + #endif /* SERVER_UTIL_H */