Do not allow removing of local server entry in SERVER_SIGNOFF notify.
[silc.git] / apps / silcd / packet_receive.c
index d3f03aae0bca0667e643715008640924f39f2955..525ada9d0d9d57112830a826989048cf698b0467 100644 (file)
@@ -1233,7 +1233,7 @@ void silc_server_notify(SilcServer server,
     /* Get server entry */
     server_entry = silc_idlist_find_server_by_id(server->global_list, 
                                                 server_id, TRUE, NULL);
-    local = TRUE;
+    local = FALSE;
     if (!server_entry) {
       server_entry = silc_idlist_find_server_by_id(server->local_list, 
                                                   server_id, TRUE, NULL);
@@ -1305,7 +1305,7 @@ void silc_server_notify(SilcServer server,
     silc_free(server_id);
 
     /* Sending SERVER_SIGNOFF is not right way to signoff local connection */
-    if (SILC_IS_LOCAL(server_entry))
+    if (SILC_IS_LOCAL(server_entry) || server_entry == server->id_entry)
       break;
 
     /* Remove all servers that are originated from this server, and