summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/wellenreiter.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui/wellenreiter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 6d62fa8..3453d18 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -17,13 +17,15 @@
#include <qpushbutton.h>
// Standard
#include <assert.h>
+#include <errno.h>
#include <unistd.h>
+#include <string.h>
#include <sys/types.h>
// Local
#include "wellenreiter.h"
#include "scanlistitem.h"
@@ -128,29 +130,37 @@ bool Wellenreiter::hasMessage()
FD_ZERO( &rfds );
FD_SET( daemon_fd, &rfds );
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 10;
int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv );
- return FD_ISSET( daemon_fd, &rfds );
+
+ if ( result == 0 )
+ {
+ return false;
+ }
+ else if ( result == -1 )
+ {
+ qDebug( "selected returned: %s", strerror( errno ) );
+ return false;
+ }
+ else
+ return true; //FD_ISSET( daemon_fd, &rfds ); gibbet 'eh nur einen Deskriptor
}
void Wellenreiter::timerEvent( QTimerEvent* e )
{
qDebug( "checking for message..." );
-
- int result = hasMessage();
- qDebug( "hasMessage() returned %d", result );
-
- if ( result )
+ if ( hasMessage() )
{
+ qDebug( "got message" );
handleMessage();
}
else
{
- qDebug( "no message :(" );
+ qDebug( "no message..." );
}
}
void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
{
// FIXME: this code belongs in customized QListView, not into this class