Merged Irssi SVN (upcoming irssi 0.8.11).
[silc.git] / apps / irssi / src / silc / core / silc-servers.c
index e283abee9a383d44d9613cd3420c565515d9a572..d661187088046b4efe3566e2d0695dec40d69bb5 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
@@ -383,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)
 {
@@ -459,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)
@@ -1301,7 +1305,7 @@ void silc_server_free_ftp(SILC_SERVER_REC *server,
 bool silc_term_utf8(void)
 {
   const char *str;
-  str = settings_get_str("term_type");
+  str = settings_get_str("term_charset");
   if (str)
     if (g_strcasecmp(str, "utf-8") == 0)
       return TRUE;