From faa6c176fe5f1f54e4532229df83a31e4e3603ad Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 27 May 2001 14:01:31 +0000 Subject: [PATCH] updates. --- CHANGES | 5 + .../irssi/src/fe-common/silc/module-formats.c | 34 ++- .../irssi/src/fe-common/silc/module-formats.h | 28 ++- apps/irssi/src/silc/core/client_ops.c | 200 ++++++++++-------- apps/irssi/src/silc/core/silc-channels.c | 3 +- apps/irssi/src/silc/core/silc-servers.c | 4 +- 6 files changed, 176 insertions(+), 98 deletions(-) diff --git a/CHANGES b/CHANGES index aaa408d8..e10c25ed 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Sun May 27 15:57:17 EEST 2001 Pekka Riikonen + + * Added invite list, ban list, some key management and connection + error message printing to module formats in the Irssi SILC client. + Sun May 27 12:39:48 EEST 2001 Pekka Riikonen * Fixed the private message sending in the Irssi SILC client, diff --git a/apps/irssi/src/fe-common/silc/module-formats.c b/apps/irssi/src/fe-common/silc/module-formats.c index 70d61a60..90c35129 100644 --- a/apps/irssi/src/fe-common/silc/module-formats.c +++ b/apps/irssi/src/fe-common/silc/module-formats.c @@ -37,6 +37,10 @@ FORMAT_REC fecommon_silc_formats[] = { { "notice", "{notice $0}", 1, { 0 } }, { "ownaction", "{ownaction $0}", 1, { 0 } }, { "ownnotice", "{ownnotice $0}", 1, { 0 } }, + { "invite_list", "channel {channel $0} invite list: $1", 2, { 0, 0 } }, + { "no_invite_list", "channel {channel $0} invite list not set", 1, { 0 } }, + { "ban_list", "channel {channel $0} ban list: $1", 2, { 0, 0 } }, + { "no_ban_list", "channel {channel $0} ban list not set", 1, { 0 } }, /* WHOIS, WHOWAS and USERS (alias WHO) messages */ { NULL, "Who Queries", 0 }, @@ -56,7 +60,7 @@ FORMAT_REC fecommon_silc_formats[] = { { "channel_private_key_nomode", "Private key mode is not set on channel {channel $0}", 1, { 0 } }, { "channel_private_key_error", "Could not add private key to channel {channel $0}", 1, { 0 } }, { "channel_private_key_list", "Channel {channel $0} private keys%: Cipher Hmac Key", 1, { 0 } }, - { "private_key_list", "Private message keys%: Client Cipher Key", 0, { 0 } }, + { "private_key_list", "Private message keys%: Client Cipher Key", 0 }, { "private_key_list_nick", "Private message keys with {nick $0}%: Client Cipher Key", 1, { 0 } }, { "key_agreement", "Requesting key agreement with {nick $0}", 1, { 0 } }, { "key_agreement_request", "{nick $0} wants to perform key agreement", 1, { 0 } }, @@ -67,14 +71,36 @@ FORMAT_REC fecommon_silc_formats[] = { { "key_agreement_error", "Error occurred during key agreement with {nick $0}", 1, { 0 } }, { "key_agreement_failure", "Key agreement failed with {nick $0}", 1, { 0 } }, { "key_agreement_timeout", "Timeout during key agreement. The key agreement was not performed with {nick $0}", 1, { 0 } }, + { "pubkey_received", "Received {hilight $0} public key", 1, { 0 } }, + { "pubkey_fingerprint", "Fingerprint for the {hilight $0} key is %: $1", 2, { 0, 0 } }, + { "pubkey_unsupported", "We don't support {hilight $0} public key type {hilight $1}", 2, { 0, 0 } }, + { "pubkey_discard", "Will not accept the {hilight $0} key", 1, { 0 } }, + { "pubkey_accept", "Would you like to accept the key (y/n)? ", 0 }, + { "pubkey_accept_anyway", "Would you like to accept the key anyway (y/n)? ", 0 }, + { "pubkey_could_not_load", "Could not load your local copy of the {hilight $0} key", 1, { 0 } }, + { "pubkey_malformed", "Your local copy of the {hilight $0} key is malformed", 1, { 0 } }, + { "pubkey_no_match", "{hilight $0} key does not match with your local copy", 1, { 0 } }, + { "pubkey_maybe_expired", "It is possible that the key has expired or changed", 0 }, + { "pubkey_mitm_attach", "It is also possible that someone is performing man-in-the-middle attack", 0 }, /* Key management and key agreement */ { NULL, "Misc", 0 }, - { "server_oper", "You are now {hilight server operator}", 0, { 0 } }, - { "router_oper", "You are now {hilight SILC operator}", 0, { 0 } }, - { "list_header", " Channel Users Topic", 0, { 0 } }, + { "server_oper", "You are now {hilight server operator}", 0 }, + { "router_oper", "You are now {hilight SILC operator}", 0 }, + { "list_header", " Channel Users Topic", 0 }, { "list", " %|{channelhilight $[36]0} {hilight $[7]1} $2", 3, { 0, 0, 0 } }, + { "bad_nick", "Bad nickname {hilight $0}", 1, { 0 } }, + { "unknown_notify", "Unknown notify type {hilight $0}", 1, { 0 } }, + { "ke_bad_version", "You are running incompatible client version (it may be too old or too new) ", 0 }, + { "ke_unsupported_public_key", "Server does not support your public key type", 0 }, + { "ke_unknown_group", "Server does not support one of your proposed KE group", 0 }, + { "ke_unknown_cipher", "Server does not support one of your proposed cipher", 0 }, + { "ke_unknown_pkcs", "Server does not support one of your proposed PKCS", 0 }, + { "ke_unknown_hash_function", "Server does not support one of your proposed hash function", 0 }, + { "ke_unknown_hmac", "Server does not support one of your proposed HMAC", 0 }, + { "ke_incorrect_signature", "Incorrect signature", 0 }, + { "auth_failed", "Authentication failed", 0 }, { NULL, NULL, 0 } }; diff --git a/apps/irssi/src/fe-common/silc/module-formats.h b/apps/irssi/src/fe-common/silc/module-formats.h index 640e3e73..13284445 100644 --- a/apps/irssi/src/fe-common/silc/module-formats.h +++ b/apps/irssi/src/fe-common/silc/module-formats.h @@ -34,6 +34,10 @@ enum { SILCTXT_CHANNEL_NOTICE, SILCTXT_CHANNEL_OWNACTION, SILCTXT_CHANNEL_OWNNOTICE, + SILCTXT_CHANNEL_INVITE_LIST, + SILCTXT_CHANNEL_NO_INVITE_LIST, + SILCTXT_CHANNEL_BAN_LIST, + SILCTXT_CHANNEL_NO_BAN_LIST, SILCTXT_FILL_2, @@ -62,6 +66,17 @@ enum { SILCTXT_KEY_AGREEMENT_ERROR, SILCTXT_KEY_AGREEMENT_FAILURE, SILCTXT_KEY_AGREEMENT_TIMEOUT, + SILCTXT_PUBKEY_RECEIVED, + SILCTXT_PUBKEY_FINGERPRINT, + SILCTXT_PUBKEY_UNSUPPORTED, + SILCTXT_PUBKEY_DISCARD, + SILCTXT_PUBKEY_ACCEPT, + SILCTXT_PUBKEY_ACCEPT_ANYWAY, + SILCTXT_PUBKEY_COULD_NOT_LOAD, + SILCTXT_PUBKEY_MALFORMED, + SILCTXT_PUBKEY_NO_MATCH, + SILCTXT_PUBKEY_MAYBE_EXPIRED, + SILCTXT_PUBKEY_MITM_ATTACK, SILCTXT_FILL_4, @@ -69,7 +84,18 @@ enum { SILCTXT_ROUTER_OPER, SILCTXT_LIST_HEADER, SILCTXT_LIST, - + SILCTXT_BAD_NICK, + SILCTXT_UNKNOWN_NOTIFY, + SILCTXT_KE_BAD_VERSION, + SILCTXT_KE_UNSUPPORTED_PUBLIC_KEY, + SILCTXT_KE_UNKNOWN_PUBLIC_KEY, + SILCTXT_KE_UNKNOWN_GROUP, + SILCTXT_KE_UNKNOWN_CIPHER, + SILCTXT_KE_UNKNOWN_PKCS, + SILCTXT_KE_UNKNOWN_HASH_FUNCTION, + SILCTXT_KE_UNKNOWN_HMAC, + SILCTXT_KE_INCORRECT_SIGNATURE, + SILCTXT_AUTH_FAILED, }; extern FORMAT_REC fecommon_silc_formats[]; diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index f609dcee..e8386ac5 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -76,10 +76,9 @@ void silc_say_error(char *msg, ...) /* Message for a channel. The `sender' is the nickname of the sender received in the packet. The `channel_name' is the name of the channel. */ -void -silc_channel_message(SilcClient client, SilcClientConnection conn, - SilcClientEntry sender, SilcChannelEntry channel, - SilcMessageFlags flags, char *msg) +void silc_channel_message(SilcClient client, SilcClientConnection conn, + SilcClientEntry sender, SilcChannelEntry channel, + SilcMessageFlags flags, char *msg) { SILC_SERVER_REC *server; SILC_NICK_REC *nick; @@ -106,9 +105,8 @@ silc_channel_message(SilcClient client, SilcClientConnection conn, /* Private message to the client. The `sender' is the nickname of the sender received in the packet. */ -void -silc_private_message(SilcClient client, SilcClientConnection conn, - SilcClientEntry sender, SilcMessageFlags flags, +void silc_private_message(SilcClient client, SilcClientConnection conn, + SilcClientEntry sender, SilcMessageFlags flags, char *msg) { SILC_SERVER_REC *server; @@ -153,7 +151,7 @@ static NOTIFY_REC notifies[] = { }; void silc_notify(SilcClient client, SilcClientConnection conn, - SilcNotifyType type, ...) + SilcNotifyType type, ...) { SILC_SERVER_REC *server; va_list va; @@ -171,7 +169,8 @@ void silc_notify(SilcClient client, SilcClientConnection conn, signal_emit(signal, 2, server, va); } else { /* Unknown notify */ - printtext(server, NULL, MSGLEVEL_CRAP, "Unknown notify type %d", type); + printformat_module("fe-common/silc", server, NULL, + MSGLEVEL_CRAP, SILCTXT_UNKNOWN_NOTIFY, type); } va_end(va); @@ -181,8 +180,7 @@ void silc_notify(SilcClient client, SilcClientConnection conn, or connecting failed. This is also the first time application receives the SilcClientConnection objecet which it should save somewhere. */ -void -silc_connect(SilcClient client, SilcClientConnection conn, int success) +void silc_connect(SilcClient client, SilcClientConnection conn, int success) { SILC_SERVER_REC *server = conn->context; @@ -198,8 +196,7 @@ silc_connect(SilcClient client, SilcClientConnection conn, int success) /* Called to indicate that connection was disconnected to the server. */ -void -silc_disconnect(SilcClient client, SilcClientConnection conn) +void silc_disconnect(SilcClient client, SilcClientConnection conn) { SILC_SERVER_REC *server = conn->context; @@ -218,21 +215,20 @@ silc_disconnect(SilcClient client, SilcClientConnection conn) after application has called the command. Just to tell application that the command really was processed. */ -void -silc_command(SilcClient client, SilcClientConnection conn, - SilcClientCommandContext cmd_context, int success, - SilcCommand command) +void silc_command(SilcClient client, SilcClientConnection conn, + SilcClientCommandContext cmd_context, int success, + SilcCommand command) { } /* Client info resolving callback when JOIN command reply is received. This will cache all users on the channel. */ -void silc_client_join_get_users(SilcClient client, - SilcClientConnection conn, - SilcClientEntry *clients, - uint32 clients_count, - void *context) +static void silc_client_join_get_users(SilcClient client, + SilcClientConnection conn, + SilcClientEntry *clients, + uint32 clients_count, + void *context) { SilcChannelEntry channel = (SilcChannelEntry)context; SilcChannelUser chu; @@ -435,17 +431,17 @@ silc_command_reply(SilcClient client, SilcClientConnection conn, if (!success) return; - /* XXX should use irssi routines */ - channel = va_arg(vp, SilcChannelEntry); invite_list = va_arg(vp, char *); if (invite_list) - silc_say(client, conn, "%s invite list: %s", channel->channel_name, - invite_list); + printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, + SILCTXT_CHANNEL_INVITE_LIST, channel->channel_name, + invite_list); else - silc_say(client, conn, "%s invite list not set", - channel->channel_name); + printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, + SILCTXT_CHANNEL_NO_INVITE_LIST, + channel->channel_name); } break; @@ -550,7 +546,13 @@ silc_command_reply(SilcClient client, SilcClientConnection conn, mode = va_arg(vp, uint32); - /* XXX todo */ + if (mode & SILC_UMODE_SERVER_OPERATOR) + printformat_module("fe-common/silc", server, NULL, + MSGLEVEL_CRAP, SILCTXT_SERVER_OPER); + + if (mode & SILC_UMODE_ROUTER_OPERATOR) + printformat_module("fe-common/silc", server, NULL, + MSGLEVEL_CRAP, SILCTXT_ROUTER_OPER); } break; @@ -610,16 +612,17 @@ silc_command_reply(SilcClient client, SilcClientConnection conn, if (!success) return; - /* XXX should use irssi routines */ - channel = va_arg(vp, SilcChannelEntry); ban_list = va_arg(vp, char *); if (ban_list) - silc_say(client, conn, "%s ban list: %s", channel->channel_name, - ban_list); + printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, + SILCTXT_CHANNEL_BAN_LIST, channel->channel_name, + ban_list); else - silc_say(client, conn, "%s ban list not set", channel->channel_name); + printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, + SILCTXT_CHANNEL_NO_BAN_LIST, + channel->channel_name); } break; @@ -637,12 +640,10 @@ silc_command_reply(SilcClient client, SilcClientConnection conn, pk = silc_pkcs_public_key_encode(public_key, &pk_len); - if (id_type == SILC_ID_CLIENT) { + if (id_type == SILC_ID_CLIENT) silc_verify_public_key_internal(client, conn, SILC_SOCKET_TYPE_CLIENT, pk, pk_len, SILC_SKE_PK_TYPE_SILC, NULL, NULL); - } - silc_free(pk); } @@ -707,12 +708,13 @@ static void verify_public_key_completion(const char *line, void *context) if (verify->completion) verify->completion(FALSE, verify->context); - silc_say(verify->client, - verify->conn, "Will not accept the %s key", verify->entity); + printformat_module("fe-common/silc", NULL, NULL, + MSGLEVEL_CRAP, SILCTXT_PUBKEY_DISCARD, verify->entity); } silc_free(verify->filename); silc_free(verify->entity); + silc_free(verify->pk); silc_free(verify); } @@ -723,7 +725,7 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, SilcVerifyPublicKey completion, void *context) { int i; - char file[256], filename[256], *fingerprint; + char file[256], filename[256], *fingerprint, *format; struct passwd *pw; struct stat st; char *entity = ((conn_type == SILC_SOCKET_TYPE_SERVER || @@ -732,8 +734,9 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, PublicKeyVerify verify; if (pk_type != SILC_SKE_PK_TYPE_SILC) { - silc_say(client, conn, "We don't support %s public key type %d", - entity, pk_type); + printformat_module("fe-common/silc", NULL, NULL, + MSGLEVEL_CRAP, SILCTXT_PUBKEY_UNSUPPORTED, + entity, pk_type); if (completion) completion(FALSE, context); return; @@ -776,7 +779,8 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, verify->conn = conn; verify->filename = strdup(filename); verify->entity = strdup(entity); - verify->pk = pk; + verify->pk = silc_calloc(pk_len, sizeof(*verify->pk)); + memcpy(verify->pk, pk, pk_len); verify->pk_len = pk_len; verify->pk_type = pk_type; verify->completion = completion; @@ -786,13 +790,15 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, if (stat(filename, &st) < 0) { /* Key does not exist, ask user to verify the key and save it */ - silc_say(client, conn, "Received %s public key", entity); - silc_say(client, conn, "Fingerprint for the %s key is", entity); - silc_say(client, conn, "%s", fingerprint); - + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_RECEIVED, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_FINGERPRINT, entity, fingerprint); + format = format_get_text("fe-common/silc", NULL, NULL, NULL, + SILCTXT_PUBKEY_ACCEPT); keyboard_entry_redirect((SIGNAL_FUNC)verify_public_key_completion, - "Would you like to accept the key (y/n)? ", 0, - verify); + format, 0, verify); + g_free(format); silc_free(fingerprint); return; } else { @@ -806,15 +812,17 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, SILC_PKCS_FILE_PEM)) if (!silc_pkcs_load_public_key(filename, &public_key, SILC_PKCS_FILE_BIN)) { - silc_say(client, conn, "Received %s public key", entity); - silc_say(client, conn, "Fingerprint for the %s key is", entity); - silc_say(client, conn, "%s", fingerprint); - silc_say(client, conn, "Could not load your local copy of the %s key", - entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_RECEIVED, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_FINGERPRINT, entity, fingerprint); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_COULD_NOT_LOAD, entity); + format = format_get_text("fe-common/silc", NULL, NULL, NULL, + SILCTXT_PUBKEY_ACCEPT_ANYWAY); keyboard_entry_redirect((SIGNAL_FUNC)verify_public_key_completion, - "Would you like to accept the key " - "anyway (y/n)? ", 0, - verify); + format, 0, verify); + g_free(format); silc_free(fingerprint); return; } @@ -822,36 +830,40 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, /* Encode the key data */ encpk = silc_pkcs_public_key_encode(public_key, &encpk_len); if (!encpk) { - silc_say(client, conn, "Received %s public key", entity); - silc_say(client, conn, "Fingerprint for the %s key is", entity); - silc_say(client, conn, "%s", fingerprint); - silc_say(client, conn, "Your local copy of the %s key is malformed", - entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_RECEIVED, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_FINGERPRINT, entity, fingerprint); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_MALFORMED, entity); + format = format_get_text("fe-common/silc", NULL, NULL, NULL, + SILCTXT_PUBKEY_ACCEPT_ANYWAY); keyboard_entry_redirect((SIGNAL_FUNC)verify_public_key_completion, - "Would you like to accept the key " - "anyway (y/n)? ", 0, - verify); + format, 0, verify); + g_free(format); silc_free(fingerprint); return; } /* Compare the keys */ if (memcmp(encpk, pk, encpk_len)) { - silc_say(client, conn, "Received %s public key", entity); - silc_say(client, conn, "Fingerprint for the %s key is", entity); - silc_say(client, conn, "%s", fingerprint); - silc_say(client, conn, "%s key does not match with your local copy", - entity); - silc_say(client, conn, - "It is possible that the key has expired or changed"); - silc_say(client, conn, "It is also possible that some one is performing " - "man-in-the-middle attack"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_RECEIVED, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_FINGERPRINT, entity, fingerprint); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_NO_MATCH, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_MAYBE_EXPIRED, entity); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_PUBKEY_MITM_ATTACK, entity); /* Ask user to verify the key and save it */ + format = format_get_text("fe-common/silc", NULL, NULL, NULL, + SILCTXT_PUBKEY_ACCEPT_ANYWAY); keyboard_entry_redirect((SIGNAL_FUNC)verify_public_key_completion, - "Would you like to accept the key " - "anyway (y/n)? ", 0, - verify); + format, 0, verify); + g_free(format); silc_free(fingerprint); return; } @@ -935,38 +947,44 @@ int silc_get_auth_method(SilcClient client, SilcClientConnection conn, must explicitly cast it to correct type. Usually `failure' is 32 bit failure type (see protocol specs for all protocol failure types). */ -void -silc_failure(SilcClient client, SilcClientConnection conn, - SilcProtocol protocol, void *failure) +void silc_failure(SilcClient client, SilcClientConnection conn, + SilcProtocol protocol, void *failure) { if (protocol->protocol->type == SILC_PROTOCOL_CLIENT_KEY_EXCHANGE) { SilcSKEStatus status = (SilcSKEStatus)failure; if (status == SILC_SKE_STATUS_BAD_VERSION) - silc_say_error("You are running incompatible client version (it may be " - "too old or too new)"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_BAD_VERSION); if (status == SILC_SKE_STATUS_UNSUPPORTED_PUBLIC_KEY) - silc_say_error("Server does not support your public key type"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNSUPPORTED_PUBLIC_KEY); if (status == SILC_SKE_STATUS_UNKNOWN_GROUP) - silc_say_error("Server does not support one of your proposed KE group"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNKNOWN_GROUP); if (status == SILC_SKE_STATUS_UNKNOWN_CIPHER) - silc_say_error("Server does not support one of your proposed cipher"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNKNOWN_CIPHER); if (status == SILC_SKE_STATUS_UNKNOWN_PKCS) - silc_say_error("Server does not support one of your proposed PKCS"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNKNOWN_PKCS); if (status == SILC_SKE_STATUS_UNKNOWN_HASH_FUNCTION) - silc_say_error("Server does not support one of your proposed " - "hash function"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNKNOWN_HASH_FUNCTION); if (status == SILC_SKE_STATUS_UNKNOWN_HMAC) - silc_say_error("Server does not support one of your proposed HMAC"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_UNKNOWN_HMAC); if (status == SILC_SKE_STATUS_INCORRECT_SIGNATURE) - silc_say_error("Incorrect signature"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_KE_INCORRECT_SIGNATURE); } if (protocol->protocol->type == SILC_PROTOCOL_CLIENT_CONNECTION_AUTH) { uint32 err = (uint32)failure; if (err == SILC_AUTH_FAILED) - silc_say(client, conn, "Authentication failed"); + printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP, + SILCTXT_AUTH_FAILED); } } diff --git a/apps/irssi/src/silc/core/silc-channels.c b/apps/irssi/src/silc/core/silc-channels.c index 57678937..a19ca5ac 100644 --- a/apps/irssi/src/silc/core/silc-channels.c +++ b/apps/irssi/src/silc/core/silc-channels.c @@ -685,7 +685,8 @@ static void command_key(const char *data, SILC_SERVER_REC *server, } else { /* Parse the typed nickname. */ if (!silc_parse_nickname(argv[2], &nickname, &serv, &num)) { - silc_say(silc_client, conn, "Bad nickname"); + printformat_module("fe-common/silc", server, NULL, + MSGLEVEL_CRAP, SILCTXT_BAD_NICK, argv[2]); return; } diff --git a/apps/irssi/src/silc/core/silc-servers.c b/apps/irssi/src/silc/core/silc-servers.c index 46ed0330..b2986eac 100644 --- a/apps/irssi/src/silc/core/silc-servers.c +++ b/apps/irssi/src/silc/core/silc-servers.c @@ -40,6 +40,7 @@ #include "window-item-def.h" #include "fe-common/core/printtext.h" +#include "fe-common/silc/module-formats.h" void silc_servers_reconnect_init(void); void silc_servers_reconnect_deinit(void); @@ -97,7 +98,8 @@ static void silc_send_msg(SILC_SERVER_REC *server, char *nick, char *msg) char *nickname = NULL, *serv = NULL; if (!silc_parse_nickname(nick, &nickname, &serv, &num)) { - printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Bad nickname: %s", nick); + printformat_module("fe-common/silc", server, NULL, + MSGLEVEL_CRAP, SILCTXT_BAD_NICK, nick); return; } -- 2.24.0