X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_util.h;h=6831ce31407caf7340f94beace0c73c721489f35;hb=ad84e8073e747c282e234e14e21a78bad24960cb;hp=6d906485d32ddca51f9195181ec4c501734db73f;hpb=f4bfb2bd7a663acfff720ee901463d370266a9c5;p=silc.git diff --git a/apps/silcd/server_util.h b/apps/silcd/server_util.h index 6d906485..6831ce31 100644 --- a/apps/silcd/server_util.h +++ b/apps/silcd/server_util.h @@ -20,12 +20,12 @@ #ifndef SERVER_UTIL_H #define SERVER_UTIL_H -/* This function is used to remove all client entries by the server `entry'. - This is called when the connection is lost to the server. In this case - we must invalidate all the client entries owned by the server `entry'. - If the `server_signoff' is TRUE then the SERVER_SIGNOFF notify is +/* This function removes all client entries that are originated from + `router' and are owned by `entry'. `router' and `entry' can be same + too. If `server_signoff' is TRUE then SERVER_SIGNOFF notify is distributed to our local clients. */ -bool silc_server_remove_clients_by_server(SilcServer server, +bool silc_server_remove_clients_by_server(SilcServer server, + SilcServerEntry router, SilcServerEntry entry, bool server_signoff); @@ -57,6 +57,15 @@ void silc_server_update_servers_by_server(SilcServer server, void silc_server_local_servers_toggle_enabled(SilcServer server, bool toggle_enabled); +/* Removes servers that are originated from the `from'. The server + entry is deleted in this function. If `remove_clients' is TRUE then + all clients originated from the server are removed too, and server + signoff is sent. Note that this does not remove the `from'. This + also does not remove locally connected servers. */ +void silc_server_remove_servers_by_server(SilcServer server, + SilcServerEntry from, + bool remove_clients); + /* Removes channels that are from `from. */ void silc_server_remove_channels_by_server(SilcServer server, SilcServerEntry from);