summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/daemon/source/daemon.cc
Unidiff
Diffstat (limited to 'noncore/net/wellenreiter/daemon/source/daemon.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.cc54
1 files changed, 36 insertions, 18 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc
index 1f9e98a..a2e1f96 100644
--- a/noncore/net/wellenreiter/daemon/source/daemon.cc
+++ b/noncore/net/wellenreiter/daemon/source/daemon.cc
@@ -14,5 +14,3 @@ int main(int argc, char **argv)
14{ 14{
15 int sock, maxfd; 15 int sock, maxfd, retval;
16 struct sockaddr_in *cliaddr;
17 socklen_t len=sizeof(struct sockaddr);
18 char buffer[128]; 16 char buffer[128];
@@ -27,2 +25,3 @@ int main(int argc, char **argv)
27 25
26#if 0
28 /* will be replaced soon, just for max because max is lazy :-) */ 27 /* will be replaced soon, just for max because max is lazy :-) */
@@ -33,2 +32,3 @@ int main(int argc, char **argv)
33 } 32 }
33#endif
34 34
@@ -45,3 +45,3 @@ int main(int argc, char **argv)
45 exit(-1); 45 exit(-1);
46 } 46 }
47 wl_loginfo("Set up socket '%d' for GUI communication", sock); 47 wl_loginfo("Set up socket '%d' for GUI communication", sock);
@@ -56,4 +56,5 @@ int main(int argc, char **argv)
56 FD_SET(sock, &rset); 56 FD_SET(sock, &rset);
57 FD_SET(pcap_fileno(handletopcap), &rset); 57 // FD_SET(pcap_fileno(handletopcap), &rset);
58 maxfd=sock + pcap_fileno(handletopcap) + 1; 58 // maxfd=sock + pcap_fileno(handletopcap) + 1;
59 maxfd=sock + 1;
59 if(select(maxfd, &rset, NULL, NULL, NULL) < 0) 60 if(select(maxfd, &rset, NULL, NULL, NULL) < 0)
@@ -67,15 +68,32 @@ int main(int argc, char **argv)
67 { 68 {
68 memset(buffer, 0, sizeof(buffer)); 69
69 if(recvfrom(sock, buffer, sizeof(buffer)-1, 0, (struct sockaddr *)cliaddr, &len) < 0) 70 if((retval=recvcomm(&sock, buffer, sizeof(buffer))) < 0)
70 { 71 {
71 wl_logerr("Cannot read from socket: %s", strerror(errno)); 72 wl_logerr("Error trying to read: %s", strerror(errno));
72 break; 73 break;
73 } 74 }
74 wl_loginfo("Received command from '%s': %s", inet_ntoa(cliaddr->sin_addr), buffer); 75 else
75 76 {
76 /* will be passed to analyze function */ 77 switch(retval)
77 fprintf(stderr, "Received command: %s\n", buffer); 78 {
78 79 case 98:
79 } 80 {
80 81 wl_loginfo("Received STARTSNIFF command");
82 break;
83 };
84 case 99:
85 {
86 wl_loginfo("Received STOPSNIFF command");
87 break;
88 };
89 default:
90 {
91 wl_logerr("Received unknown command: %d", retval);
92 break;
93 };
94 }
95 }
96 } /* FD_ISSET */
97
98#if 0
81 /* Pcap stuff */ 99 /* Pcap stuff */
@@ -89,4 +107,4 @@ int main(int argc, char **argv)
89 process_packets(NULL,&header,*&packet); 107 process_packets(NULL,&header,*&packet);
90
91 } 108 }
109#endif
92 } 110 }