summaryrefslogtreecommitdiffstats
path: root/src/input/pvsPrivInputHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/pvsPrivInputHandler.cpp')
-rw-r--r--src/input/pvsPrivInputHandler.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/input/pvsPrivInputHandler.cpp b/src/input/pvsPrivInputHandler.cpp
index 84ccbae..d33697a 100644
--- a/src/input/pvsPrivInputHandler.cpp
+++ b/src/input/pvsPrivInputHandler.cpp
@@ -86,9 +86,24 @@ void PVSPrivInputHandler::canRead()
if(!pvsPrivInputRecvMessage(_fd, _messageAssembly.data(), siz, pid, uid, gid, &err))
{
- close(_fd);
- deleteLater();
- return;
+ switch(err)
+ {
+ case EAGAIN:
+#if defined(EWOULDBLOCK) && (EWOULDBLOCK != EAGAIN)
+ case EWOULDBLOCK:
+#endif
+ // That's okay. Nothing to do.
+ break;
+ case 0:
+ // We'll survive. There was no actual error, just the library routine
+ // that decided it did not really want to receive that packet.
+ break;
+ default:
+ qWarning("Something bad just happened, and cannot handle it. Panicking.");
+ close(_fd);
+ deleteLater();
+ return;
+ }
}
else
{