+ /* Put default attributes */
+ silc_query_attributes_default(silc_client, conn);
+
+ /* Remove the detach data now */
+ file = silc_get_session_filename(server);
+ unlink(file);
+ silc_free(file);
+ break;
+
+ case SILC_CLIENT_CONN_DISCONNECTED:
+ /* Server disconnected */
+ if (server->conn && server->conn->local_entry) {
+ nicklist_rename_unique(SERVER(server),
+ server->conn->local_entry, server->nick,
+ server->conn->local_entry,
+ silc_client->username);
+ silc_change_nick(server, silc_client->username);
+ }
+
+ if (message)
+ silc_say(client, conn, SILC_CLIENT_MESSAGE_AUDIT,
+ "Server closed connection: %s (%d) %s",
+ silc_get_status_message(error), error,
+ message ? message : "");
+
+ /* Close FTP sessions */
+ silc_dlist_start(server->ftp_sessions);
+ while ((ftp = silc_dlist_get(server->ftp_sessions)))
+ silc_client_file_close(client, conn, ftp->session_id);
+ silc_dlist_uninit(server->ftp_sessions);
+
+ if (server->conn)
+ server->conn->context = NULL;
+ server->conn = NULL;
+ server->connection_lost = TRUE;
+ if (!server->disconnected)
+ server_disconnect(SERVER(server));
+ server_unref(SERVER(server));
+ break;
+
+ default:
+ file = silc_get_session_filename(server);
+ 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;
+ server->conn = NULL;
+ if (server->conn)
+ server->conn->context = NULL;
+ if (!server->disconnected)
+ server_disconnect(SERVER(server));
+ server_unref(SERVER(server));
+ break;
+ }