-rw-r--r-- | noncore/net/wellenreiter/daemon/source/daemon.cc | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc index 51c2194..d6e8f6b 100644 --- a/noncore/net/wellenreiter/daemon/source/daemon.cc +++ b/noncore/net/wellenreiter/daemon/source/daemon.cc @@ -9,2 +9,16 @@ +// temporary solution, will be removed soon +#define MAXCHANNEL 13 +char sniffer_device[6]; +int channel=0; +int timedout=1; + +static int chanswitch() +{ + if(channel >= MAXCHANNEL) + channel=1 + card_set_channel(sniffer_device, channel, card_type); + timedout=0; +} + /* Main function of wellenreiterd */ @@ -13,3 +27,3 @@ int main(int argc, char **argv) int sock, maxfd, retval, card_type; - char buffer[WL_SOCKBUF], sniffer_device[6]; + char buffer[WL_SOCKBUF]; struct pcap_pkthdr header; @@ -27,2 +41,5 @@ int main(int argc, char **argv) + // removed soon, see above + SIGNAL(SIGALRM, chanswitch); + /* Set sniffer device */ @@ -74,2 +91,6 @@ int main(int argc, char **argv) + // blah + timedout=1; + alarm(1); + /* socket or pcap handle bigger? Will be cleaned up, have to check pcap */ @@ -77,3 +98,3 @@ int main(int argc, char **argv) - if(select(maxfd, &rset, NULL, NULL, NULL) < 0) + if(select(maxfd, &rset, NULL, NULL, NULL) < 0 && timedout) { @@ -87,3 +108,3 @@ int main(int argc, char **argv) /* Receive data from socket */ - if((retval=wl_recv(&sock, saddr, buffer, sizeof(buffer))) < 0) + if((retval=wl_recv(&sock, saddr, buffer, sizeof(buffer))) < 0 && timedout) { |