Merge Irssi 0.8.16-rc1
[silc.git] / apps / irssi / src / silc / core / silc-servers.c
index e763b8eef2f9c6792738b275458709ab38de4224..c1f2054ebe6bb6ac7c7187e14bbb8f910aceef94 100644 (file)
@@ -1,7 +1,7 @@
 /*
   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
@@ -298,12 +298,9 @@ static void silc_connect_cb(SilcClient client,
     /* 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);
@@ -410,11 +407,11 @@ static void sig_connected_stream_created(SilcSocketStreamStatus status,
 
   /* Set connection parameters */
   memset(&params, 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);
@@ -426,22 +423,6 @@ static void sig_connected_stream_created(SilcSocketStreamStatus status,
                        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, &params,
                                        irssi_pubkey, irssi_privkey,
@@ -485,7 +466,7 @@ static void sig_disconnected(SILC_SERVER_REC *server)
   /* 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) {
@@ -660,7 +641,7 @@ static void command_smsg(const char *data, SILC_SERVER_REC *server,
 {
   GHashTable *optlist;
   char *target, *origtarget, *msg;
-  void *free_arg;
+  void *free_arg = NULL;
   int free_ret, target_type;
 
   g_return_if_fail(data != NULL);
@@ -729,8 +710,10 @@ static void command_smsg(const char *data, SILC_SERVER_REC *server,
              "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 */
@@ -764,7 +747,8 @@ static void silc_client_file_monitor(SilcClient client,
   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) {