summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2007-01-15 10:12:22 +0000
committergeniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2007-01-15 10:12:22 +0000
commitb27ae8c5d4252561f4210f9eb6591f0f72c02708 (patch)
treea488b683b2c006c41336bf47def320c5b3000e34 /src
parent4a8a6b8a4e9d12ae0b4e2dc59b7c32c50a08cc18 (diff)
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)
git-svn-id: svn://svn.anope.org/anope/trunk@1225 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@944 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/main.c29
1 files changed, 21 insertions, 8 deletions
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);
}
}