From b27ae8c5d4252561f4210f9eb6591f0f72c02708 Mon Sep 17 00:00:00 2001 From: "geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b" Date: Mon, 15 Jan 2007 10:12:22 +0000 Subject: 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 --- src/main.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'src') 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); } } -- cgit