/*
silc-server.c : irssi
- Copyright (C) 2000 - 2007 Timo Sirainen
+ Copyright (C) 2000 - 2008 Timo Sirainen
Pekka Riikonen <priikone@silcnet.org>
This program is free software; you can redistribute it and/or modify
/* We have successfully connected to server */
/* Enable queueing until we have our requested nick */
- if (((opt_nickname &&
- !silc_utf8_strcasecmp(opt_nickname,
- conn->local_entry->nickname)) ||
- (settings_get_str("nick") &&
- !silc_utf8_strcasecmp(settings_get_str("nick"),
- conn->local_entry->nickname))) &&
+ if (settings_get_str("nick") &&
+ !silc_utf8_strcasecmp(settings_get_str("nick"),
+ conn->local_entry->nickname) &&
silc_utf8_strcasecmp(conn->local_entry->nickname,
conn->local_entry->username))
silc_queue_enable(conn);
/* Set connection parameters */
memset(¶ms, 0, sizeof(params));
- params.nickname = (opt_nickname ? (char *)opt_nickname :
- (char *)settings_get_str("nick"));
+ params.nickname = (char *)settings_get_str("nick");
params.timeout_secs = settings_get_int("key_exchange_timeout_secs");
params.rekey_secs = settings_get_int("key_exchange_rekey_secs");
params.pfs = settings_get_bool("key_exchange_rekey_pfs");
+ params.context = server;
/* Try to read detached session data and use it if found. */
file = silc_get_session_filename(server);
SILCTXT_REATTACH, server->tag);
silc_free(file);
- /*
- * Store the SILC_SERVER_REC in the stream context so that we can fetch it
- * from the verify key exchange prompt. There should have been an initial
- * user parameter value for the SilcClientConnection that could have been
- * passed to SilcClientConnectionParams, but because there's no version
- * number or size field in SilcClientConnectionParams, it is fixed for all
- * time and not extendable.
- *
- * Instead, we must revert to pulling the SilcStream out of the
- * SilcPacketStream associated with the SilcClientConnection object in the
- * verify key exchange prompt callback in order to get our per-connection
- * context. Hence, the extra levels of indirection.
- */
-
- silc_socket_stream_set_context(stream, server);
-
/* Start key exchange */
server->op = silc_client_key_exchange(silc_client, ¶ms,
irssi_pubkey, irssi_privkey,
/* If we have a prompt in progress, then abort it. */
if (server->prompt_op) {
silc_async_abort(server->prompt_op, NULL, NULL);
- server->prompt_op = NULL;
+ server->prompt_op = NULL;
}
if (server->conn) {
{
GHashTable *optlist;
char *target, *origtarget, *msg;
- void *free_arg;
+ void *free_arg = NULL;
int free_ret, target_type;
g_return_if_fail(data != NULL);
"message signed_own_public" : "message signed_own_private", 4,
server, msg, target, origtarget);
out:
- if (free_ret && target != NULL) g_free(target);
- cmd_params_free(free_arg);
+ if (free_ret && target != NULL)
+ g_free(target);
+ if (free_arg)
+ cmd_params_free(free_arg);
}
/* FILE command */
if (status == SILC_CLIENT_FILE_MONITOR_CLOSED)
return;
- snprintf(fsize, sizeof(fsize) - 1, "%llu", ((filesize + 1023) / 1024));
+ snprintf(fsize, sizeof(fsize) - 1, "%llu",
+ (unsigned long long)((filesize + 1023) / 1024));
silc_dlist_start(server->ftp_sessions);
while ((ftp = silc_dlist_get(server->ftp_sessions)) != SILC_LIST_END) {