summaryrefslogtreecommitdiff
path: root/libopie2/opienet/onetwork.cpp
authormickeyl <mickeyl>2003-10-21 18:09:34 (UTC)
committer mickeyl <mickeyl>2003-10-21 18:09:34 (UTC)
commit3e9d8077999bd928b7103bd19f7b41f305c573d9 (patch) (side-by-side diff)
tree507ee7f3a1539d02af159fb0fed4153e08c5ece0 /libopie2/opienet/onetwork.cpp
parent76ca3158518a851085b5a5ebe3724d0c0c3be857 (diff)
downloadopie-3e9d8077999bd928b7103bd19f7b41f305c573d9.zip
opie-3e9d8077999bd928b7103bd19f7b41f305c573d9.tar.gz
opie-3e9d8077999bd928b7103bd19f7b41f305c573d9.tar.bz2
- more work on scanning
- start OStation class representing a network node
Diffstat (limited to 'libopie2/opienet/onetwork.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/onetwork.cpp45
1 files changed, 44 insertions, 1 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp
index 918ba07..a85a510 100644
--- a/libopie2/opienet/onetwork.cpp
+++ b/libopie2/opienet/onetwork.cpp
@@ -34,6 +34,7 @@
/* OPIE */
#include <opie2/onetwork.h>
+#include <opie2/ostation.h>
/* QT */
@@ -881,11 +882,53 @@ int OWirelessNetworkInterface::scanNetwork()
if ( results )
{
+ qDebug( " - result length = %d", _iwr.u.data.length );
+ if ( !_iwr.u.data.length )
+ {
+ qDebug( " - no results (empty neighbourhood)" );
+ return 0;
+ }
+
qDebug( " - results are in!" );
+ dumpBytes( (const unsigned char*) &buffer[0], _iwr.u.data.length );
+
+ int stations = 0;
+
+ // parse results
+
+ int offset = 0;
+ struct iw_event* we = (struct iw_event*) &buffer[0];
+
+ while ( offset < _iwr.u.data.length )
+ {
+ //const char* cmd = *(*_ioctlmap)[we->cmd];
+ //if ( !cmd ) cmd = "<unknown>";
+ qDebug( "reading next event... cmd=%d, len=%d", we->cmd, we->len );
+ switch (we->cmd)
+ {
+ case SIOCGIWAP: qDebug( "SIOCGIWAP" ); stations++; break;
+ case SIOCGIWMODE: qDebug( "SIOCGIWMODE" ); break;
+ case SIOCGIWFREQ: qDebug( "SIOCGIWFREQ" ); break;
+ case SIOCGIWESSID: qDebug( "SIOCGIWESSID" ); break;
+ case SIOCGIWSENS: qDebug( "SIOCGIWSENS" ); break;
+ case SIOCGIWENCODE: qDebug( "SIOCGIWENCODE" ); break;
+ case IWEVTXDROP: qDebug( "IWEVTXDROP" ); break; /* Packet dropped to excessive retry */
+ case IWEVQUAL: qDebug( "IWEVQUAL" ); break; /* Quality part of statistics (scan) */
+ case IWEVCUSTOM: qDebug( "IWEVCUSTOM" ); break; /* Driver specific ascii string */
+ case IWEVREGISTERED: qDebug( "IWEVREGISTERED" ); break; /* Discovered a new node (AP mode) */
+ case IWEVEXPIRED: qDebug( "IWEVEXPIRED" ); break; /* Expired a node (AP mode) */
+ default: qDebug( "unhandled event" );
+ }
+
+ offset += we->len;
+ we = (struct iw_event*) &buffer[offset];
+ }
+
}
else
{
- qDebug( " - no results :(" );
+ qDebug( " - no results (timeout) :(" );
+ return 0;
}
}