diff options
Diffstat (limited to 'net/smcroute/files')
-rw-r--r-- | net/smcroute/files/patch-Makefile.am | 21 | ||||
-rw-r--r-- | net/smcroute/files/patch-ipc.c | 52 | ||||
-rw-r--r-- | net/smcroute/files/patch-mcgroup.c | 50 | ||||
-rw-r--r-- | net/smcroute/files/patch-mroute-api.c | 55 | ||||
-rw-r--r-- | net/smcroute/files/patch-src-mroute.h | 14 | ||||
-rw-r--r-- | net/smcroute/files/smcrouted.in (renamed from net/smcroute/files/smcroute.in) | 17 |
6 files changed, 30 insertions, 179 deletions
diff --git a/net/smcroute/files/patch-Makefile.am b/net/smcroute/files/patch-Makefile.am index c5f8048e4b7f..f5a702bc66be 100644 --- a/net/smcroute/files/patch-Makefile.am +++ b/net/smcroute/files/patch-Makefile.am @@ -1,12 +1,13 @@ ---- Makefile.am.orig 2016-02-17 21:02:06 UTC +--- Makefile.am.orig 2024-05-09 17:03:52 UTC +++ Makefile.am -@@ -2,8 +2,7 @@ +@@ -3,8 +3,8 @@ dist_sbin_SCRIPTS = smcroute + SUBDIRS = man src + DISTCLEANFILES = *~ DEADJOE semantic.cache *.gdb *.elf core core.* *.d + dist_sbin_SCRIPTS = smcroute +-doc_DATA = README.md COPYING smcroute.conf +-EXTRA_DIST = README.md ChangeLog.md autogen.sh smcroute.conf smcroute.default smcroute.init ++doc_DATA = README.md ChangeLog.md ++EXTRA_DIST = autogen.sh smcroute.conf smcroute.default smcroute.init - dist_man8_MANS = smcroute.8 - --doc_DATA = README AUTHORS TODO ChangeLog COPYING \ -- smcroute.conf smcroute.init -+doc_DATA = README AUTHORS TODO ChangeLog COPYING - EXTRA_DIST = autogen.sh smcroute.conf smcroute.init - - sbin_PROGRAMS = smcroute + if ENABLE_TEST + SUBDIRS += test diff --git a/net/smcroute/files/patch-ipc.c b/net/smcroute/files/patch-ipc.c deleted file mode 100644 index 40ea56b8bca8..000000000000 --- a/net/smcroute/files/patch-ipc.c +++ /dev/null @@ -1,52 +0,0 @@ ---- ipc.c.orig 2016-02-17 21:02:06 UTC -+++ ipc.c -@@ -50,9 +50,22 @@ int ipc_server_init(void) - if (server_sd >= 0) - close(server_sd); - -+#ifdef SOCK_CLOEXEC - server_sd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); -+#else -+ server_sd = socket(AF_UNIX, SOCK_STREAM, 0); -+#endif - if (server_sd < 0) - return -1; -+#ifndef SOCK_CLOEXEC -+ if (fcntl(server_sd, F_SETFD, FD_CLOEXEC) < 0) { -+ int err = errno; -+ close(server_sd); -+ server_sd = -1; -+ errno = err; -+ return server_sd; -+ } -+#endif - - #ifdef HAVE_SOCKADDR_UN_SUN_LEN - sa.sun_len = 0; /* <- correct length is set by the OS */ -@@ -89,10 +102,26 @@ int ipc_client_init(void) - if (client_sd >= 0) - close(client_sd); - -+#ifdef SOCK_CLOEXEC - client_sd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); -+#else -+ client_sd = socket(AF_UNIX, SOCK_STREAM, 0); -+#endif - if (client_sd < 0) - return -1; - -+#ifndef SOCK_CLOEXEC -+ if (fcntl(client_sd, F_SETFD, FD_CLOEXEC) < 0) { -+ int err = errno; -+ -+ close(client_sd); -+ client_sd = -1; -+ -+ errno = err; -+ return -1; -+ } -+#endif -+ - #ifdef HAVE_SOCKADDR_UN_SUN_LEN - sa.sun_len = 0; /* <- correct length is set by the OS */ - #endif diff --git a/net/smcroute/files/patch-mcgroup.c b/net/smcroute/files/patch-mcgroup.c deleted file mode 100644 index d2cc2cdfddbf..000000000000 --- a/net/smcroute/files/patch-mcgroup.c +++ /dev/null @@ -1,50 +0,0 @@ ---- mcgroup.c.orig 2016-02-17 21:02:06 UTC -+++ mcgroup.c -@@ -54,11 +54,23 @@ static struct iface *find_valid_iface(co - static void mcgroup4_init(void) - { - if (mcgroup4_socket < 0) { -+#ifdef SOCK_CLOEXEC - mcgroup4_socket = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0); -+#else -+ mcgroup4_socket = socket(AF_INET, SOCK_DGRAM, 0); -+#endif - if (mcgroup4_socket < 0) { - smclog(LOG_ERR, "Failed creating socket for joining IPv4 multicast groups: %m"); - exit(255); - } -+#ifndef SOCK_CLOEXEC -+ if (fcntl(mcgroup4_socket, F_SETFD, FD_CLOEXEC) < 0) { -+ smclog(LOG_WARNING, "Failed creating socket for joining IPv4 multicast groups: %m"); -+ close(mcgroup4_socket); -+ mcgroup4_socket = -1; -+ return; -+ } -+#endif - - #ifdef __linux__ - if (setsockopt(mcgroup4_socket, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog)) < 0) -@@ -132,11 +144,23 @@ static int mcgroup6_socket = -1; - static void mcgroup6_init(void) - { - if (mcgroup6_socket < 0) { -+#ifdef SOCK_CLOEXEC - mcgroup6_socket = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_UDP); -+#else -+ mcgroup6_socket = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); -+#endif - if (mcgroup6_socket < 0) { - smclog(LOG_WARNING, "Failed creating socket for joining IPv6 multicast groups: %m"); - return; - } -+#ifndef SOCK_CLOEXEC -+ if (fcntl(mcgroup6_socket, F_SETFD, FD_CLOEXEC) < 0) { -+ smclog(LOG_WARNING, "Failed creating socket for joining IPv6 multicast groups: %m"); -+ close(mcgroup6_socket); -+ mcgroup6_socket = -1; -+ return; -+ } -+#endif - - #ifdef __linux__ - if (setsockopt(mcgroup6_socket, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog)) < 0) diff --git a/net/smcroute/files/patch-mroute-api.c b/net/smcroute/files/patch-mroute-api.c deleted file mode 100644 index 8158d37c136a..000000000000 --- a/net/smcroute/files/patch-mroute-api.c +++ /dev/null @@ -1,55 +0,0 @@ ---- mroute-api.c.orig 2016-02-17 21:02:06 UTC -+++ mroute-api.c -@@ -98,13 +98,26 @@ int mroute4_enable(void) - unsigned int i; - struct iface *iface; - -+#ifdef SOCK_CLOEXEC - mroute4_socket = socket(AF_INET, SOCK_RAW | SOCK_CLOEXEC, IPPROTO_IGMP); -+#else -+ mroute4_socket = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP); -+#endif - if (mroute4_socket < 0) { - if (ENOPROTOOPT == errno) - smclog(LOG_WARNING, "Kernel does not support IPv4 multicast routing, skipping ..."); - - return -1; - } -+#ifndef SOCK_CLOEXEC -+ if (fcntl(mroute4_socket, F_SETFD, FD_CLOEXEC) < 0) { -+ smclog(LOG_INIT, "Failed initializing IPv4 multicast routing API: %m"); -+ close(mroute4_socket); -+ mroute4_socket = -1; -+ -+ return -1; -+ } -+#endif - - if (setsockopt(mroute4_socket, IPPROTO_IP, MRT_INIT, (void *)&arg, sizeof(arg))) { - switch (errno) { -@@ -472,12 +485,25 @@ int mroute6_enable(void) - unsigned int i; - struct iface *iface; - -+#ifdef SOCK_CLOEXEC - if ((mroute6_socket = socket(AF_INET6, SOCK_RAW | SOCK_CLOEXEC, IPPROTO_ICMPV6)) < 0) { -+#else -+ if ((mroute6_socket = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0) { -+#endif - if (ENOPROTOOPT == errno) - smclog(LOG_WARNING, "Kernel does not support IPv6 multicast routing, skipping ..."); - - return -1; - } -+#ifndef SOCK_CLOEXEC -+ if (fcntl(mroute6_socket, F_SETFD, FD_CLOEXEC) < 0) { -+ smclog(LOG_INIT, "Failed initializing IPv6 multicast routing API: %m"); -+ close(mroute6_socket); -+ mroute6_socket = -1; -+ -+ return -1; -+ } -+#endif - if (setsockopt(mroute6_socket, IPPROTO_IPV6, MRT6_INIT, (void *)&arg, sizeof(arg))) { - switch (errno) { - case EADDRINUSE: diff --git a/net/smcroute/files/patch-src-mroute.h b/net/smcroute/files/patch-src-mroute.h new file mode 100644 index 000000000000..77bb0371f14a --- /dev/null +++ b/net/smcroute/files/patch-src-mroute.h @@ -0,0 +1,14 @@ +--- src/mroute.h.orig 2024-05-09 17:03:52 UTC ++++ src/mroute.h +@@ -13,7 +13,11 @@ + #include <netinet/in_var.h> + #endif + #include <netinet/ip.h> ++#if defined(__FreeBSD__) + #include "queue.h" /* Needed by netinet/ip_mroute.h on FreeBSD */ ++#include <sys/callout.h> ++#include <sys/mutex.h> ++#endif + + #ifdef HAVE_LINUX_MROUTE_H + #define _LINUX_IN_H /* For Linux <= 2.6.25 */ diff --git a/net/smcroute/files/smcroute.in b/net/smcroute/files/smcrouted.in index a3f72ec38bf4..efac0aabe5a0 100644 --- a/net/smcroute/files/smcroute.in +++ b/net/smcroute/files/smcrouted.in @@ -1,31 +1,24 @@ #!/bin/sh -# PROVIDE: smcroute +# PROVIDE: smcrouted # REQUIRE: netif routing # KEYWORD: nojail # # Add the following to /etc/rc.conf[.local] to enable this service # -# smcroute_enable="YES" +# smcrouted_enable="YES" # . /etc/rc.subr -name="smcroute" +name="smcrouted" rcvar="${name}_enable" command="%%PREFIX%%/sbin/${name}" -start_precmd="${name}_precmd" - -smcroute_precmd() -{ - - rc_flags="$rc_flags -d" -} load_rc_config $name -: ${smcroute_enable="NO"} -: ${smcroute_flags=""} +: ${smcrouted_enable="NO"} +: ${smcrouted_flags=""} run_rc_command "$1" |