diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/main.c | 20 | ||||
-rw-r--r-- | version.log | 6 |
3 files changed, 18 insertions, 9 deletions
@@ -12,6 +12,7 @@ Anope Version S V N 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] 01/15 F InspIRCD 1.1 protocol module used windows incompatible strtok_r. [#667] +01/22 F Crash during first save when MySQL is enabled. [#672] Anope Version 1.7.18 -------------------- diff --git a/src/main.c b/src/main.c index 2ebcc48f2..6a9520d90 100644 --- a/src/main.c +++ b/src/main.c @@ -183,42 +183,46 @@ void save_databases(void) * If we send them during the sync, we fuck something up there and * break the syncing process, resulting in lost (literally lost) * data. -GD + * This used is_sync(serv_uplink) to check for sync states. There's + * only a minor error with this: serv_uplink doesn't exist during + * the first save. So now we check for serv_uplink only; if it + * exists we're safe. -GD */ - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); waiting = -12; save_cs_rdb_dbase(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); if (PreNickDBName) { save_ns_req_rdb_dbase(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); waiting = -13; } if (s_BotServ) { waiting = -14; save_bs_rdb_dbase(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); } if (s_HostServ) { waiting = -15; save_hs_rdb_dbase(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); } waiting = -16; save_os_rdb_dbase(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); waiting = -17; save_rdb_news(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); waiting = -18; save_rdb_exceptions(); - if (!is_sync(serv_uplink)) + if (serv_uplink) anope_cmd_pong(ServerName, ServerName); } diff --git a/version.log b/version.log index 134921f3e..86f14fa38 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="1227" +VERSION_BUILD="1228" # $Log$ # +# BUILD : 1.7.18 (1228) +# BUGS : 672 +# NOTES : Fixed a crash when MySQL was enabled; it checked the (unset) uplink server flags resulting in a segfault +# # BUILD : 1.7.18 (1227) # BUGS : 667 # NOTES : Fixed inspircd11.c using strtok_r - myStrGetToken is more compatible (strtok_r does not work on windows) |