Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/netserver.cc')
-rw-r--r--src/core/netserver.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/netserver.cc b/src/core/netserver.cc
index 10fd554..dd5dc38 100644
--- a/src/core/netserver.cc
+++ b/src/core/netserver.cc
@@ -125,7 +125,7 @@ void NetServer::abort() {
// remove disconnected clients
void NetServer::reap()
{
- for (Clients:: iterator it = clients.begin(); it != clients.end(); it++) {
+ for (Clients:: iterator it = clients.begin(); it != clients.end(); ) {
NetClient *client = *it;
if (client->client_timeout + NETTIMEOUT < application()->time()) {
@@ -151,10 +151,12 @@ void NetServer::reap()
server()->player_disconnect((*it)->player());
// remove the client
- clients.erase(it);
delete client;
- it=clients.begin();
- }
+ clients.erase(it++);
+
+ } else {
+ ++it;
+ }
}
}