+Sun Jan 9 14:28:51 CET 2005 Pekka Riikonen <priikone@silcnet.org>
+
+ * 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 <jochen@penguin-breeder.org>
* Adopt configuration toolchain to current auto-tools.
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);
/* 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) {
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");
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");
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))
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))