[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netPanzer-CVS] netpanzer ./BUGS src/NetPanzer/Interfaces/unix/...
From: |
Ivo Danihelka |
Subject: |
[netPanzer-CVS] netpanzer ./BUGS src/NetPanzer/Interfaces/unix/... |
Date: |
Wed, 22 Oct 2003 11:53:05 -0400 |
CVSROOT: /cvsroot/netpanzer
Module name: netpanzer
Branch:
Changes by: Ivo Danihelka <address@hidden> 03/10/22 11:53:05
Modified files:
. : BUGS
src/NetPanzer/Interfaces/unix: NetworkServerUnix.cpp
src/UILib/Network: ClientList.hpp ServerSocket.cpp
Log message:
Fixed SIGSEGV when client disconnect
Patches:
Index: netpanzer/BUGS
diff -u netpanzer/BUGS:1.3 netpanzer/BUGS:1.4
--- netpanzer/BUGS:1.3 Wed Oct 22 09:19:27 2003
+++ netpanzer/BUGS Wed Oct 22 11:53:02 2003
@@ -27,6 +27,6 @@
<kov> No locals.
<kov> (gdb)
//-----------------------------------------------------------------
-- still SIGSEGV when client disconnect
+- still SIGSEGV when client disconnect - fixed
- does not display unit pictures in factory - fixed
- objective game cannot finish - fixed
Index: netpanzer/src/NetPanzer/Interfaces/unix/NetworkServerUnix.cpp
diff -u netpanzer/src/NetPanzer/Interfaces/unix/NetworkServerUnix.cpp:1.6
netpanzer/src/NetPanzer/Interfaces/unix/NetworkServerUnix.cpp:1.7
--- netpanzer/src/NetPanzer/Interfaces/unix/NetworkServerUnix.cpp:1.6 Tue Sep
16 16:16:12 2003
+++ netpanzer/src/NetPanzer/Interfaces/unix/NetworkServerUnix.cpp Wed Oct
22 11:53:03 2003
@@ -71,12 +71,13 @@
} catch(Exception e) {
LOG ( ("Network send error when sending to client %d.",
player_id.getNetworkID()) );
- //return -1;
+ dropClient(player_id);
+ return _network_failed;
}
NetworkState::incPacketsSent(message->size);
- return 0;
+ return _network_ok;
}
int NetworkServerUnix::sendMessage(NetMessage *message, size_t size,
@@ -94,13 +95,13 @@
sendMessage(client_data_ptr->client_id, message, size, flags);
} catch(Exception e) {
LOG( ("Error while sending network packet.") );
- //return -1;
+ return _network_failed;
}
client_data_ptr = client_list.incIteratorPtr(&iterator);
}
- return 0;
+ return _network_ok;
}
int NetworkServerUnix::getMessage(NetMessage *message)
Index: netpanzer/src/UILib/Network/ClientList.hpp
diff -u netpanzer/src/UILib/Network/ClientList.hpp:1.4
netpanzer/src/UILib/Network/ClientList.hpp:1.5
--- netpanzer/src/UILib/Network/ClientList.hpp:1.4 Tue Oct 14 15:24:23 2003
+++ netpanzer/src/UILib/Network/ClientList.hpp Wed Oct 22 11:53:04 2003
@@ -45,7 +45,10 @@
}
ClientIterator remove(ClientIterator i)
- { return clients.erase(i); }
+ {
+ delete *i;
+ return clients.erase(i);
+ }
private:
std::vector<SocketClient*> clients;
Index: netpanzer/src/UILib/Network/ServerSocket.cpp
diff -u netpanzer/src/UILib/Network/ServerSocket.cpp:1.8
netpanzer/src/UILib/Network/ServerSocket.cpp:1.9
--- netpanzer/src/UILib/Network/ServerSocket.cpp:1.8 Tue Oct 14 15:24:24 2003
+++ netpanzer/src/UILib/Network/ServerSocket.cpp Wed Oct 22 11:53:04 2003
@@ -107,10 +107,13 @@
}
// Search for clients that wants to be removed from the list
- for(i = clientlist->begin(); i != clientlist->end(); i++) {
+ for(i = clientlist->begin(); i != clientlist->end(); /* empty */) {
SocketClient* client = *i;
if(client->wantstodie) {
i = clientlist->remove(i);
+ }
+ else {
+ i++;
}
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [netPanzer-CVS] netpanzer ./BUGS src/NetPanzer/Interfaces/unix/...,
Ivo Danihelka <=