From: Pekka Riikonen Date: Sun, 9 Jan 2005 13:30:08 +0000 (+0000) Subject: Remove server from backup list when deleting it. X-Git-Tag: silc.server.0.9.19~47 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=c8408185db9afd83af073472265c72b30d1757d0;p=silc.git Remove server from backup list when deleting it. --- diff --git a/CHANGES b/CHANGES index 7001bd5b..8bc93a32 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +Sun Jan 9 14:28:51 CET 2005 Pekka Riikonen + + * Make sure server is removed from backup list when it is + deleted. Affected files silcd/command.c, server.c, + server_util.c. + Tue Jan 4 13:06:26 CET 2005 Jochen Eisinger * Adopt configuration toolchain to current auto-tools. diff --git a/apps/silcd/command.c b/apps/silcd/command.c index c52d7098..8e2acc19 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -5072,10 +5072,10 @@ SILC_SERVER_CMD_FUNC(close) SILC_GET32_MSB(port, tmp); server_entry = silc_idlist_find_server_by_conn(server->local_list, - name, port, FALSE, NULL); + name, port, TRUE, NULL); if (!server_entry) server_entry = silc_idlist_find_server_by_conn(server->global_list, - name, port, FALSE, NULL); + name, port, TRUE, NULL); if (!server_entry) { silc_server_command_send_status_reply(cmd, SILC_COMMAND_PRIV_CLOSE, SILC_STATUS_ERR_NO_SERVER_ID, 0); @@ -5095,8 +5095,10 @@ SILC_SERVER_CMD_FUNC(close) /* Close the connection to the server */ sock = (SilcSocketConnection)server_entry->connection; - if (server_entry->server_type == SILC_BACKUP_ROUTER) + if (server_entry->server_type == SILC_BACKUP_ROUTER) { server->backup_closed = TRUE; + silc_server_backup_del(server, server_entry); + } server->backup_noswitch = TRUE; if (server->router == server_entry) { diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index a23d223f..1215e604 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -2615,6 +2615,8 @@ SilcServerEntry silc_server_new_server(SilcServer server, server_id, TRUE, NULL); if (server_entry) { if (SILC_IS_LOCAL(server_entry)) { + SILC_LOG_ERROR(("Too many registrations from %s (%s)", + sock->ip, sock->hostname)); silc_server_disconnect_remote(server, sock, SILC_STATUS_ERR_OPERATION_ALLOWED, "Too many registrations"); @@ -2629,6 +2631,8 @@ SilcServerEntry silc_server_new_server(SilcServer server, server_id, TRUE, NULL); if (server_entry) { if (SILC_IS_LOCAL(server_entry)) { + SILC_LOG_ERROR(("Too many registrations from %s (%s)", + sock->ip, sock->hostname)); silc_server_disconnect_remote(server, sock, SILC_STATUS_ERR_OPERATION_ALLOWED, "Too many registrations"); diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index fb1bbaae..d733f78a 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -873,6 +873,7 @@ void silc_server_remove_servers_by_server(SilcServer server, TRUE); /* Remove the server */ + silc_server_backup_del(server, server_entry); silc_idlist_del_server(server->local_list, server_entry); if (!silc_idcache_list_next(list, &id_cache)) @@ -900,6 +901,7 @@ void silc_server_remove_servers_by_server(SilcServer server, TRUE); /* Remove the server */ + silc_server_backup_del(server, server_entry); silc_idlist_del_server(server->global_list, server_entry); if (!silc_idcache_list_next(list, &id_cache))