From b4d01b67746887223de78e950689c385a5960ad9 Mon Sep 17 00:00:00 2001 From: mjm Date: Wed, 27 Nov 2002 22:31:50 +0000 Subject: updated pcap stuff --- 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); + process_packets(&header,*&packet); } -#endif - } + + } /* while(1) */ + close(sock); exit(0); } -- cgit v0.9.0.2