author | mjm <mjm> | 2002-11-27 21:16:52 (UTC) |
---|---|---|
committer | mjm <mjm> | 2002-11-27 21:16:52 (UTC) |
commit | e16163a106d5f814e9774f6a630cdb2ee488a616 (patch) (unidiff) | |
tree | ec0468c5a4cc889f3c4f7cca26c3dcb1d3e324b6 | |
parent | c118084479a4d146244b3e9e86b958f618a80a6d (diff) | |
download | opie-e16163a106d5f814e9774f6a630cdb2ee488a616.zip opie-e16163a106d5f814e9774f6a630cdb2ee488a616.tar.gz opie-e16163a106d5f814e9774f6a630cdb2ee488a616.tar.bz2 |
new funection recvcomm for receiving commands, cleanup,...
-rw-r--r-- | noncore/net/wellenreiter/libwellenreiter/source/sock.cc | 28 | ||||
-rw-r--r-- | noncore/net/wellenreiter/libwellenreiter/source/sock.hh | 1 |
2 files changed, 25 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 */ | ||
76 | int 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 | } | ||
diff --git a/noncore/net/wellenreiter/libwellenreiter/source/sock.hh b/noncore/net/wellenreiter/libwellenreiter/source/sock.hh index afde641..611e335 100644 --- a/noncore/net/wellenreiter/libwellenreiter/source/sock.hh +++ b/noncore/net/wellenreiter/libwellenreiter/source/sock.hh | |||
@@ -17,2 +17,3 @@ int commsock(const char *, int); | |||
17 | int sendcomm(const char *, int, const char *, ...); | 17 | int sendcomm(const char *, int, const char *, ...); |
18 | int recvcomm(int *, char *, int); | ||
18 | 19 | ||