From: Pekka Riikonen Date: Thu, 6 Nov 2003 11:54:13 +0000 (+0000) Subject: Simplified GETKEY command sending. X-Git-Tag: silc.toolkit.0.9.11~26 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=91b9a3db28a300eac31431853f19343c5e0b6727;p=silc.git Simplified GETKEY command sending. --- diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 1767b6fa..ec12d2d7 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -2829,20 +2829,15 @@ static void silc_server_new_id_real(SilcServer server, if (server->server_type == SILC_ROUTER && id_list == server->local_list) silc_server_check_watcher_list(server, entry, NULL, 0); - if (entry->data.public_key) { - silc_hash_table_add(server->pk_hash, entry->data.public_key, entry); - } else { - /* We need to get the public key using GETKEY */ - SilcBuffer idp = silc_id_payload_encode(entry->id, SILC_ID_CLIENT); - SilcSocketConnection dest_sock; - - dest_sock = silc_server_get_client_route(server, NULL, 0, entry->id, - NULL, NULL); - silc_server_send_command(server, dest_sock ? dest_sock - : SILC_PRIMARY_ROUTE(server), - SILC_COMMAND_GETKEY, ++server->cmd_ident, - 1, 1, idp->data, idp->len); - silc_buffer_free(idp); + if (server->server_type == SILC_ROUTER) { + /* Add the client's public key to hash table or get the key with + GETKEY command. */ + if (entry->data.public_key) + silc_hash_table_add(server->pk_hash, entry->data.public_key, entry); + else + silc_server_send_command(server, router_sock, + SILC_COMMAND_GETKEY, ++server->cmd_ident, + 1, 1, buffer->data, buffer->len); } } break;