silcd: do not create dynamic connections on non-dynamic server
authorPekka Riikonen <priikone@silcnet.org>
Thu, 15 Jan 2009 10:21:23 +0000 (12:21 +0200)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 15 Jan 2009 10:21:23 +0000 (12:21 +0200)
apps/silcd/server_query.c

index 968e0ca38adb0289e2d0501890dfdc759cc3ac3d..f3337770ce776b01101d33dc615f656b36c44f36 100644 (file)
@@ -396,6 +396,7 @@ void silc_server_query_send_router_reply(void *context, void *reply)
     /* If this was nick@server query, retry to @serv if the primary router
        returned error. */
     if (query->nick_server[0] && !query->dynamic_retry &&
+       server->config->dynamic_server &&
        !silc_server_num_sockets_by_remote(server, query->nick_server,
                                           query->nick_server, 706, type)) {
       SILC_LOG_DEBUG(("Retry query by connecting to %s:%d",
@@ -937,6 +938,11 @@ void silc_server_query_process(SilcServer server, SilcServerQuery query,
   SilcUInt32 clients_count = 0, channels_count = 0, servers_count = 0;
   int i;
 
+  if (!idata) {
+    silc_server_query_free(query);
+    return;
+  }
+
   SILC_LOG_DEBUG(("Processing %s query",
                  silc_get_command_name(query->querycmd)));