From 8ca4b620387f2e6c4d8dc263b0c16a024f4183bd Mon Sep 17 00:00:00 2001 From: hilnius Date: Wed, 10 Jul 2013 13:44:30 +0000 Subject: [PATCH] bored of writing commit messages >.< git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/hilnius@13161 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/network/client_network_manager.cpp | 6 ++++++ src/network/protocol_manager.cpp | 7 +++++-- src/network/server_network_manager.cpp | 11 +++++++++-- src/network/server_network_manager.hpp | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/network/client_network_manager.cpp b/src/network/client_network_manager.cpp index 952a05773..e4672a112 100644 --- a/src/network/client_network_manager.cpp +++ b/src/network/client_network_manager.cpp @@ -55,6 +55,12 @@ void* waitInput(void* data) { ProtocolManager::getInstance()->requestStart(new ConnectToServer(n)); } + else + { + NetworkString msg("\0\0"); + msg += str; + NetworkManager::getInstance()->getPeers()[0]->sendPacket(msg); + } } exit(0); diff --git a/src/network/protocol_manager.cpp b/src/network/protocol_manager.cpp index e61a61146..2c3eb3372 100644 --- a/src/network/protocol_manager.cpp +++ b/src/network/protocol_manager.cpp @@ -244,8 +244,7 @@ void ProtocolManager::update() if (event->type == EVENT_TYPE_MESSAGE) { if (event->data.size() > 0) - searchedProtocol = (PROTOCOL_TYPE)(event->data.getUInt8(0)); - event->removeFront(1); // remove the first byte which indicates the protocol + searchedProtocol = (PROTOCOL_TYPE)(event->data.getAndRemoveUInt8()); } if (event->type == EVENT_TYPE_CONNECTED) { @@ -256,6 +255,10 @@ void ProtocolManager::update() if (m_protocols[i].protocol->getProtocolType() == searchedProtocol || event->type == EVENT_TYPE_DISCONNECTED) // pass data to protocols even when paused m_protocols[i].protocol->notifyEvent(event); } + if (searchedProtocol == PROTOCOL_NONE) // no protocol was aimed, show the msg to debug + { + Log::debug("ProtocolManager", "Message is \"%s\"", event->data.c_str()); + } delete event; } diff --git a/src/network/server_network_manager.cpp b/src/network/server_network_manager.cpp index c4c82b9a3..23e911584 100644 --- a/src/network/server_network_manager.cpp +++ b/src/network/server_network_manager.cpp @@ -46,6 +46,10 @@ void* waitInput2(void* data) { stop = true; } + else if (str == "kickall") + { + ServerNetworkManager::getInstance()->kickAllPlayers(); + } } uint32_t id = ProtocolManager::getInstance()->requestStart(new StopServer()); @@ -89,9 +93,12 @@ void ServerNetworkManager::run() NetworkManager::run(); } -void ServerNetworkManager::start() +void ServerNetworkManager::kickAllPlayers() { - + for (int i = 0; i < m_peers.size(); i++) + { + m_peers[i]->disconnect(); + } } void ServerNetworkManager::sendPacket(const NetworkString& data) diff --git a/src/network/server_network_manager.hpp b/src/network/server_network_manager.hpp index e06b969b9..aadc8c7e5 100644 --- a/src/network/server_network_manager.hpp +++ b/src/network/server_network_manager.hpp @@ -33,7 +33,7 @@ class ServerNetworkManager : public NetworkManager virtual void run(); - void start(); + void kickAllPlayers(); virtual void sendPacket(const NetworkString& data);