Fixed JOIN notify to put all messages to channel window.
break;
}
silc_snprintf(tmp, sizeof(tmp), "%d", silc_dlist_count(clients));
break;
}
silc_snprintf(tmp, sizeof(tmp), "%d", silc_dlist_count(clients));
- printformat_module("fe-common/silc", server, NULL,
+ printformat_module("fe-common/silc", server, channel->channel_name,
MSGLEVEL_CRAP, SILCTXT_CHANNEL_MANY_NICKS,
tmp, nick);
MSGLEVEL_CRAP, SILCTXT_CHANNEL_MANY_NICKS,
tmp, nick);
- printformat_module("fe-common/silc", server, NULL,
+ printformat_module("fe-common/silc", server, channel->channel_name,
MSGLEVEL_CRAP, SILCTXT_CHANNEL_USER_APPEARS,
buf, client_entry->nickname);
silc_client_list_free(client, conn, clients);
MSGLEVEL_CRAP, SILCTXT_CHANNEL_USER_APPEARS,
buf, client_entry->nickname);
silc_client_list_free(client, conn, clients);
SilcClientConnectionParams params;
char *file;
SilcClientConnectionParams params;
char *file;
if (!stream) {
server->connection_lost = TRUE;
server_disconnect(SERVER(server));
if (!stream) {
server->connection_lost = TRUE;
server_disconnect(SERVER(server));
/* Wrap the socket to TCP stream */
fd = g_io_channel_unix_get_fd(net_sendbuffer_handle(server->handle));
/* Wrap the socket to TCP stream */
fd = g_io_channel_unix_get_fd(net_sendbuffer_handle(server->handle));
- silc_socket_tcp_stream_create(fd, TRUE, FALSE, silc_client->schedule,
- sig_connected_stream_created, server);
+ server->tcp_op =
+ silc_socket_tcp_stream_create(fd, TRUE, FALSE,
+ silc_client->schedule,
+ sig_connected_stream_created, server);
}
static void sig_disconnected(SILC_SERVER_REC *server)
}
static void sig_disconnected(SILC_SERVER_REC *server)
/* Abort on going connecting (key exchange) */
silc_async_abort(server->op, NULL, NULL);
server->op = NULL;
/* Abort on going connecting (key exchange) */
silc_async_abort(server->op, NULL, NULL);
server->op = NULL;
+ } else if (server->tcp_op) {
+ /* Abort on going TCP stream creation */
+ silc_async_abort(server->tcp_op, NULL, NULL);
+ server->tcp_op = NULL;
}
/* SILC closes the handle */
}
/* SILC closes the handle */
gpointer chanqueries;
SilcClientConnection conn;
gpointer chanqueries;
SilcClientConnection conn;
+ SilcAsyncOperation op; /* Key exchange operation handle */
+ SilcAsyncOperation tcp_op; /* TCP stream creation operation handle */
SilcUInt32 umode;
} SILC_SERVER_REC;
SilcUInt32 umode;
} SILC_SERVER_REC;