Author: loonycyborg
Date: Sat Mar 24 12:47:56 2012
New Revision: 53636

URL: http://svn.gna.org/viewcvs/wesnoth?rev=53636&view=rev
Log:
Added support for relaying messages to rooms.

Modified:
    branches/asio_wesnothd/src/server/server.cpp
    branches/asio_wesnothd/src/server/server.hpp

Modified: branches/asio_wesnothd/src/server/server.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/branches/asio_wesnothd/src/server/server.cpp?rev=53636&r1=53635&r2=53636&view=diff
==============================================================================
--- branches/asio_wesnothd/src/server/server.cpp (original)
+++ branches/asio_wesnothd/src/server/server.cpp Sat Mar 24 12:47:56 2012
@@ -1132,6 +1132,9 @@
        }
 
        // Lobby
+       if(simple_wml::node* message = doc->child("message")) {
+               handle_message(socket, *message);
+       }
        if(simple_wml::node* room_join = doc->child("room_join")) {
                handle_room_join(socket, *room_join);
        }
@@ -1238,6 +1241,16 @@
                response << "Error: unrecognized query: '" << command << "'\n" 
<< help_msg;
        }
        send_server_message(socket, response.str());
+}
+
+void server::handle_message(socket_ptr socket, simple_wml::node& message)
+{
+       std::string room_name = message.attr("room").to_string();
+       if(room_name.empty())
+               room_name = "lobby";
+       simple_wml::document relay_message;
+       message.copy_into(relay_message.root().add_child("message"));
+       room_list_.send_to_room(room_name, relay_message, socket);
 }
 
 void server::handle_room_join(socket_ptr socket, simple_wml::node& room_join)

Modified: branches/asio_wesnothd/src/server/server.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/branches/asio_wesnothd/src/server/server.hpp?rev=53636&r1=53635&r2=53636&view=diff
==============================================================================
--- branches/asio_wesnothd/src/server/server.hpp (original)
+++ branches/asio_wesnothd/src/server/server.hpp Sat Mar 24 12:47:56 2012
@@ -67,6 +67,7 @@
        void handle_read_from_player(socket_ptr socket, 
boost::shared_ptr<simple_wml::document> doc);
        void handle_whisper(socket_ptr socket, simple_wml::node& whisper);
        void handle_query(socket_ptr socket, simple_wml::node& query);
+       void handle_message(socket_ptr socket, simple_wml::node& message);
        void handle_room_join(socket_ptr socket, simple_wml::node& room_join);
        void handle_room_part(socket_ptr socket, simple_wml::node& room_join);
        void remove_player(socket_ptr socket);


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to