summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/daemon/source
Unidiff
Diffstat (limited to 'noncore/net/wellenreiter/daemon/source') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.cc54
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.hh2
-rw-r--r--noncore/net/wellenreiter/daemon/source/extract.hh2
-rw-r--r--noncore/net/wellenreiter/daemon/source/sendgui.cc42
-rw-r--r--noncore/net/wellenreiter/daemon/source/sendgui.hh19
5 files changed, 39 insertions, 80 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 }
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.hh b/noncore/net/wellenreiter/daemon/source/daemon.hh
index a9a97ac..12ba57e 100644
--- a/noncore/net/wellenreiter/daemon/source/daemon.hh
+++ b/noncore/net/wellenreiter/daemon/source/daemon.hh
@@ -17,2 +17,4 @@
17#include "../../libwellenreiter/source/log.hh" 17#include "../../libwellenreiter/source/log.hh"
18#include "../../libwellenreiter/source/proto.hh"
19
18 20
diff --git a/noncore/net/wellenreiter/daemon/source/extract.hh b/noncore/net/wellenreiter/daemon/source/extract.hh
index 21dcffa..e900cfa 100644
--- a/noncore/net/wellenreiter/daemon/source/extract.hh
+++ b/noncore/net/wellenreiter/daemon/source/extract.hh
@@ -1,2 +1,2 @@
1/* $Id */ 1/* $Id$ */
2/* 2/*
diff --git a/noncore/net/wellenreiter/daemon/source/sendgui.cc b/noncore/net/wellenreiter/daemon/source/sendgui.cc
deleted file mode 100644
index 9e57094..0000000
--- a/noncore/net/wellenreiter/daemon/source/sendgui.cc
+++ b/dev/null
@@ -1,42 +0,0 @@
1/*
2 * Send string to GUI
3 *
4 * $Id$
5 */
6
7#include "config.hh"
8#include "sendgui.hh"
9#include "log.hh"
10
11/* Send a string to the GUI */
12int sendgui(const char *string, ...)
13{
14 int sock=0;
15 char buffer[4096];
16 struct sockaddr_in saddr;
17 va_list ap;
18
19 /* Generate string */
20 memset(buffer, 0, sizeof(buffer));
21 va_start(ap, string);
22 vsnprintf(buffer, sizeof(buffer)-1, string, ap);
23 va_end(ap);
24
25 /* Setup socket */
26 sock = socket (AF_INET, SOCK_DGRAM, 0);
27 saddr.sin_family = AF_INET;
28 saddr.sin_port = htons(GUIPORT);
29 saddr.sin_addr.s_addr = inet_addr(GUIADDR);
30
31 if(sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&saddr, sizeof(saddr)) < 0)
32 {
33 log_err("Cannot write to socket: %s", strerror(errno));
34 close(sock);
35 return 0;
36 }
37
38 if(close(sock) < 0)
39 log_err("Cannot close socket: %s", strerror(errno));
40
41 return 1;
42}
diff --git a/noncore/net/wellenreiter/daemon/source/sendgui.hh b/noncore/net/wellenreiter/daemon/source/sendgui.hh
deleted file mode 100644
index d9b3fcd..0000000
--- a/noncore/net/wellenreiter/daemon/source/sendgui.hh
+++ b/dev/null
@@ -1,19 +0,0 @@
1/* $Id$ */
2
3#ifndef SENDGUI_HH
4#define SENDGUI_HH
5
6#include <sys/types.h>
7#include <sys/socket.h>
8#include <netinet/in.h>
9#include <arpa/inet.h>
10#include <signal.h>
11#include <errno.h>
12#include <string.h>
13#include <stdio.h>
14#include <unistd.h>
15#include <stdlib.h>
16
17int sendgui(const char *string, ...);
18
19#endif /* SENDGUI_HH */