summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/libwellenreiter/source/sock.cc
Unidiff
Diffstat (limited to 'noncore/net/wellenreiter/libwellenreiter/source/sock.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/libwellenreiter/source/sock.cc28
1 files changed, 24 insertions, 4 deletions
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/sock.cc b/noncore/net/wellenreiter/libwellenreiter/source/sock.cc
index 2cc16eb..90fc20a 100644
--- a/noncore/net/wellenreiter/libwellenreiter/source/sock.cc
+++ b/noncore/net/wellenreiter/libwellenreiter/source/sock.cc
@@ -50,2 +50,6 @@ int sendcomm(const char *host, int port, const char *string, ...)
50 50
51 saddr.sin_family = AF_INET;
52 saddr.sin_port = htons(port);
53 saddr.sin_addr.s_addr = inet_addr(host);
54
51 /* Setup socket */ 55 /* Setup socket */
@@ -57,6 +61,2 @@ int sendcomm(const char *host, int port, const char *string, ...)
57 61
58 saddr.sin_family = AF_INET;
59 saddr.sin_port = htons(port);
60 saddr.sin_addr.s_addr = inet_addr(host);
61
62 if(sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) 62 if(sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&saddr, sizeof(saddr)) < 0)
@@ -73 +73,21 @@ int sendcomm(const char *host, int port, const char *string, ...)
73} 73}
74
75/* Check for new messages on commsock */
76int recvcomm(int *sock, char *out, int maxlen)
77{
78 struct sockaddr_in *cliaddr;
79 socklen_t len=sizeof(struct sockaddr);
80 char buffer[128], retval[3];
81
82 memset(buffer, 0, sizeof(buffer));
83 if(recvfrom(*sock, buffer, sizeof(buffer)-1, 0, (struct sockaddr *)cliaddr, &len) < 0)
84 return -1;
85
86 memset(out, 0, maxlen);
87 memcpy(out, buffer, maxlen - 1);
88
89 memset(retval, 0, sizeof(retval));
90 memcpy(retval, out, 2);
91
92 return atoi(retval);
93}