diff --git a/api/transport/posix-udp.c b/api/transport/posix-udp.c index 48797616323cf82becbc6941abe933d478511b12..cf377f19b4f08bae2afa09cd3e51e8d0178d9e3b 100644 --- a/api/transport/posix-udp.c +++ b/api/transport/posix-udp.c @@ -46,10 +46,18 @@ eb_status_t eb_posix_udp_open(struct eb_transport* transportp, const char* port) { struct eb_posix_udp_transport* transport; eb_posix_sock_t sock; + int optval; sock = eb_posix_ip_open(SOCK_DGRAM, port); if (sock == -1) return EB_BUSY; + /* Etherbone can broadcast */ + optval = 1; + if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char*)&optval, sizeof(optval)) != 0) { + eb_posix_ip_close(sock); + return EB_FAIL; + } + transport = (struct eb_posix_udp_transport*)transportp; transport->socket = sock;