Use primary router when sending WHOIS packet if client->router is NULL.
[silc.git] / apps / silcd / server_query.c
index 0725286c68efcca6da53b61b3b4bb1fd396f1b8d..968e0ca38adb0289e2d0501890dfdc759cc3ac3d 100644 (file)
@@ -1516,6 +1516,7 @@ void silc_server_query_send_reply(SilcServer server,
   SilcUInt16 ident = silc_command_get_ident(cmd->payload);
   SilcStatus status;
   unsigned char *tmp;
+  char *tmp2;
   SilcUInt32 len;
   SilcBuffer idp;
   int i, k, valid_count;
@@ -1642,8 +1643,8 @@ void silc_server_query_send_reply(SilcServer server,
            hsock = entry->connection;
            silc_strncat(uh, sizeof(uh), "@", 1);
            silc_socket_stream_get_info(silc_packet_stream_get_stream(hsock),
-                                       NULL, (const char **)&tmp, NULL, NULL);
-           silc_strncat(uh, sizeof(uh), tmp, strlen(tmp));
+                                       NULL, (const char **)&tmp2, NULL, NULL);
+           silc_strncat(uh, sizeof(uh), tmp2, strlen(tmp2));
          }
 
          if (idata->conn_type == SILC_CONN_CLIENT)
@@ -1733,9 +1734,9 @@ void silc_server_query_send_reply(SilcServer server,
            hsock = entry->connection;
            silc_strncat(uh, sizeof(uh), "@", 1);
            silc_socket_stream_get_info(silc_packet_stream_get_stream(hsock),
-                                       NULL, (const char **)&tmp,
+                                       NULL, (const char **)&tmp2,
                                        NULL, NULL);
-           silc_strncat(uh, sizeof(uh), tmp, strlen(tmp));
+           silc_strncat(uh, sizeof(uh), tmp2, strlen(tmp2));
          }
 
          silc_server_send_command_reply(server, cmd->sock, query->querycmd,
@@ -2181,7 +2182,8 @@ SilcClientEntry silc_server_query_client(SilcServer server,
                                            server->cmd_ident, 1,
                                            4, idp->data,
                                            silc_buffer_len(idp));
-    silc_server_packet_send(server, client ? client->router->connection :
+    silc_server_packet_send(server,
+                           client && client->router ? client->router->connection :
                            SILC_PRIMARY_ROUTE(server),
                            SILC_PACKET_COMMAND, 0,
                            buffer->data, silc_buffer_len(buffer));