X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Fsilcd%2Fcommand.c;h=49e436bf4bcee6304d549c96cd36583087abc057;hp=e52244a30a6677408a6a085185d5df033adb988e;hb=8ef48975ffcb3daee6167e9766c2b344c73152d1;hpb=a6edbe541e15f554bde13f47cb7042201ab3048b diff --git a/apps/silcd/command.c b/apps/silcd/command.c index e52244a3..49e436bf 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -2362,12 +2362,34 @@ SILC_SERVER_CMD_FUNC(join) sizeof(serv)); channel_name = parsed; - /* If server name is not specified but local channels is FALSE then the - channel will be global, based on our router name. */ - if (!serv[0] && !server->config->local_channels) { - if (!server->standalone) { - silc_snprintf(serv, sizeof(serv), server->router->server_name); - } else { + if (server->config->dynamic_server) { + /* If server name is not specified but local channels is FALSE then the + channel will be global, based on our router name. */ + if (!serv[0] && !server->config->local_channels) { + if (!server->standalone) { + silc_snprintf(serv, sizeof(serv), server->router->server_name); + } else { + SilcServerConfigRouter *router; + router = silc_server_config_get_primary_router(server); + if (router) { + /* Create connection to primary router */ + SILC_LOG_DEBUG(("Create dynamic connection to primary router %s:%d", + router->host, router->port)); + silc_server_create_connection(server, FALSE, TRUE, + router->host, router->port, + silc_server_command_join_connected, + cmd); + return; + } + } + } + + /* If server name is ours, ignore it. */ + if (serv[0] && silc_utf8_strcasecmp(serv, server->server_name)) + memset(serv, 0, sizeof(serv)); + + /* Create connection */ + if (serv[0] && server->standalone) { SilcServerConfigRouter *router; router = silc_server_config_get_primary_router(server); if (router) { @@ -2382,25 +2404,6 @@ SILC_SERVER_CMD_FUNC(join) } } - /* If server name is ours, ignore it. */ - if (serv[0] && silc_utf8_strcasecmp(serv, server->server_name)) - memset(serv, 0, sizeof(serv)); - - /* Create connection */ - if (serv[0] && server->standalone) { - SilcServerConfigRouter *router; - router = silc_server_config_get_primary_router(server); - if (router) { - /* Create connection to primary router */ - SILC_LOG_DEBUG(("Create dynamic connection to primary router %s:%d", - router->host, router->port)); - silc_server_create_connection(server, FALSE, TRUE, - router->host, router->port, - silc_server_command_join_connected, cmd); - return; - } - } - /* Check for valid channel name. This is cached, the original is saved in the channel context. */ channel_namec = silc_channel_name_check(channel_name, strlen(channel_name),