-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 @@ -13,5 +13,7 @@ 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; @@ -19,5 +21,4 @@ int main(int argc, char **argv) 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)) { @@ -43,7 +44,7 @@ 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) { @@ -55,5 +56,5 @@ int main(int argc, char **argv) if(FD_ISSET(sock, &rset)) { - + /* Receive data from socket */ if((retval=recvcomm(&sock, buffer, sizeof(buffer))) < 0) { @@ -63,27 +64,21 @@ 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)) { @@ -93,8 +88,9 @@ int main(int argc, char **argv) /* process the packet */ - process_packets(NULL,&header,*&packet); + process_packets(&header,*&packet); } -#endif - } + + } /* while(1) */ + close(sock); exit(0); |