Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-07-25 18:30:10 +0000
committerStijn Buys <ingar@osirion.org>2008-07-25 18:30:10 +0000
commit812bb37b7e73104d97da35eb3e66046495aaa305 (patch)
tree63ee32e2c53d35aeb3dc219c8caa211de5fbf0cd /src/core/netserver.cc
parentabe6c3dc6e6f9df40345d6aaf19f12fdfa3f3024 (diff)
minor cleanups
Diffstat (limited to 'src/core/netserver.cc')
-rw-r--r--src/core/netserver.cc48
1 files changed, 25 insertions, 23 deletions
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<NetClient *>::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<NetClient *>::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<NetClient *>::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<NetClient *>::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<NetClient *>::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;
}