-Sun Oct 6 13:20:04 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+Sun Oct 6 16:48:32 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
* Don't swtich to become primary router if we are backup if
decryption error has occurred. Affected file silcd/server.c.
+ * Fixed a bug in backup router IP address comparison in
+ silc_server_backup_get.
+
+ Save now also the port of the server/router and use that
+ in comparison as well. Affected file silcd/server_backup.c.
+
Thu Sep 26 13:51:02 CEST 2002 Pekka Riikonen <priikone@silcnet.org>
* If packet processing fails (like integrity check fails)
/* If we are backup router then this primary router is whom we are
backing up. */
if (server->server_type == SILC_BACKUP_ROUTER)
- silc_server_backup_add(server, server->id_entry, sock->ip, 0, TRUE);
+ silc_server_backup_add(server, server->id_entry, sock->ip,
+ sconn->remote_port, TRUE);
}
} else {
/* Add this server to be our backup router */
if (!server->backup->servers[i].server) {
server->backup->servers[i].server = backup_server;
server->backup->servers[i].local = local;
+ server->backup->servers[i].port = htons(port);
memset(server->backup->servers[i].ip.data, 0,
sizeof(server->backup->servers[i].ip.data));
silc_net_addr2bin(ip, server->backup->servers[i].ip.data,
(i + 1));
server->backup->servers[i].server = backup_server;
server->backup->servers[i].local = local;
+ server->backup->servers[i].port = htons(port);
memset(server->backup->servers[i].ip.data, 0,
sizeof(server->backup->servers[i].ip.data));
silc_net_addr2bin(ip, server->backup->servers[i].ip.data,
for (i = 0; i < server->backup->servers_count; i++) {
if (server->backup->servers[i].server &&
- !memcmp(&server->backup->servers[i].ip, &server_id->ip.data,
+ server->backup->servers[i].port == server_id->port &&
+ !memcmp(server->backup->servers[i].ip.data, server_id->ip.data,
sizeof(server_id->ip.data))) {
SILC_LOG_DEBUG(("Found backup router %s for %s",
server->backup->servers[i].server->server_name,
for (i = 0; i < server->backup->replaced_count; i++) {
if (!server->backup->replaced[i])
continue;
- if (!memcmp(&server->backup->replaced[i]->ip, &server_id->ip.data,
+ if (!memcmp(server->backup->replaced[i]->ip.data, server_id->ip.data,
sizeof(server_id->ip.data))) {
if (server_entry)
*server_entry = server->backup->replaced[i]->server;
*/
typedef struct {
SilcIDIP ip; /* n bit IP address */
- SilcUInt16 port; /* 16 bit port */
- SilcUInt16 rnd; /* 16 bit random number */
+ SilcUInt16 port; /* 16 bit port */
+ SilcUInt16 rnd; /* 16 bit random number */
} SilcServerID;
/***/
* SOURCE
*/
typedef struct {
- SilcIDIP ip; /* n bit IP address */
- SilcUInt16 port; /* 16 bit port */
- SilcUInt16 rnd; /* 16 bit random number */
+ SilcIDIP ip; /* n bit IP address */
+ SilcUInt16 port; /* 16 bit port */
+ SilcUInt16 rnd; /* 16 bit random number */
} SilcChannelID;
/***/