Author: suokko
Date: Fri Aug 15 21:40:28 2008
New Revision: 28612
URL: http://svn.gna.org/viewcvs/wesnoth?rev=28612&view=rev
Log:
Made time optional for ban command
Modified:
trunk/src/server/ban.cpp
trunk/src/server/server.cpp
Modified: trunk/src/server/ban.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/server/ban.cpp?rev=28612&r1=28611&r2=28612&view=diff
==============================================================================
--- trunk/src/server/ban.cpp (original)
+++ trunk/src/server/ban.cpp Fri Aug 15 21:40:28 2008
@@ -25,7 +25,7 @@
bool banned_compare::operator()(const banned_ptr a, const banned_ptr b)
const
{
- return (*a) > (*b);
+ return (*a) > (*b) || a->get_end_time() == 0;
}
banned::banned(const std::string& ip, const time_t end_time, const
std::string& reason) : ip_(ip), end_time_(end_time), reason_(reason),
deleted_(false)
@@ -237,7 +237,8 @@
{
banned_ptr ban = time_queue_.top();
- if (ban->get_end_time() > time_now)
+ if (ban->get_end_time() == 0
+ || ban->get_end_time() > time_now)
{
// No bans going to expire
LOG_SERVER << "ban " << ban->get_ip() << " not
removed. time: " << time_now << " end_time " << ban->get_end_time() << "\n";
Modified: trunk/src/server/server.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/server/server.cpp?rev=28612&r1=28611&r2=28612&view=diff
==============================================================================
--- trunk/src/server/server.cpp (original)
+++ trunk/src/server/server.cpp Fri Aug 15 21:40:28 2008
@@ -1101,6 +1101,12 @@
std::string::iterator second_space =
std::find(first_space+1, parameters.end(), ' ');
const std::string target(parameters.begin(),
first_space);
const std::string time(first_space+1,second_space);
+ time_t parsed_time = ban_manager_.parse_time(time);
+ if (parsed_time == 0)
+ {
+ second_space = first_space;
+ }
+
if (second_space == parameters.end())
{
--second_space;
@@ -1113,7 +1119,7 @@
banned_ = true;
out << "Set ban on '" << target << "' with time
'" << time << "' with reason: '" << reason << "'.\n";
- ban_manager_.ban(target,
ban_manager_.parse_time(time), reason);
+ ban_manager_.ban(target, parsed_time, reason);
if (kick) {
for (player_map::const_iterator pl =
players_.begin();
@@ -1133,7 +1139,7 @@
banned_ = true;
const std::string& ip =
network::ip_address(pl->first);
if (!is_ip_banned(ip)) {
-
ban_manager_.ban(ip,ban_manager_.parse_time(time), reason);
+
ban_manager_.ban(ip,parsed_time, reason);
out << "Set ban on '"
<< ip << "' with time '" << time << "' with reason: '"
<< reason <<
"'.\n";
}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits