From 812bb37b7e73104d97da35eb3e66046495aaa305 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 25 Jul 2008 18:30:10 +0000 Subject: minor cleanups --- src/core/netserver.cc | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) (limited to 'src/core/netserver.cc') diff --git a/src/core/netserver.cc b/src/core/netserver.cc index f004f83..2e50efd 100644 --- a/src/core/netserver.cc +++ b/src/core/netserver.cc @@ -110,7 +110,7 @@ NetServer::~NetServer() if ((*it)->state() == NetClient::Connected) server()->player_disconnect((*it)->player()); - (*it)->send(netmsg); + (*it)->send_raw(netmsg); (*it)->transmit(fd()); delete (*it); @@ -138,10 +138,7 @@ void NetServer::reap() if (client->client_timeout + NETTIMEOUT < application()->time()) { // client timed out, send a disconnect - std::string netmsg("disconnect\n"); - (*it)->send(netmsg); - (*it)->transmit(fd()); - (*it)->abort(); + send_disconnect((*it)); // print a message std::string message("^B"); @@ -288,7 +285,7 @@ void NetServer::client_initialize(NetClient *client) { std::ostringstream netmsg; netmsg.str(""); netmsg << "msg info ^B" << Cvar::sv_name->str() << "\n"; - client->send(netmsg.str()); + client->send_raw(netmsg.str()); client->transmit(fd()); // send entities @@ -298,12 +295,12 @@ void NetServer::client_initialize(NetClient *client) { netmsg << "ent "; (*it).second->serialize(netmsg); netmsg << "\n"; - client->send(netmsg.str()); + client->send_raw(netmsg.str()); } // send connect completed netmsg.str("connect\n"); - client->send(netmsg.str()); + client->send_raw(netmsg.str()); client->transmit(fd()); // set client state to pending @@ -350,7 +347,7 @@ void NetServer::broadcast_message(const char *channel, std::string const & messa for (std::list::iterator it = clients.begin(); it != clients.end(); it++) { if (((*it)->player() && (*it)->player() != ignore_player) && ((*it)->state() == NetClient::Connected)) { - (*it)->send(msg); + (*it)->send_raw(msg); } } } @@ -367,7 +364,16 @@ void NetServer::send_message(NetClient *client, const char *channel, std::string msg.append(message); msg += '\n'; - client->send(msg); + client->send_raw(msg); +} + + +// disconnect a client +void NetServer::send_disconnect(NetClient *client) +{ + client->send_raw("disconnect\n"); + client->transmit(netserver_fd); + client->abort(); } // broadcast a "frame" message to all clients @@ -378,7 +384,7 @@ void NetServer::broadcast_frame(float timestamp, float previoustimestamp) for (std::list::iterator it = clients.begin(); it != clients.end(); it++) { if ((*it)->state() == NetClient::Connected) { - (*it)->send(msg.str()); + (*it)->send_raw(msg.str()); } } } @@ -391,7 +397,7 @@ void NetServer::broadcast_entity_delete(Entity *entity) for (std::list::iterator it = clients.begin(); it != clients.end(); it++) { if ((*it)->state() == NetClient::Connected) { - (*it)->send(msg.str()); + (*it)->send_raw(msg.str()); } } } @@ -406,7 +412,7 @@ void NetServer::broadcast_entity_create(Entity *entity) for (std::list::iterator it = clients.begin(); it != clients.end(); it++) { if ((*it)->state() == NetClient::Connected) { - (*it)->send(msg.str()); + (*it)->send_raw(msg.str()); } } } @@ -421,7 +427,7 @@ void NetServer::broadcast_entity_update(Entity *entity) for (std::list::iterator it = clients.begin(); it != clients.end(); it++) { if ((*it)->state() == NetClient::Connected) { - (*it)->send(msg.str()); + (*it)->send_raw(msg.str()); } } } @@ -438,7 +444,7 @@ void NetServer::broadcast_player_update() msg << "pif "; client->player()->serialize_server_update(msg); msg << '\n'; - client->send(msg.str()); + client->send_raw(msg.str()); client->player()->player_dirty = false; } @@ -452,7 +458,7 @@ void NetServer::send_player_update(NetClient *client) msg << "pif "; client->player()->serialize_server_update(msg); msg << '\n'; - client->send(msg.str()); + client->send_raw(msg.str()); } // parse incoming client messages @@ -501,20 +507,16 @@ void NetServer::parse_incoming_message(NetClient *client, const std::string & me con_print << client->host() << ":" << client->port() << " " << netmsgstream.str() << std::endl; send_message(client, "info", netmsgstream.str()); - netmsgstream.str("disconnect\n"); - netmsgstream.clear(); - - client->send(netmsgstream.str()); - client->transmit(fd()); - client->abort(); + send_disconnect(client); } else { client_initialize(client); } } else { std::string message("Unknown client protocol version!"); con_print << client->host() << ":" << client->port() << " " << message << std::endl; - server()->send(client->player(), message); + send_message(client, "info", message); + send_disconnect(client); } return; } -- cgit v1.2.3