summaryrefslogtreecommitdiff
path: root/src/fe-common/irc/fe-netjoin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-common/irc/fe-netjoin.c')
-rw-r--r--src/fe-common/irc/fe-netjoin.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/fe-common/irc/fe-netjoin.c b/src/fe-common/irc/fe-netjoin.c
index 0473e52c..916a1985 100644
--- a/src/fe-common/irc/fe-netjoin.c
+++ b/src/fe-common/irc/fe-netjoin.c
@@ -33,7 +33,7 @@
#include "printtext.h"
-#define NETJOIN_WAIT_TIME 2 /* how many seconds to wait for the netsplitted JOIN messages to stop */
+#define NETJOIN_WAIT_TIME 5 /* how many seconds to wait for the netsplitted JOIN messages to stop */
#define NETJOIN_MAX_WAIT 30 /* how many seconds to wait for nick to join to the rest of the channels she was before the netsplit */
typedef struct {
@@ -56,6 +56,7 @@ typedef struct {
static int join_tag;
static int netjoin_max_nicks, hide_netsplit_quits;
+static int printing_joins;
static GSList *joinservers;
static NETJOIN_SERVER_REC *netjoin_find_server(IRC_SERVER_REC *server)
@@ -172,6 +173,8 @@ static void print_netjoins(NETJOIN_SERVER_REC *server)
g_return_if_fail(server != NULL);
+ printing_joins = TRUE;
+
/* save nicks to string, clear now_channels and remove the same
channels from old_channels list */
channels = g_hash_table_new((GHashFunc) g_istr_hash,
@@ -225,7 +228,9 @@ static void print_netjoins(NETJOIN_SERVER_REC *server)
g_hash_table_destroy(channels);
if (server->netjoins == NULL)
- netjoin_server_remove(server);
+ netjoin_server_remove(server);
+
+ printing_joins = FALSE;
}
/* something is going to be printed to screen, print our current netsplit
@@ -234,6 +239,9 @@ static void sig_print_starting(void)
{
GSList *tmp, *next;
+ if (printing_joins)
+ return;
+
for (tmp = joinservers; tmp != NULL; tmp = next) {
NETJOIN_SERVER_REC *server = tmp->data;
@@ -398,6 +406,7 @@ void fe_netjoin_init(void)
settings_add_int("misc", "netjoin_max_nicks", 10);
join_tag = -1;
+ printing_joins = FALSE;
read_settings();
signal_add("setup changed", (SIGNAL_FUNC) read_settings);