X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fpacket_receive.c;h=34627a4ff5c4514c59c97255bd2322e949464b76;hb=178b699e768fd14c6263d6e6bae3b252d180adee;hp=0725f7e86092c42623bb18a48d328dd106eed8fd;hpb=326d62239906b29c263f8e87137f5f6cad5afa5b;p=silc.git diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 0725f7e8..34627a4f 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -1230,6 +1230,12 @@ void silc_server_notify(SilcServer server, if (!server_id) goto out; + /* If the ID is mine, this notify is not allowed. */ + if (SILC_ID_SERVER_COMPARE(server_id, server->id)) { + SILC_LOG_DEBUG(("Ignoring my own ID for SERVER_SIGNOFF")); + break; + } + /* Get server entry */ server_entry = silc_idlist_find_server_by_id(server->global_list, server_id, TRUE, NULL); @@ -1305,7 +1311,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) || server_entry == server->id_entry) + if (SILC_IS_LOCAL(server_entry)) break; /* Remove all servers that are originated from this server, and