* Raised the default connection-retry count from 4 to 7 in
server. Affected file silcd/server.h.
+ * Cancel any possible reconnect timeouts when we start the
+ key exchange. Affected file silcd/server.c.
+
+ * Do not reconnect on connection failure when SCONNECT was
+ given. Affected files silcd/server.[ch].
+
Tue Jan 22 18:19:36 EET 2002 Pekka Riikonen <priikone@silcnet.org>
* Removed assert()'s from the lib/silcclient/client_keyagr.c.
SilcServerKEInternalContext *proto_ctx;
void *context;
+ /* Cancel any possible retry timeouts */
+ silc_schedule_task_del_by_callback(server->schedule,
+ silc_server_connect_router);
+
/* Set socket options */
silc_net_set_socket_nonblock(sock);
silc_net_set_socket_opt(sock, SOL_SOCKET, SO_REUSEADDR, 1);
sconn->remote_port,
sconn->remote_host);
if (sock < 0) {
- SILC_LOG_ERROR(("Could not connect to router"));
- silc_schedule_task_add(server->schedule, fd,
- silc_server_connect_to_router_retry,
- context, 0, 1, SILC_TASK_TIMEOUT,
- SILC_TASK_PRI_NORMAL);
+ SILC_LOG_ERROR(("Could not connect to router %s:%d",
+ sconn->remote_host, sconn->remote_port));
+ if (!sconn->no_reconnect)
+ silc_schedule_task_add(server->schedule, fd,
+ silc_server_connect_to_router_retry,
+ context, 0, 1, SILC_TASK_TIMEOUT,
+ SILC_TASK_PRI_NORMAL);
return;
}
/* Creates connection to a remote router. */
void silc_server_create_connection(SilcServer server,
- char *remote_host, uint32 port)
+ const char *remote_host, uint32 port)
{
SilcServerConnection sconn;
sconn->server = server;
sconn->remote_host = strdup(remote_host);
sconn->remote_port = port;
+ sconn->no_reconnect = TRUE;
silc_schedule_task_add(server->schedule, 0,
silc_server_connect_router,
bool backup;
char *backup_replace_ip;
int backup_replace_port;
+ bool no_reconnect;
/* Current connection retry info */
uint32 retry_count;
SilcSocketConnection sock,
SilcPacketContext *packet);
void silc_server_create_connection(SilcServer server,
- char *remote_host, uint32 port);
+ const char *remote_host, uint32 port);
void silc_server_close_connection(SilcServer server,
SilcSocketConnection sock);
void silc_server_free_client_data(SilcServer server,