Added SILC Public Key version 2 support.
[silc.git] / apps / irssi / src / silc / core / silc-servers.c
index 59739a1e2ff844126f64ce50f6ad95cbc220cef8..455aeed30d6426813eef96d0337536714f9268f0 100644 (file)
@@ -1,7 +1,7 @@
 /*
   silc-server.c : irssi
 
-  Copyright (C) 2000 - 2006 Timo Sirainen
+  Copyright (C) 2000 - 2007 Timo Sirainen
                             Pekka Riikonen <priikone@silcnet.org>
 
   This program is free software; you can redistribute it and/or modify
@@ -335,19 +335,6 @@ static void silc_connect_cb(SilcClient client,
     /* Put default attributes */
     silc_query_attributes_default(silc_client, conn);
 
-    /* If we resumed old session check whether we need to update
-       our nickname */
-    if (strcmp(server->nick, conn->local_entry->nickname)) {
-      char *old;
-      old = g_strdup(server->nick);
-      server_change_nick(SERVER(server), conn->local_entry->nickname);
-      nicklist_rename_unique(SERVER(server),
-                            conn->local_entry, server->nick,
-                            conn->local_entry, conn->local_entry->nickname);
-      signal_emit("message own_nick", 4, server, server->nick, old, "");
-      g_free(old);
-    }
-
     /* Remove the detach data now */
     file = silc_get_session_filename(server);
     unlink(file);
@@ -384,7 +371,6 @@ static void silc_connect_cb(SilcClient client,
     if (silc_file_size(file) > 0)
       printformat_module("fe-common/silc", server, NULL,
                         MSGLEVEL_CRAP, SILCTXT_REATTACH_FAILED, file);
-
     silc_free(file);
 
     server->connection_lost = TRUE;
@@ -397,6 +383,8 @@ static void silc_connect_cb(SilcClient client,
   }
 }
 
+/* Called after TCP stream has been created */
+
 static void sig_connected_stream_created(SilcSocketStreamStatus status,
                                         SilcStream stream, void *context)
 {
@@ -473,16 +461,18 @@ static void sig_disconnected(SILC_SERVER_REC *server)
   silc_dlist_uninit(server->ftp_sessions);
 
   if (server->conn) {
+    /* Close connection */
     silc_client_close_connection(silc_client, server->conn);
-
-    /* SILC closes the handle */
-    g_io_channel_unref(net_sendbuffer_handle(server->handle));
-    net_sendbuffer_destroy(server->handle, FALSE);
-    server->handle = NULL;
   } else if (server->op) {
+    /* Abort on going connecting (key exchange) */
     silc_async_abort(server->op, NULL, NULL);
     server->op = NULL;
   }
+
+  /* SILC closes the handle */
+  g_io_channel_unref(net_sendbuffer_handle(server->handle));
+  net_sendbuffer_destroy(server->handle, FALSE);
+  server->handle = NULL;
 }
 
 SERVER_REC *silc_server_init_connect(SERVER_CONNECT_REC *conn)