author | mjm <mjm> | 2002-11-27 22:31:50 (UTC) |
---|---|---|
committer | mjm <mjm> | 2002-11-27 22:31:50 (UTC) |
commit | b4d01b67746887223de78e950689c385a5960ad9 (patch) (side-by-side diff) | |
tree | 397440c622c73a56bf4671d461bb50cca5e75ab5 | |
parent | 31a16f8dc73d79178a4840d9e7aa4a07bfd65a26 (diff) | |
download | opie-b4d01b67746887223de78e950689c385a5960ad9.zip opie-b4d01b67746887223de78e950689c385a5960ad9.tar.gz opie-b4d01b67746887223de78e950689c385a5960ad9.tar.bz2 |
updated pcap stuff
-rw-r--r-- | noncore/net/wellenreiter/daemon/source/daemon.cc | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc index 75b2222..b836a31 100644 --- a/noncore/net/wellenreiter/daemon/source/daemon.cc +++ b/noncore/net/wellenreiter/daemon/source/daemon.cc @@ -12,13 +12,14 @@ int main(int argc, char **argv) { int sock, maxfd, retval; char buffer[128]; + struct pcap_pkthdr header; pcap_t *handletopcap; + const unsigned char *packet; fd_set rset; fprintf(stderr, "wellenreiterd %s\n\n", VERSION); - /* will be replaced soon, just for max because max is lazy :-) */ if(!card_into_monitormode(handletopcap, SNIFFER_DEVICE, CARD_TYPE_NG)) { wl_logerr("Cannot set card into mon mode, aborting"); @@ -42,9 +43,9 @@ int main(int argc, char **argv) { FD_SET(sock, &rset); - // FD_SET(pcap_fileno(handletopcap), &rset); - // maxfd=sock + pcap_fileno(handletopcap) + 1; - maxfd=sock + 1; + FD_SET(pcap_fileno(handletopcap), &rset); + maxfd=sock + pcap_fileno(handletopcap) + 1; + if(select(maxfd, &rset, NULL, NULL, NULL) < 0) { wl_logerr("Error calling select: %s", strerror(errno)); @@ -54,7 +55,7 @@ int main(int argc, char **argv) /* Got data on local socket from GUI */ if(FD_ISSET(sock, &rset)) { - + /* Receive data from socket */ if((retval=recvcomm(&sock, buffer, sizeof(buffer))) < 0) { wl_logerr("Error trying to read: %s", strerror(errno)); @@ -62,29 +63,23 @@ int main(int argc, char **argv) } else { + /* check type of packet and start function according to it */ switch(retval) { case 98: - { wl_loginfo("Received STARTSNIFF command"); break; - }; case 99: - { wl_loginfo("Received STOPSNIFF command"); break; - }; default: - { wl_logerr("Received unknown command: %d", retval); break; - }; } } } /* FD_ISSET */ -#if 0 - /* Pcap stuff */ + /* Check pcap lib for packets */ if(FD_ISSET(pcap_fileno(handletopcap), &rset)) { @@ -92,10 +87,11 @@ int main(int argc, char **argv) packet = pcap_next(handletopcap, &header); /* process the packet */ - process_packets(NULL,&header,*&packet); - } -#endif + process_packets(&header,*&packet); } + + } /* while(1) */ + close(sock); exit(0); } |