From d331ca1cf11e8f525665a1e5cb10f491d47c19e8 Mon Sep 17 00:00:00 2001 From: mjm Date: Tue, 31 Dec 2002 12:36:06 +0000 Subject: wl_recv was more or less broken because of missing socket structure, fixed. general cleanup. GUI has to be updated in functions wl_setupsock and wl_recv --- (limited to 'noncore/net/wellenreiter/libwellenreiter/source/wl_sock.cc') diff --git a/noncore/net/wellenreiter/libwellenreiter/source/wl_sock.cc b/noncore/net/wellenreiter/libwellenreiter/source/wl_sock.cc index db6b7b8..6e26cb8 100644 --- a/noncore/net/wellenreiter/libwellenreiter/source/wl_sock.cc +++ b/noncore/net/wellenreiter/libwellenreiter/source/wl_sock.cc @@ -8,9 +8,8 @@ #include "wl_log.hh" /* Setup UDP Socket for incoming commands */ -int wl_setupsock(const char *host, int port) +int wl_setupsock(const char *host, int port, struct sockaddr_in saddr) { - struct sockaddr_in saddr; int sock; if((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) @@ -23,7 +22,7 @@ int wl_setupsock(const char *host, int port) saddr.sin_family = PF_INET; saddr.sin_port = htons(port); saddr.sin_addr.s_addr = inet_addr(host); - + if(bind(sock,(struct sockaddr *)&saddr, sizeof(saddr)) < 0) { wl_logerr("Cannot bind socket: %s", strerror(errno)); @@ -73,15 +72,17 @@ int wl_send(const char *host, int port, const char *string, ...) } /* Check for new messages on commsock */ -int wl_recv(int *sock, char *out, int maxlen) +int wl_recv(int *sock, struct sockaddr_in cliaddr, char *out, int maxlen) { - struct sockaddr_in *cliaddr; socklen_t len = sizeof(struct sockaddr); char retval[3]; - + memset(out, 0, maxlen); - if(recvfrom(*sock, out, maxlen - 1, 0, (struct sockaddr *)cliaddr, &len) < 0) + if(recvfrom(*sock, out, maxlen - 1, 0, (struct sockaddr *)&cliaddr, &len) < 0) + { + wl_logerr("Cannot receive from socket: %s", strerror(errno)); return -1; + } /* Get packet type and return it */ memset(retval, 0, sizeof(retval)); -- cgit v0.9.0.2