summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-05-09 21:20:34 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2013-05-09 21:20:34 +0200
commit2fe6ecbb3ebbd2b2a9b5f66bbf02bc7f3092295a (patch)
tree9119abe616678fb7c8c98fbfc8c188347ad5bb32
parent74fc0c9584b114decbe4c14bd6a8e220960794ca (diff)
downloadwol-proxyd-2fe6ecbb3ebbd2b2a9b5f66bbf02bc7f3092295a.tar.bz2
wol-proxyd-2fe6ecbb3ebbd2b2a9b5f66bbf02bc7f3092295a.tar.xz
we need set SO_BROADCAST to be able to send to broadcast addr
-rw-r--r--wol-proxyd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/wol-proxyd.c b/wol-proxyd.c
index b36ce98..09f9377 100644
--- a/wol-proxyd.c
+++ b/wol-proxyd.c
@@ -59,7 +59,7 @@ static int run_proxy(const char *iface, int port)
{
struct sockaddr_in src, dst;
char buf[256];
- int fd, n;
+ int fd, n = 1;
socklen_t addrlen;
fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
@@ -73,6 +73,7 @@ static int run_proxy(const char *iface, int port)
if (bind(fd, (struct sockaddr *)&src, sizeof(src)) < 0)
die("bind");
+ setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &n, sizeof(n));
while (1) {
n = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&src,