{ "channel_founder_you", "You are channel founder on {channel $0}", 1, { 0 } },
{ "channel_founder", "channel founder on {channel $0} is: {channick_hilight $1}", 2, { 0, 0 } },
+ { "channel_founder_changed", "Channel founder public key changed on {channel $0}", 1, { 0 } },
{ "channel_topic", "Topic for {channel $0} is: $1", 2, { 0, 0 } },
{ "channel_topic_not_set", "Topic for {channel $0} not set", 1, { 0 } },
{ "cmode", "channel mode/{channel $0} {mode $1} by {nick $2}", 3, { 0, 0, 0 } },
{
SilcChannelEntry channel_entry;
SilcDList chpks;
+ SilcPublicKey founder_key;
channel_entry = va_arg(vp, SilcChannelEntry);
(void)va_arg(vp, SilcUInt32);
- (void)va_arg(vp, SilcPublicKey);
+ founder_key = va_arg(vp, SilcPublicKey);
chpks = va_arg(vp, SilcDList);
- if (SILC_STATUS_IS_ERROR(status) || !cmode_list_chpks ||
- !channel_entry || !channel_entry->channel_name)
+ if (SILC_STATUS_IS_ERROR(status) || !channel_entry ||
+ !channel_entry->channel_name)
return;
- /* Print the channel public key list */
- if (chpks)
- silc_parse_channel_public_keys(server, channel_entry, chpks);
- else
+ /* If founder was changed successfully, tell it to user */
+ if (founder_key && channel_entry->founder_key &&
+ !silc_pkcs_public_key_compare(founder_key,
+ channel_entry->founder_key)) {
printformat_module("fe-common/silc", server, NULL,
- MSGLEVEL_CRAP, SILCTXT_CHANNEL_PK_NO_LIST,
- channel_entry->channel_name);
+ MSGLEVEL_CRAP, SILCTXT_CHANNEL_FOUNDER_CHANGED,
+ channel_entry->channel_name);
+ }
+ /* Print the channel public key list */
+ if (cmode_list_chpks) {
+ if (chpks)
+ silc_parse_channel_public_keys(server, channel_entry, chpks);
+ else
+ printformat_module("fe-common/silc", server, NULL,
+ MSGLEVEL_CRAP, SILCTXT_CHANNEL_PK_NO_LIST,
+ channel_entry->channel_name);
+ }
}
break;