summaryrefslogtreecommitdiff
authormjm <mjm>2002-11-27 22:31:50 (UTC)
committer mjm <mjm>2002-11-27 22:31:50 (UTC)
commitb4d01b67746887223de78e950689c385a5960ad9 (patch) (side-by-side diff)
tree397440c622c73a56bf4671d461bb50cca5e75ab5
parent31a16f8dc73d79178a4840d9e7aa4a07bfd65a26 (diff)
downloadopie-b4d01b67746887223de78e950689c385a5960ad9.zip
opie-b4d01b67746887223de78e950689c385a5960ad9.tar.gz
opie-b4d01b67746887223de78e950689c385a5960ad9.tar.bz2
updated pcap stuff
Diffstat (more/less context) (show 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);
- }
-#endif
+ process_packets(&header,*&packet);
}
+
+ } /* while(1) */
+
close(sock);
exit(0);