From 567107d2223f654357949d148c1c09d6e2759e17 Mon Sep 17 00:00:00 2001
From: "Wesley W. Terpstra" <w.terpstra@gsi.de>
Date: Thu, 8 Mar 2012 15:09:25 +0000
Subject: [PATCH] Support broadcast Etherbone over UDP.

---
 api/transport/posix-udp.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/api/transport/posix-udp.c b/api/transport/posix-udp.c
index 4879761..cf377f1 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;
   
-- 
GitLab