summaryrefslogtreecommitdiff
path: root/net/smcroute/files
diff options
context:
space:
mode:
Diffstat (limited to 'net/smcroute/files')
-rw-r--r--net/smcroute/files/patch-Makefile.am21
-rw-r--r--net/smcroute/files/patch-ipc.c52
-rw-r--r--net/smcroute/files/patch-mcgroup.c50
-rw-r--r--net/smcroute/files/patch-mroute-api.c55
-rw-r--r--net/smcroute/files/patch-src-mroute.h14
-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"