From 85de349336cda2f10c636e644ea03b82484f6927 Mon Sep 17 00:00:00 2001 From: Gunter Labes Date: Mon, 10 Aug 2009 16:18:48 +0000 Subject: [PATCH] ignore bans with invalid times from the ban_save_file explain what went wrong when we couldn't parse the ban duration --- src/server/ban.cpp | 5 +++-- src/server/server.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/ban.cpp b/src/server/ban.cpp index 505102c038c..1c4cd416f36 100644 --- a/src/server/ban.cpp +++ b/src/server/ban.cpp @@ -715,8 +715,9 @@ static lg::log_domain log_server("server"); ban_times_.clear(); foreach (const config &bt, cfg.child_range("ban_time")) { time_t duration = 0; - parse_time(bt["time"], &duration); - ban_times_.insert(default_ban_times::value_type(bt["name"], duration)); + if (parse_time(bt["time"], &duration)) { + ban_times_.insert(default_ban_times::value_type(bt["name"], duration)); + } } init_ban_help(); if (filename_ != cfg["ban_save_file"]) diff --git a/src/server/server.cpp b/src/server/server.cpp index 2d1b67c71bc..442200468de 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -1450,7 +1450,8 @@ std::string server::process_command(std::string query, std::string issuer_name) const std::string duration(first_space + 1, second_space); time_t parsed_time = time(NULL); if (ban_manager_.parse_time(duration, &parsed_time) == false) { - return ban_manager_.get_ban_help(); + return "Failed to parse the ban duration: '" + duration + "'\n" + + ban_manager_.get_ban_help(); } if (second_space == parameters.end()) {