mirror of
https://github.com/glest/glest-source.git
synced 2025-08-20 23:21:19 +02:00
- continue trying to fix network issues
This commit is contained in:
@@ -464,17 +464,18 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) {
|
|||||||
|
|
||||||
//if(chrono.getMillis() > 1) printf("In [%s::%s Line: %d] action running for msecs: %lld\n",__FILE__,__FUNCTION__,__LINE__,(long long int)chrono.getMillis());
|
//if(chrono.getMillis() > 1) printf("In [%s::%s Line: %d] action running for msecs: %lld\n",__FILE__,__FUNCTION__,__LINE__,(long long int)chrono.getMillis());
|
||||||
|
|
||||||
this->clearChatInfo();
|
//this->clearChatInfo();
|
||||||
|
|
||||||
bool gotTextMsg = true;
|
//bool gotTextMsg = true;
|
||||||
for(;this->hasDataToRead() == true && gotTextMsg == true;) {
|
//for(;this->hasDataToRead() == true && gotTextMsg == true;) {
|
||||||
|
for(;this->hasDataToRead() == true;) {
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] polling for networkMessageType...\n",__FILE__,__FUNCTION__,__LINE__);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] polling for networkMessageType...\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
NetworkMessageType networkMessageType= getNextMessageType();
|
NetworkMessageType networkMessageType= getNextMessageType(false);
|
||||||
|
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] networkMessageType = %d\n",__FILE__,__FUNCTION__,__LINE__,networkMessageType);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] networkMessageType = %d\n",__FILE__,__FUNCTION__,__LINE__,networkMessageType);
|
||||||
|
|
||||||
gotTextMsg = false;
|
//gotTextMsg = false;
|
||||||
//process incoming commands
|
//process incoming commands
|
||||||
switch(networkMessageType) {
|
switch(networkMessageType) {
|
||||||
|
|
||||||
@@ -513,7 +514,7 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) {
|
|||||||
if(receiveMessage(&networkMessageText)) {
|
if(receiveMessage(&networkMessageText)) {
|
||||||
ChatMsgInfo msg(networkMessageText.getText().c_str(),networkMessageText.getTeamIndex(),networkMessageText.getPlayerIndex(),networkMessageText.getTargetLanguage());
|
ChatMsgInfo msg(networkMessageText.getText().c_str(),networkMessageText.getTeamIndex(),networkMessageText.getPlayerIndex(),networkMessageText.getTargetLanguage());
|
||||||
this->addChatInfo(msg);
|
this->addChatInfo(msg);
|
||||||
gotTextMsg = true;
|
//gotTextMsg = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugError).enabled) SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line: %d]\nInvalid message type before intro handshake [%d]\nDisconnecting socket for slot: %d [%s].\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,networkMessageType,this->playerIndex,this->getIpAddress().c_str());
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugError).enabled) SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line: %d]\nInvalid message type before intro handshake [%d]\nDisconnecting socket for slot: %d [%s].\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,networkMessageType,this->playerIndex,this->getIpAddress().c_str());
|
||||||
|
@@ -44,25 +44,33 @@ void NetworkInterface::sendMessage(const NetworkMessage* networkMessage){
|
|||||||
networkMessage->send(socket);
|
networkMessage->send(socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkMessageType NetworkInterface::getNextMessageType()
|
NetworkMessageType NetworkInterface::getNextMessageType(bool checkHasData)
|
||||||
{
|
{
|
||||||
Socket* socket= getSocket(false);
|
Socket* socket= getSocket(false);
|
||||||
int8 messageType= nmtInvalid;
|
int8 messageType= nmtInvalid;
|
||||||
|
|
||||||
if(socket != NULL &&
|
if(socket != NULL && (checkHasData == false || socket->hasDataToRead() == true)) {
|
||||||
socket->hasDataToRead() == true) {
|
|
||||||
//peek message type
|
//peek message type
|
||||||
int dataSize = socket->getDataToRead();
|
bool peekForMessageType = !checkHasData;
|
||||||
if(dataSize >= sizeof(messageType)) {
|
if(checkHasData == true) {
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket->getDataToRead() dataSize = %d\n",__FILE__,__FUNCTION__,__LINE__,dataSize);
|
int dataSize = socket->getDataToRead();
|
||||||
|
if(dataSize >= sizeof(messageType)) {
|
||||||
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket->getDataToRead() dataSize = %d\n",__FILE__,__FUNCTION__,__LINE__,dataSize);
|
||||||
|
peekForMessageType = true;
|
||||||
|
//int iPeek = socket->peek(&messageType, sizeof(messageType));
|
||||||
|
|
||||||
int iPeek = socket->peek(&messageType, sizeof(messageType));
|
//if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket->getDataToRead() iPeek = %d, messageType = %d [size = %d]\n",__FILE__,__FUNCTION__,__LINE__,iPeek,messageType,sizeof(messageType));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] PEEK WARNING, socket->getDataToRead() messageType = %d [size = %d], dataSize = %d\n",__FILE__,__FUNCTION__,__LINE__,messageType,sizeof(messageType),dataSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket->getDataToRead() iPeek = %d, messageType = %d [size = %d]\n",__FILE__,__FUNCTION__,__LINE__,iPeek,messageType,sizeof(messageType));
|
if(peekForMessageType == true) {
|
||||||
}
|
int iPeek = socket->peek(&messageType, sizeof(messageType));
|
||||||
else {
|
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] PEEK WARNING, socket->getDataToRead() messageType = %d [size = %d], dataSize = %d\n",__FILE__,__FUNCTION__,__LINE__,messageType,sizeof(messageType),dataSize);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket->getDataToRead() iPeek = %d, messageType = %d [size = %d]\n",__FILE__,__FUNCTION__,__LINE__,iPeek,messageType,sizeof(messageType));
|
||||||
}
|
}
|
||||||
|
|
||||||
//sanity check new message type
|
//sanity check new message type
|
||||||
if(messageType < 0 || messageType >= nmtCount) {
|
if(messageType < 0 || messageType >= nmtCount) {
|
||||||
|
@@ -120,7 +120,7 @@ public:
|
|||||||
string getHostName() const {return Socket::getHostName();}
|
string getHostName() const {return Socket::getHostName();}
|
||||||
|
|
||||||
virtual void sendMessage(const NetworkMessage* networkMessage);
|
virtual void sendMessage(const NetworkMessage* networkMessage);
|
||||||
NetworkMessageType getNextMessageType();
|
NetworkMessageType getNextMessageType(bool checkHasData=true);
|
||||||
bool receiveMessage(NetworkMessage* networkMessage);
|
bool receiveMessage(NetworkMessage* networkMessage);
|
||||||
|
|
||||||
virtual bool isConnected();
|
virtual bool isConnected();
|
||||||
|
@@ -1214,7 +1214,7 @@ void ParticleManager::update(int renderFps){
|
|||||||
vector<ParticleSystem *> cleanupParticleSystemsList;
|
vector<ParticleSystem *> cleanupParticleSystemsList;
|
||||||
for(unsigned int i= 0; i < particleSystems.size(); i++){
|
for(unsigned int i= 0; i < particleSystems.size(); i++){
|
||||||
ParticleSystem *ps= particleSystems[i];
|
ParticleSystem *ps= particleSystems[i];
|
||||||
if(ps != NULL){
|
if(ps != NULL && validateParticleSystemStillExists(ps) == true) {
|
||||||
currentParticleCount+= ps->getAliveParticleCount();
|
currentParticleCount+= ps->getAliveParticleCount();
|
||||||
|
|
||||||
bool showParticle= true;
|
bool showParticle= true;
|
||||||
|
Reference in New Issue
Block a user