rtsol under Leopard
Leopard’s rtsol clients seems broken. Thanks to Wiedi, I managed to create this patch:
diff -ru network_cmds-307/rtsol.tproj/Makefile network_cmds-new/rtsol.tproj/Makefile --- network_cmds-307/rtsol.tproj/Makefile 2007-10-11 01:29:28.000000000 +0200 +++ network_cmds-new/rtsol.tproj/Makefile 2008-08-30 17:56:38.000000000 +0200 @@ -1,19 +1,15 @@ -Project = rtsol -Install_Dir = /sbin +CC=gcc +MAKE=make +SRCS=rtsold.c rtsol.c if.c probe.c dump.c rtsock.c +OBJS=$(SRCS:.c=.o) +OTHERFLAGS=-mdynamic-no-pic -dead_strip -DINET6 -DHAVE_GETIFADDRS -I/Developer/SDKs/MacOSX10.5.sdk/usr/include +Q= +all: $(OBJS) rtsold.h + $(Q)$(CC) -o rtsol $(OTHERFLAGS) $(OBJS) +.c.o: + @echo Compiling $< + $(Q)$(CC) $(OTHERFLAGS) -c $< +clean: + rm -f rtsol *.o *.bak *~
-CFILES = rtsold.c rtsol.c if.c probe.c dump.c rtsock.c -HFILES = rtsold.h -MANPAGES = rtsol.8
-Extra_CC_Flags = -mdynamic-no-pic -dead_strip - -DINET6 -DHAVE_GETIFADDRS - -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders -Extra_LD_Flags = -lipsec - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -after_install: - $(INSTALL_DIRECTORY) ”$(DSTROOT)“/usr/sbin - $(LN) -f ”$(DSTROOT)“/sbin/rtsol ”$(DSTROOT)“/usr/sbin/rtsold - $(LN) -f ”$(DSTROOT)“/usr/share/man/man8/rtsol.8 - ”$(DSTROOT)“/usr/share/man/man8/rtsold.8 diff -ru network_cmds-307/rtsol.tproj/probe.c network_cmds-new/rtsol.tproj/probe.c --- network_cmds-307/rtsol.tproj/probe.c 2006-02-07 07:23:04.000000000 +0100 +++ network_cmds-new/rtsol.tproj/probe.c 2008-08-30 18:01:41.000000000 +0200 @@ -85,7 +85,7 @@ /* make the socket send-only */ if (shutdown(probesock, 0)) { warnmsg(LOG_ERR, __FUNCTION__, “shutdown: %s”, strerror(errno)); - return(-1); + /* return(-1); */ }
/* initialize msghdr for sending packets */ diff -ru network_cmds-307/rtsol.tproj/rtsol.c network_cmds-new/rtsol.tproj/rtsol.c --- network_cmds-307/rtsol.tproj/rtsol.c 2006-02-07 07:23:04.000000000 +0100 +++ network_cmds-new/rtsol.tproj/rtsol.c 2008-08-30 18:02:15.000000000 +0200 @@ -43,7 +43,7 @@
#include <netinet/in.h> #include <netinet/ip6.h> -#include <netinet6/ip6_var.h> +#include <netinet6/in6_var.h> #include <netinet/icmp6.h>
#include <arpa/inet.h>
Use it like this:
# tar xzvf network_cmds-307.tar.gz # cd network_cmds-307 # patch -p1 < rtsol.patch # cd rtsol.tproj # make # mv /sbin/rtsol /sbin/rtsol.old && mv rtsol /sbin/