summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/main.c29
-rw-r--r--version.log6
3 files changed, 27 insertions, 9 deletions
diff --git a/Changes b/Changes
index 8a54a2e7c..234b65d9b 100644
--- a/Changes
+++ b/Changes
@@ -10,6 +10,7 @@ Anope Version S V N
01/10 F Minor syntax error in anoperc. [#665]
01/10 F CHAN_SYMBOL_REQUIRED claimed one can register local (&) channels. [#666]
01/10 F BotServ kicks now obeys the channel's SignKick option. [#663]
+01/15 F Only send PONG during MySQL save when we're not syncing. [#669]
Anope Version 1.7.18
--------------------
diff --git a/src/main.c b/src/main.c
index a013b8e29..2ebcc48f2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -179,34 +179,47 @@ void save_databases(void)
if (!skeleton) {
waiting = -11;
save_ns_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ /* We send these PONG's when we're not syncing to avoid timeouts.
+ * If we send them during the sync, we fuck something up there and
+ * break the syncing process, resulting in lost (literally lost)
+ * data. -GD
+ */
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
waiting = -12;
save_cs_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
if (PreNickDBName) {
save_ns_req_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
waiting = -13;
}
if (s_BotServ) {
waiting = -14;
save_bs_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
}
if (s_HostServ) {
waiting = -15;
save_hs_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
}
waiting = -16;
save_os_rdb_dbase();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
waiting = -17;
save_rdb_news();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
waiting = -18;
save_rdb_exceptions();
- anope_cmd_pong(ServerName, ServerName);
+ if (!is_sync(serv_uplink))
+ anope_cmd_pong(ServerName, ServerName);
}
}
diff --git a/version.log b/version.log
index 2aea3c543..110554dd9 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="18"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1224"
+VERSION_BUILD="1225"
# $Log$
#
+# BUILD : 1.7.18 (1225)
+# BUGS : 669
+# NOTES : Fixed spurious PONGs being sent during burst when MySQL was saving (it still is a dirty hack, but at least it should work now)
+#
# BUILD : 1.7.18 (1224)
# BUGS : 663
# NOTES : Fixed BotServ kicks to now obey the SignKick setting of the channel