/* 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",
SilcSKRKey key;
if (keys) {
+ SILC_LOG_DEBUG(("Found %d keys", silc_dlist_count(keys)));
(*uc->clients) = silc_realloc((*uc->clients),
sizeof((**uc->clients)) *
((*uc->clients_count) +
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)));
SilcUInt16 ident = silc_command_get_ident(cmd->payload);
SilcStatus status;
unsigned char *tmp;
+ char *tmp2;
SilcUInt32 len;
SilcBuffer idp;
int i, k, valid_count;
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)
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,
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));