X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_backup.h;fp=apps%2Fsilcd%2Fserver_backup.h;h=0000000000000000000000000000000000000000;hb=72c2de619079457f7a68100eb13385275a424a23;hp=79684a6793b0e44cdc801fb68008563e0dce9576;hpb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;p=runtime.git diff --git a/apps/silcd/server_backup.h b/apps/silcd/server_backup.h deleted file mode 100644 index 79684a67..00000000 --- a/apps/silcd/server_backup.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - - server_backup.h - - Author: Pekka Riikonen - - Copyright (C) 2001 - 2003, 2007 Pekka Riikonen - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -*/ - -#ifndef SERVER_BACKUP_H -#define SERVER_BACKUP_H - -/* Backup resuming protocol types */ -#define SILC_SERVER_BACKUP_START 1 /* Start protocol */ -#define SILC_SERVER_BACKUP_CONNECTED 2 /* Connected to primary */ -#define SILC_SERVER_BACKUP_ENDING 3 /* Giving up as primary */ -#define SILC_SERVER_BACKUP_RESUMED 4 /* Primary is back online */ -#define SILC_SERVER_BACKUP_REPLACED 20 /* Primary has been replaced */ -#define SILC_SERVER_BACKUP_START_USE 21 /* Start use backup as primary */ - -/* Adds the `backup_server' to be one of our backup router. This can be - called multiple times to set multiple backup routers. The `replacing' is - the IP and port that the `backup_router' will replace if the `replacing' - will become unresponsive. If `local' is TRUE then the `backup_server' is - in the local cell, if FALSE it is in some other cell. */ -void silc_server_backup_add(SilcServer server, SilcServerEntry backup_server, - const char *ip, int port, SilcBool local); - -/* Returns backup router for IP and port in `server_id' or NULL if there - does not exist backup router. */ -SilcServerEntry silc_server_backup_get(SilcServer server, - SilcServerID *server_id); - -/* Deletes the backup server `server_entry'. */ -void silc_server_backup_del(SilcServer server, SilcServerEntry server_entry); - -/* Frees all data allocated for backup routers. Call this after deleting - all backup routers and when new routers are added no more, for example - when shutting down the server. */ -void silc_server_backup_free(SilcServer server); - -/* Marks the IP address and port from the `server_id' as being replaced - by backup router indicated by the `server'. If the router connects at - a later time we can check whether it has been replaced by an backup - router. */ -void silc_server_backup_replaced_add(SilcServer server, - SilcServerID *server_id, - SilcServerEntry server_entry); - -/* Checks whether the IP address and port from the `server_id' has been - replaced by an backup router. If it has been then this returns TRUE - and the bacup router entry to the `server' pointer if non-NULL. Returns - FALSE if the router is not replaced by backup router. */ -SilcBool silc_server_backup_replaced_get(SilcServer server, - SilcServerID *server_id, - SilcServerEntry *server_entry); - -/* Deletes a replaced host by the set `server_entry. */ -void silc_server_backup_replaced_del(SilcServer server, - SilcServerEntry server_entry); - -/* Broadcast the received packet indicated by `packet' to all of our backup - routers. All router wide information is passed using broadcast packets. - That is why all backup routers need to get this data too. It is expected - that the caller already knows that the `packet' is broadcast packet. */ -void silc_server_backup_broadcast(SilcServer server, - SilcPacketStream sender, - SilcPacket packet); - -/* A generic routine to send data to all backup routers. If the `sender' - is provided it will indicate the original sender of the packet and the - packet won't be resent to that entity. The `data' is the data that will - be assembled to packet context before sending. The packet will be - encrypted this function. If the `force_send' is TRUE the data is sent - immediately and not put to queue. If `local' is TRUE then the packet - will be sent only to local backup routers inside the cell. If false the - packet can go from one cell to the other. This function has no effect - if there are no any backup routers. */ -void silc_server_backup_send(SilcServer server, - SilcServerEntry sender, - SilcPacketType type, - SilcPacketFlags flags, - unsigned char *data, - SilcUInt32 data_len, - SilcBool force_send, - SilcBool local); - -/* Same as silc_server_backup_send but sets a specific Destination ID to - the packet. The Destination ID is indicated by the `dst_id' and the - ID type `dst_id_type'. For example, packets destined to channels must - be sent using this function. */ -void silc_server_backup_send_dest(SilcServer server, - SilcServerEntry sender, - SilcPacketType type, - SilcPacketFlags flags, - void *dst_id, - SilcIdType dst_id_type, - unsigned char *data, - SilcUInt32 data_len, - SilcBool force_send, - SilcBool local); - -/* Send the START_USE indication to remote connection. If `failure' is - TRUE then this sends SILC_PACKET_FAILURE. Otherwise it sends - SILC_PACKET_RESUME_ROUTER. */ -void silc_server_backup_send_start_use(SilcServer server, - SilcPacketStream sock, - SilcBool failure); - -/* Send the REPLACED indication to remote router. This is send by the - primary router (remote router) of the primary router that came back - online. This is not sent by backup router or any other server. */ -void silc_server_backup_send_replaced(SilcServer server, - SilcPacketStream sock); - -/* Processes incoming RESUME_ROUTER packet. This can give the packet - for processing to the protocol handler or allocate new protocol if - start command is received. */ -void silc_server_backup_resume_router(SilcServer server, - SilcPacketStream sock, - SilcPacket packet); - -/* Called when we've established connection back to our primary router - when we've acting as backup router and have replaced the primary router - in the cell. This function will start the backup resuming protocol. */ -void silc_server_backup_connected(SilcServer server, - SilcServerEntry server_entry, - void *context); - -/* Backup resuming protocol. This protocol is executed when the primary - router wants to resume its position as being primary router. */ -SILC_TASK_CALLBACK(silc_server_protocol_backup); - -#endif /* SERVER_BACKUP_H */