-rw-r--r-- | noncore/net/wellenreiter/daemon/source/daemon.cc | 1 | ||||
-rw-r--r-- | noncore/net/wellenreiter/daemon/source/sendgui.cc | 47 | ||||
-rw-r--r-- | noncore/net/wellenreiter/daemon/source/sendgui.hh | 1 |
3 files changed, 8 insertions, 41 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc index 7972c0f..8724efa 100644 --- a/noncore/net/wellenreiter/daemon/source/daemon.cc +++ b/noncore/net/wellenreiter/daemon/source/daemon.cc | |||
@@ -68,8 +68,9 @@ int main(int argc, char **argv) | |||
68 | { | 68 | { |
69 | log_err("Cannot read from stdin: %s", strerror(errno)); | 69 | log_err("Cannot read from stdin: %s", strerror(errno)); |
70 | break; | 70 | break; |
71 | } | 71 | } |
72 | log_info("Sending command to '%s': %s", GUIADDR, buffer); | ||
72 | 73 | ||
73 | /* Send string to GUI */ | 74 | /* Send string to GUI */ |
74 | sendgui("%d: %s", 1234, buffer); | 75 | sendgui("%d: %s", 1234, buffer); |
75 | 76 | ||
diff --git a/noncore/net/wellenreiter/daemon/source/sendgui.cc b/noncore/net/wellenreiter/daemon/source/sendgui.cc index 48ad5b8..9e57094 100644 --- a/noncore/net/wellenreiter/daemon/source/sendgui.cc +++ b/noncore/net/wellenreiter/daemon/source/sendgui.cc | |||
@@ -7,61 +7,29 @@ | |||
7 | #include "config.hh" | 7 | #include "config.hh" |
8 | #include "sendgui.hh" | 8 | #include "sendgui.hh" |
9 | #include "log.hh" | 9 | #include "log.hh" |
10 | 10 | ||
11 | /* Simple dummy for alarm timer */ | ||
12 | static void alarmdummy(int signo) | ||
13 | { | ||
14 | alarm (0); | ||
15 | } | ||
16 | |||
17 | /* Connect to given IP on given port */ | ||
18 | int connect_server(int *sock, unsigned int ipaddr, int port) | ||
19 | { | ||
20 | struct sockaddr_in saddr; | ||
21 | int retval=0; | ||
22 | |||
23 | *sock = socket (PF_INET, SOCK_STREAM, 0); | ||
24 | saddr.sin_family = PF_INET; | ||
25 | saddr.sin_port = htons (port); | ||
26 | saddr.sin_addr.s_addr = ipaddr; | ||
27 | |||
28 | signal (SIGALRM, alarmdummy); | ||
29 | siginterrupt (SIGALRM, 1); | ||
30 | |||
31 | alarm(5); | ||
32 | retval=connect (*sock, (struct sockaddr *) &saddr, sizeof (saddr)); | ||
33 | alarm(0); | ||
34 | |||
35 | if(retval < 0) | ||
36 | { | ||
37 | close (*sock); | ||
38 | return 0; | ||
39 | } | ||
40 | |||
41 | return 1; | ||
42 | } | ||
43 | |||
44 | /* Send a string to the GUI */ | 11 | /* Send a string to the GUI */ |
45 | int sendgui(const char *string, ...) | 12 | int sendgui(const char *string, ...) |
46 | { | 13 | { |
47 | int sock=0; | 14 | int sock=0; |
48 | char buffer[4096]; | 15 | char buffer[4096]; |
16 | struct sockaddr_in saddr; | ||
49 | va_list ap; | 17 | va_list ap; |
50 | 18 | ||
51 | /* Generate string */ | 19 | /* Generate string */ |
52 | memset(buffer, 0, sizeof(buffer)); | 20 | memset(buffer, 0, sizeof(buffer)); |
53 | va_start(ap, string); | 21 | va_start(ap, string); |
54 | vsnprintf(buffer, sizeof(buffer)-1, string, ap); | 22 | vsnprintf(buffer, sizeof(buffer)-1, string, ap); |
55 | va_end(ap); | 23 | va_end(ap); |
56 | 24 | ||
57 | if(!connect_server(&sock, inet_addr(GUIADDR), GUIPORT)) | 25 | /* Setup socket */ |
58 | { | 26 | sock = socket (AF_INET, SOCK_DGRAM, 0); |
59 | log_err("Connect to GUI at '%s' failed: %s", GUIADDR, strerror(errno)); | 27 | saddr.sin_family = AF_INET; |
60 | return 0; | 28 | saddr.sin_port = htons(GUIPORT); |
61 | } | 29 | saddr.sin_addr.s_addr = inet_addr(GUIADDR); |
62 | 30 | ||
63 | if(write(sock, buffer, sizeof(buffer)) < 0) | 31 | if(sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) |
64 | { | 32 | { |
65 | log_err("Cannot write to socket: %s", strerror(errno)); | 33 | log_err("Cannot write to socket: %s", strerror(errno)); |
66 | close(sock); | 34 | close(sock); |
67 | return 0; | 35 | return 0; |
@@ -71,5 +39,4 @@ int sendgui(const char *string, ...) | |||
71 | log_err("Cannot close socket: %s", strerror(errno)); | 39 | log_err("Cannot close socket: %s", strerror(errno)); |
72 | 40 | ||
73 | return 1; | 41 | return 1; |
74 | } | 42 | } |
75 | |||
diff --git a/noncore/net/wellenreiter/daemon/source/sendgui.hh b/noncore/net/wellenreiter/daemon/source/sendgui.hh index e083704..d9b3fcd 100644 --- a/noncore/net/wellenreiter/daemon/source/sendgui.hh +++ b/noncore/net/wellenreiter/daemon/source/sendgui.hh | |||
@@ -13,8 +13,7 @@ | |||
13 | #include <stdio.h> | 13 | #include <stdio.h> |
14 | #include <unistd.h> | 14 | #include <unistd.h> |
15 | #include <stdlib.h> | 15 | #include <stdlib.h> |
16 | 16 | ||
17 | int connect_server(int *, unsigned int, int); | ||
18 | int sendgui(const char *string, ...); | 17 | int sendgui(const char *string, ...); |
19 | 18 | ||
20 | #endif /* SENDGUI_HH */ | 19 | #endif /* SENDGUI_HH */ |