1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
--- socklib.c.orig 2008-09-18 22:43:15.000000000 +0200
+++ socklib.c 2009-02-10 10:01:40.000000000 +0100
@@ -18,6 +18,7 @@
#endif
#ifdef HAVE_NET_IF_H
+# include <sys/socket.h>
# include <net/if.h>
#endif
@@ -66,6 +67,8 @@
# define DEBUG 0
#endif
+#undef SIOCGIFINDEX
+
#ifdef LOSSTEST
/**
* Packet loss/swap testing...
@@ -353,7 +356,7 @@
int setTtl(int sock, int ttl) {
/* set the socket to broadcast */
- return setsockopt(sock, SOL_IP, IP_MULTICAST_TTL, (char*)&ttl, sizeof(int));
+ return setsockopt(sock, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&ttl, sizeof(int));
}
#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
@@ -422,7 +425,7 @@
int setMcastDestination(int sock, net_if_t *net_if, struct sockaddr_in *addr) {
-#ifdef WINDOWS
+#if defined(WINDOWS) || defined(__FreeBSD__)
int r;
struct sockaddr_in interface_addr;
struct in_addr if_addr;
@@ -720,7 +723,7 @@
net_if->name = strdup(chosen->ifr_name);
-#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
+#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX__TODO
/* Index for multicast subscriptions */
if(ioctl(s, SIOCGIFINDEX, chosen) < 0)
udpc_fatal(-1, "Error getting index for %s: %s", net_if->name,
|