diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/main.c | 29 | ||||
-rw-r--r-- | version.log | 6 |
3 files changed, 27 insertions, 9 deletions
@@ -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 |