Network: Fix SocketPoller error handling
This commit is contained in:
parent
db0e3267da
commit
33fb70b65b
|
|
@ -106,6 +106,7 @@ Nazara Engine:
|
||||||
- Added ModelLibrary, ModelManager and ModelSaver
|
- Added ModelLibrary, ModelManager and ModelSaver
|
||||||
- Added AbstractViewer::Project and AbstractViewer::Unproject methods
|
- Added AbstractViewer::Project and AbstractViewer::Unproject methods
|
||||||
- Added AbstractViewer::ProjectDepth method
|
- Added AbstractViewer::ProjectDepth method
|
||||||
|
- Fixed SocketPoller not be able to recover from some errors (like invalid sockets and such)
|
||||||
|
|
||||||
Nazara Development Kit:
|
Nazara Development Kit:
|
||||||
- Added ImageWidget (#139)
|
- Added ImageWidget (#139)
|
||||||
|
|
|
||||||
|
|
@ -100,17 +100,17 @@ namespace Nz
|
||||||
|
|
||||||
if (entry.revents & (POLLWRNORM | POLLERR))
|
if (entry.revents & (POLLWRNORM | POLLERR))
|
||||||
m_readyToWriteSockets.insert(entry.fd);
|
m_readyToWriteSockets.insert(entry.fd);
|
||||||
|
|
||||||
entry.revents = 0;
|
|
||||||
|
|
||||||
if (--socketRemaining == 0)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')');
|
NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')');
|
||||||
activeSockets--;
|
activeSockets--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
entry.revents = 0;
|
||||||
|
|
||||||
|
if (--socketRemaining == 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -154,17 +154,17 @@ namespace Nz
|
||||||
|
|
||||||
if (entry.revents & (POLLWRNORM | POLLERR))
|
if (entry.revents & (POLLWRNORM | POLLERR))
|
||||||
m_readyToWriteSockets.insert(entry.fd);
|
m_readyToWriteSockets.insert(entry.fd);
|
||||||
|
|
||||||
entry.revents = 0;
|
|
||||||
|
|
||||||
if (--socketRemaining == 0)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')');
|
NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')');
|
||||||
activeSockets--;
|
activeSockets--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
entry.revents = 0;
|
||||||
|
|
||||||
|
if (--socketRemaining == 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue