diff options
author | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-08-06 13:36:47 +0200 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-08-06 13:39:46 +0200 |
commit | 060e31cb53386282f1995937c18fe39855865046 (patch) | |
tree | 7fd99b05a839fcd31a9bbce4deda5ad7ceb504b0 /src/wol.c | |
parent | 1855b68af3ee365f871090c840f728691dd687de (diff) |
#990 add wol_socket_open()
Add wol_socket_open() to initialize the WoL socket
Diffstat (limited to 'src/wol.c')
-rw-r--r-- | src/wol.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -20,6 +20,26 @@ #include "wol.h" #include "ogAdmServer.h" +int wol_socket_open(void) +{ + unsigned int on = 1; + int ret, s; + + s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if (s < 0) { + syslog(LOG_ERR, "cannot create socket for magic packet\n"); + return -1; + } + ret = setsockopt(s, SOL_SOCKET, SO_BROADCAST, (unsigned int *) &on, + sizeof(on)); + if (ret < 0) { + syslog(LOG_ERR, "cannot set broadcast socket\n"); + return -1; + } + + return s; +} + bool wake_up_send(int sd, struct sockaddr_in *client, const struct wol_msg *msg, const struct in_addr *addr) { |