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

Reply via email to