summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.cc28
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);