summaryrefslogtreecommitdiff
path: root/src/fe-common/irc
diff options
context:
space:
mode:
authorAilin Nemui <ailin@z30a.localdomain>2017-03-10 17:18:18 +0100
committerAilin Nemui <ailin@z30a.localdomain>2017-03-10 17:18:18 +0100
commit77b2631c78461965bc9a7414aae206b5c514e1b3 (patch)
tree7fe577cc7b2a3ff6f060a032c0b7f431d85cd761 /src/fe-common/irc
parent26187d1d30f589d10300de2798f5a3ec4b0c1a3d (diff)
parent7c09b72848f99886964266ff531b41c69fe138f5 (diff)
downloadirssi-77b2631c78461965bc9a7414aae206b5c514e1b3.zip
Merge branch 'netjoin-timeout' into 'master'
fe-netjoin: remove irc servers on "server disconnected" signal Closes #7 See merge request !10
Diffstat (limited to 'src/fe-common/irc')
-rw-r--r--src/fe-common/irc/fe-netjoin.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/fe-common/irc/fe-netjoin.c b/src/fe-common/irc/fe-netjoin.c
index 4eb388c0..8272093f 100644
--- a/src/fe-common/irc/fe-netjoin.c
+++ b/src/fe-common/irc/fe-netjoin.c
@@ -470,6 +470,20 @@ static void read_settings(void)
}
}
+static void sig_server_disconnected(IRC_SERVER_REC *server)
+{
+ NETJOIN_SERVER_REC *netjoin_server;
+
+ g_return_if_fail(server != NULL);
+
+ if (!IS_IRC_SERVER(server))
+ return;
+
+ if ((netjoin_server = netjoin_find_server(server))) {
+ netjoin_server_remove(netjoin_server);
+ }
+}
+
void fe_netjoin_init(void)
{
settings_add_bool("misc", "hide_netsplit_quits", TRUE);
@@ -480,6 +494,7 @@ void fe_netjoin_init(void)
read_settings();
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
+ signal_add("server disconnected", (SIGNAL_FUNC) sig_server_disconnected);
}
void fe_netjoin_deinit(void)
@@ -492,6 +507,7 @@ void fe_netjoin_deinit(void)
}
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
+ signal_remove("server disconnected", (SIGNAL_FUNC) sig_server_disconnected);
signal_remove("message quit", (SIGNAL_FUNC) msg_quit);
signal_remove("message join", (SIGNAL_FUNC) msg_join);