1
0
mirror of https://github.com/irssi/irssi.git synced 2024-11-03 04:27:19 -05:00

last commit was only partial :)

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2340 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2002-01-22 21:04:39 +00:00 committed by cras
parent 92eaf0dc9a
commit 4c4f7ec042
2 changed files with 7 additions and 6 deletions

View File

@ -347,6 +347,7 @@ void server_disconnect(SERVER_REC *server)
servers = g_slist_remove(servers, server); servers = g_slist_remove(servers, server);
server->disconnected = TRUE;
signal_emit("server disconnected", 1, server); signal_emit("server disconnected", 1, server);
/* close all channels */ /* close all channels */
@ -370,7 +371,6 @@ void server_disconnect(SERVER_REC *server)
server->readtag = -1; server->readtag = -1;
} }
server->disconnected = TRUE;
server_unref(server); server_unref(server);
} }
@ -381,17 +381,17 @@ void server_ref(SERVER_REC *server)
server->refcount++; server->refcount++;
} }
void server_unref(SERVER_REC *server) int server_unref(SERVER_REC *server)
{ {
g_return_if_fail(IS_SERVER(server)); g_return_val_if_fail(IS_SERVER(server), FALSE);
if (--server->refcount > 0) if (--server->refcount > 0)
return; return TRUE;
if (g_slist_find(servers, server) != NULL) { if (g_slist_find(servers, server) != NULL) {
g_warning("Non-referenced server wasn't disconnected"); g_warning("Non-referenced server wasn't disconnected");
server_disconnect(server); server_disconnect(server);
return; return TRUE;
} }
MODULE_DATA_DEINIT(server); MODULE_DATA_DEINIT(server);
@ -403,6 +403,7 @@ void server_unref(SERVER_REC *server)
g_free(server->nick); g_free(server->nick);
g_free(server->tag); g_free(server->tag);
g_free(server); g_free(server);
return FALSE;
} }
SERVER_REC *server_find_tag(const char *tag) SERVER_REC *server_find_tag(const char *tag)

View File

@ -40,7 +40,7 @@ void servers_deinit(void);
void server_disconnect(SERVER_REC *server); void server_disconnect(SERVER_REC *server);
void server_ref(SERVER_REC *server); void server_ref(SERVER_REC *server);
void server_unref(SERVER_REC *server); int server_unref(SERVER_REC *server);
SERVER_REC *server_find_tag(const char *tag); SERVER_REC *server_find_tag(const char *tag);
SERVER_REC *server_find_chatnet(const char *chatnet); SERVER_REC *server_find_chatnet(const char *chatnet);