Date: Wed, 02 Feb 2005 12:38:42 +0500 From: Boris Kovalenko <boris@tagnet.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/76997: [MAINTAINER UPDATE] net/quagga: update to 0.98.1 Message-ID: <E1CwF62-00023b-EU@boris.nikom.ru> Resent-Message-ID: <200502020740.j127eLlU025928@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 76997 >Category: ports >Synopsis: [MAINTAINER UPDATE] net/quagga: update to 0.98.1 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Wed Feb 02 07:40:20 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Boris Kovalenko >Release: FreeBSD 5.3-STABLE i386 >Organization: JSC "TAGNet" >Environment: System: FreeBSD boris.nikom.ru 5.3-STABLE FreeBSD 5.3-STABLE #2: Fri Jan 28 09:16:34 YEKT 2005 >Description: - Update to 0.98.1 Added file(s): - files/extra-tcpmd5-patch-bgpd::bgp_network.c - files/extra-tcpmd5-patch-bgpd::bgp_vty.c - files/extra-tcpmd5-patch-bgpd::bgpd.c - files/extra-tcpmd5-patch-bgpd::bgpd.h - files/extra-tcpmd5-patch-configure.ac - files/extra-tcpmd5-patch-lib::sockopt.c - files/extra-tcpmd5-patch-lib::sockopt.h Removed file(s): - files/extra-patch-zebra.h With this release BGP MD5 support is back. Special thanks to Scott E. Campbell for his hard work on integration of original patches from Bruce M. Simpson. Generated with FreeBSD Port Tools 0.63 >How-To-Repeat: >Fix: --- quagga-0.98.1.patch begins here --- diff -ruN --exclude=CVS /usr/ports/net/quagga/Makefile /usr/ports/net/quagga.new/Makefile --- /usr/ports/net/quagga/Makefile Sat Jan 15 08:01:27 2005 +++ /usr/ports/net/quagga.new/Makefile Wed Feb 2 11:31:18 2005 @@ -6,7 +6,7 @@ # PORTNAME= quagga -PORTVERSION= 0.98.0 +PORTVERSION= 0.98.1 PORTREVISION= 0 CATEGORIES= net ipv6 MASTER_SITES= http://quagga.net/download/ @@ -18,12 +18,13 @@ CONFLICTS= zebra-devel-[0-9]* zebra-0* -GNU_CONFIGURE= yes -USE_GMAKE= yes -USE_REINPLACE= yes -INSTALLS_SHLIB= yes -USE_LIBTOOL_VER=15 -USE_PERL5_BUILD=yes +GNU_CONFIGURE= yes +USE_GMAKE= yes +USE_REINPLACE= yes +INSTALLS_SHLIB= yes +USE_AUTOCONF_VER= 259 +USE_LIBTOOL_VER= 15 +USE_PERL5_BUILD= yes MAN1= vtysh.1 MAN8= bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8 @@ -34,7 +35,8 @@ OSPF_OPAQUE_LSA "OSPF Opaque-LSA support (RFC2370)" off \ RTADV "IPv6 Router Advertisements" off \ SNMP "SNMP support" off \ - TCPSOCKETS "Use TCP/IP sockets for protocol daemons" off + TCPSOCKETS "Use TCP/IP sockets for protocol daemons" off \ + TCPMD5 "Use experimental MD5 patch for BGP" off .if !defined(BATCH) SEL_OPTIONS= yes @@ -43,14 +45,13 @@ .include <bsd.port.pre.mk> CONFIGURE_ARGS+=--includedir=${PREFIX}/include --enable-exampledir=${PREFIX}/share/examples/quagga +CONFIGURE_ENV+= CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \ + LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib" + SCRIPTS_ENV= PREFIX=${PREFIX} \ SYSCONF_DIR=${SYSCONF_DIR} SYSSTATE_DIR=${SYSSTATE_DIR} \ ENABLE_USER=${ENABLE_USER} ENABLE_GROUP=${ENABLE_GROUP} -.if ${OSVERSION} < 500000 -EXTRA_PATCHES+=${PATCHDIR}/extra-patch-zebra.h -.endif - .if defined(WITH_ISISD) && !defined(WITHOUT_ISISD) CONFIGURE_ARGS+=--enable-isisd PLIST_SUB+= ISISD_SBIN=sbin/isisd @@ -78,12 +79,12 @@ PLIST_SUB+= OSPFAPI_LIBSO0="lib/libospfapiclient.so.0" PLIST_SUB+= OSPFAPI_SBIN="sbin/ospfclient" .else -PLIST_SUB+= OSPFAPI_HEADER= -PLIST_SUB+= OSPFAPI_PATH= -PLIST_SUB+= OSPFAPI_LIBA= -PLIST_SUB+= OSPFAPI_LIBSO= -PLIST_SUB+= OSPFAPI_LIBSO0= -PLIST_SUB+= OSPFAPI_SBIN= +PLIST_SUB+= OSPFAPI_HEADER="@comment" +PLIST_SUB+= OSPFAPI_PATH="@comment" +PLIST_SUB+= OSPFAPI_LIBA="@comment" +PLIST_SUB+= OSPFAPI_LIBSO="@comment" +PLIST_SUB+= OSPFAPI_LIBSO0="@comment" +PLIST_SUB+= OSPFAPI_SBIN="@comment" .endif .if defined(WITH_RTADV) && !defined(WITHOUT_RTADV) @@ -99,6 +100,14 @@ .endif .endif +.if defined(WITH_TCPMD5) && !defined(WITHOUT_TCPMD5) +.if ${OSVERSION} < 491000 +BROKEN= This version of FreeBSD does not have TCP MD5 signature support +.endif +CONFIGURE_ARGS+=--enable-tcp-signature +EXTRA_PATCHES+=${PATCHDIR}/extra-tcpmd5-patch-bgpd::bgp_network.c ${PATCHDIR}/extra-tcpmd5-patch-bgpd::bgp_vty.c ${PATCHDIR}/extra-tcpmd5-patch-bgpd::bgpd.c ${PATCHDIR}/extra-tcpmd5-patch-bgpd::bgpd.h ${PATCHDIR}/extra-tcpmd5-patch-configure.ac ${PATCHDIR}/extra-tcpmd5-patch-lib::sockopt.c ${PATCHDIR}/extra-tcpmd5-patch-lib::sockopt.h +.endif + .if !defined(ENABLE_USER) ENABLE_USER=quagga .endif @@ -167,14 +176,7 @@ @${ECHO} " WITH_RTADV IPv6 Router Advertisements" @${ECHO} " WITH_SNMP SNMP support" @${ECHO} " WITH_TCPSOCKETS Use TCP/IP sockets for protocol daemons" - -pre-configure: -# disable AUTO* tools - @${FIND} -E ${WRKSRC} -type f \ - -iregex ".*(Makefile.in|configure)" \ - | ${XARGS} -x -n 10 \ - ${REINPLACE_CMD} -E \ - -e 's!^(AUTOCONF|AUTOHEADER|AUTOMAKE|ACLOCAL).*$$!\1=${TRUE}!' + @${ECHO} " WITH_TCPMD5 Use experimental MD5 patch for BGP" post-build: @${SED} ${SED_SCRIPT} ${FILESDIR}/quagga.sh > ${WRKDIR}/quagga.sh @@ -205,6 +207,15 @@ @${ECHO} " if You had never do this before. Or run" @${ECHO} " make changeuser" @${ECHO} "" +.if defined(WITH_TCPMD5) && !defined(WITHOUT_TCPMD5) + @${ECHO} "Note!!! To use MD5 passwords on BGP sessions, your kernel must" + @${ECHO} "be built with the following options:" + @${ECHO} " options TCP_SIGNATURE" + @${ECHO} " options FAST_IPSEC" + @${ECHO} " device crypto" + @${ECHO} " device cryptodev" + @${ECHO} "" +.endif .if !defined(BATCH) post-clean: diff -ruN --exclude=CVS /usr/ports/net/quagga/distinfo /usr/ports/net/quagga.new/distinfo --- /usr/ports/net/quagga/distinfo Sat Jan 15 08:01:27 2005 +++ /usr/ports/net/quagga.new/distinfo Wed Feb 2 08:28:10 2005 @@ -1,2 +1,2 @@ -MD5 (quagga-0.98.0.tar.gz) = 938cdf15f0ff79f797fc08316b94f449 -SIZE (quagga-0.98.0.tar.gz) = 1997631 +MD5 (quagga-0.98.1.tar.gz) = 2262eebae593ef4b7739b16c66242c75 +SIZE (quagga-0.98.1.tar.gz) = 2001471 diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-patch-zebra.h /usr/ports/net/quagga.new/files/extra-patch-zebra.h --- /usr/ports/net/quagga/files/extra-patch-zebra.h Sat Jan 15 08:01:27 2005 +++ /usr/ports/net/quagga.new/files/extra-patch-zebra.h Thu Jan 1 05:00:00 1970 @@ -1,27 +0,0 @@ -Index: lib/zebra.h -=================================================================== -RCS file: /var/cvsroot/quagga/lib/zebra.h,v -retrieving revision 1.27 -diff -u -b -r1.27 zebra.h ---- lib/zebra.h 4 Jan 2005 16:24:43 -0000 1.27 -+++ lib/zebra.h 10 Jan 2005 15:35:47 -0000 -@@ -97,9 +97,17 @@ - #include <stdarg.h> - #if !(defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) - /* Not C99; do we need to define va_copy? */ --#if !defined(va_copy) && defined(__va_copy) -+#ifndef va_copy -+#ifdef __va_copy - #define va_copy(DST,SRC) __va_copy(DST,SRC) --#endif /* need va_copy */ -+#else -+/* Now we are desperate; this should work on many typical platforms. -+ But this is slightly dangerous, because the standard does not require -+ va_copy to be a macro. */ -+#define va_copy(DST,SRC) (DST) = (SRC) -+#warning "Not C99 and no va_copy macro available, using simple assignment..." -+#endif /* __va_copy */ -+#endif /* !va_copy */ - #endif /* !C99 */ - #include "zassert.h" - diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgp_network.c /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgp_network.c --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgp_network.c Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgp_network.c Wed Feb 2 11:50:18 2005 @@ -0,0 +1,42 @@ +--- bgpd/bgp_network.c.orig Wed Dec 8 12:41:23 2004 ++++ bgpd/bgp_network.c Fri Jan 28 17:52:57 2005 +@@ -35,6 +35,10 @@ + #include "bgpd/bgp_debug.h" + #include "bgpd/bgp_network.h" + ++#ifndef TCP_SIG_SPI_BASE ++#define TCP_SIG_SPI_BASE 1000 /* XXX this will go away */ ++#endif ++ + extern struct zebra_privs_t bgpd_privs; + + +@@ -148,6 +152,15 @@ + return ret; + } + #endif /* SO_BINDTODEVICE */ ++ ++#ifdef QUAGGA_TCP_MD5SIG ++ if (CHECK_FLAG (peer->flags, PEER_FLAG_TCP_SIGNATURE)) ++ sockopt_tcp_signature (peer->su.sa.sa_family, peer->fd, ++ TCP_SIG_SPI_BASE + peer->port); ++ else ++ sockopt_tcp_signature (peer->su.sa.sa_family, peer->fd, 0); ++#endif /* QUAGGA_TCP_MD5SIG */ ++ + return 0; + } + +@@ -250,6 +263,12 @@ + if (peer->ifname) + ifindex = if_nametoindex (peer->ifname); + #endif /* HAVE_IPV6 */ ++ ++#ifdef QUAGGA_TCP_MD5SIG ++ if (CHECK_FLAG (peer->flags, PEER_FLAG_TCP_SIGNATURE)) ++ sockopt_tcp_signature (peer->su.sa.sa_family, peer->fd, ++ TCP_SIG_SPI_BASE + peer->port); ++#endif /* QUAGGA_TCP_MD5SIG */ + + if (BGP_DEBUG (events, EVENTS)) + plog_debug (peer->log, "%s [Event] Connect start to %s fd %d", diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgp_vty.c /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgp_vty.c --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgp_vty.c Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgp_vty.c Wed Feb 2 11:50:39 2005 @@ -0,0 +1,59 @@ +--- bgpd/bgp_vty.c.orig Tue Oct 12 22:06:09 2004 ++++ bgpd/bgp_vty.c Fri Jan 28 17:52:57 2005 +@@ -1386,6 +1386,45 @@ + "AS number used as local AS\n" + "Do not prepend local-as to updates from ebgp peers\n") + ++#ifdef QUAGGA_TCP_MD5SIG ++DEFUN (neighbor_password, ++ neighbor_password_cmd, ++ NEIGHBOR_CMD2 "password WORD", ++ NEIGHBOR_STR ++ NEIGHBOR_ADDR_STR2 ++ "Specify a password for TCPMD5 authentication with this peer\n") ++{ ++ struct peer *peer; ++ int ret; ++ ++ peer = peer_and_group_lookup_vty (vty, argv[0]); ++ if (! peer) ++ return CMD_WARNING; ++ ++ ret = peer_password_set (peer, argv[1]); ++ return bgp_vty_return (vty, ret); ++} ++ ++DEFUN (no_neighbor_password, ++ no_neighbor_password_cmd, ++ NO_NEIGHBOR_CMD2 "password", ++ NO_STR ++ NEIGHBOR_STR ++ NEIGHBOR_ADDR_STR2 ++ "Disable TCPMD5 authentication with this peer\n") ++{ ++ struct peer *peer; ++ int ret; ++ ++ peer = peer_and_group_lookup_vty (vty, argv[0]); ++ if (! peer) ++ return CMD_WARNING; ++ ++ ret = peer_password_unset (peer); ++ return bgp_vty_return (vty, ret); ++} ++#endif /* QUAGGA_TCP_MD5SIG */ ++ + DEFUN (neighbor_activate, + neighbor_activate_cmd, + NEIGHBOR_CMD2 "activate", +@@ -8530,6 +8569,10 @@ + install_element (BGP_NODE, &no_neighbor_local_as_cmd); + install_element (BGP_NODE, &no_neighbor_local_as_val_cmd); + install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd); ++ ++ /* "neighbor password" commands. */ ++ install_element (BGP_NODE, &neighbor_password_cmd); ++ install_element (BGP_NODE, &no_neighbor_password_cmd); + + /* "neighbor activate" commands. */ + install_element (BGP_NODE, &neighbor_activate_cmd); diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgpd.c /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgpd.c --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgpd.c Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgpd.c Wed Feb 2 11:51:08 2005 @@ -0,0 +1,90 @@ +--- bgpd/bgpd.c.orig Thu Dec 9 06:46:46 2004 ++++ bgpd/bgpd.c Sat Jan 29 11:29:26 2005 +@@ -59,6 +59,9 @@ + #ifdef HAVE_SNMP + #include "bgpd/bgp_snmp.h" + #endif /* HAVE_SNMP */ ++#ifndef TCP_SIG_SPI_BASE ++#define TCP_SIG_SPI_BASE 1000 /* XXX this will go away */ ++#endif + + /* BGP process wide configuration. */ + static struct bgp_master bgp_master; +@@ -707,6 +710,7 @@ + peer->ostatus = Idle; + peer->version = BGP_VERSION_4; + peer->weight = 0; ++ peer->password[0] = '\0'; + + /* Set default flags. */ + for (afi = AFI_IP; afi < AFI_MAX; afi++) +@@ -3270,6 +3274,55 @@ + return 0; + } + ++#ifdef QUAGGA_TCP_MD5SIG ++/* Set password for authenticating with the peer. */ ++int ++peer_password_set (struct peer *peer, char *password) ++{ ++ struct bgp *bgp = peer->bgp; ++ int len; ++ ++ len = strlen(password); ++ ++ if ((len < PEER_PASSWORD_MINLEN) || (len > PEER_PASSWORD_MAXLEN)) ++ return BGP_ERR_INVALID_VALUE; ++ ++ memcpy(peer->password, password, len); ++ ++ /* ++ * XXX Need to do PF_KEY operation here to add an SA entry, ++ * and add an SP entry for this peer's packet flows also. ++ */ ++ ++ SET_FLAG (peer->flags, PEER_FLAG_TCP_SIGNATURE); ++ ++ if (peer->fd >= 0) ++ sockopt_tcp_signature (peer->su.sa.sa_family, peer->fd, TCP_SIG_SPI_BASE + ++ peer->port); ++ ++ return 0; ++} ++ ++int ++peer_password_unset (struct peer *peer) ++{ ++ struct bgp *bgp = peer->bgp; ++ ++ UNSET_FLAG (peer->flags, PEER_FLAG_TCP_SIGNATURE); ++ /* Paranoia. */ ++ memset(peer->password, 0, sizeof(peer->password)); ++ ++ if (peer->fd >= 0) ++ sockopt_tcp_signature (peer->su.sa.sa_family, peer->fd, 0); ++ ++ /* ++ * XXX Need to do PF_KEY operation here to remove the SA and SP. ++ */ ++ ++ return 0; ++} ++#endif /* QUAGGA_TCP_MD5SIG */ ++ + /* Set distribute list to the peer. */ + int + peer_distribute_set (struct peer *peer, afi_t afi, safi_t safi, int direct, +@@ -4279,6 +4332,13 @@ + if (peer->desc) + vty_out (vty, " neighbor %s description %s%s", addr, peer->desc, + VTY_NEWLINE); ++ ++#ifdef QUAGGA_TCP_MD5SIG ++ /* tcp-md5 session password. XXX the password should be obfuscated */ ++ if (CHECK_FLAG (peer->flags, PEER_FLAG_TCP_SIGNATURE)) ++ vty_out (vty, " neighbor %s password %s%s", addr, peer->password, ++ VTY_NEWLINE); ++#endif /* QUAGGA_TCP_MD5SIG */ + + /* Shutdown. */ + if (CHECK_FLAG (peer->flags, PEER_FLAG_SHUTDOWN)) diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgpd.h /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgpd.h --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-bgpd::bgpd.h Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-bgpd::bgpd.h Wed Feb 2 11:51:53 2005 @@ -0,0 +1,38 @@ +--- bgpd/bgpd.h.orig Tue Oct 12 22:06:09 2004 ++++ bgpd/bgpd.h Fri Jan 28 21:03:40 2005 +@@ -335,6 +335,9 @@ + #define PEER_FLAG_DYNAMIC_CAPABILITY (1 << 6) /* dynamic capability */ + #define PEER_FLAG_ENFORCE_MULTIHOP (1 << 7) /* enforce-multihop */ + #define PEER_FLAG_LOCAL_AS_NO_PREPEND (1 << 8) /* local-as no-prepend */ ++#ifdef QUAGGA_TCP_MD5SIG /* XXX should move to AF_INET/SFI_UNICAST below */ ++#define PEER_FLAG_TCP_SIGNATURE (1 << 9) /* use TCP-MD5 digest */ ++#endif /* QUAGGA_TCP_MD5SIG */ + + /* Per AF configuration flags. */ + u_int32_t af_flags[AFI_MAX][SAFI_MAX]; +@@ -496,6 +499,13 @@ + #define PEER_RMAP_TYPE_NOSET (1 << 5) /* not allow to set commands */ + #define PEER_RMAP_TYPE_IMPORT (1 << 6) /* neighbor route-map import */ + #define PEER_RMAP_TYPE_EXPORT (1 << 7) /* neighbor route-map export */ ++ ++#ifdef QUAGGA_TCP_MD5SIG ++ /* TCP-MD5 Password Support -- bms */ ++#define PEER_PASSWORD_MINLEN 1 ++#define PEER_PASSWORD_MAXLEN 80 /* width of password field */ ++ char password[PEER_PASSWORD_MAXLEN]; ++#endif /* QUAGGA_TCP_MD5SIG */ + }; + + /* This structure's member directly points incoming packet data +@@ -879,6 +889,11 @@ + + int peer_local_as_set (struct peer *, as_t, int); + int peer_local_as_unset (struct peer *); ++ ++#ifdef QUAGGA_TCP_MD5SIG ++int peer_password_set (struct peer *, char *); ++int peer_password_unset (struct peer *); ++#endif /* QUAGGA_TCP_MD5SIG */ + + int peer_prefix_list_set (struct peer *, afi_t, safi_t, int, const char *); + int peer_prefix_list_unset (struct peer *, afi_t, safi_t, int); diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-configure.ac /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-configure.ac --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-configure.ac Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-configure.ac Wed Feb 2 11:52:04 2005 @@ -0,0 +1,16 @@ +--- configure.ac.orig Fri Jan 7 06:03:14 2005 ++++ configure.ac Fri Jan 28 17:52:57 2005 +@@ -204,6 +204,13 @@ + AC_DEFINE(HAVE_IRDP,, IRDP ) + fi + ++AC_ARG_ENABLE(tcp-signature, ++[ --enable-tcp-signature enable TCP MD5 checksum capability]) ++ ++if test "${enable_tcp_signature}" = "yes"; then ++ AC_DEFINE(QUAGGA_TCP_MD5SIG,,TCP signatures) ++fi ++ + if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then + enable_user="quagga" + elif test "${enable_user}" = "no"; then diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-lib::sockopt.c /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-lib::sockopt.c --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-lib::sockopt.c Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-lib::sockopt.c Wed Feb 2 11:52:43 2005 @@ -0,0 +1,35 @@ +--- lib/sockopt.c.orig Tue Jan 4 10:03:36 2005 ++++ lib/sockopt.c Fri Jan 28 17:52:57 2005 +@@ -243,6 +243,32 @@ + + } + ++int ++sockopt_tcp_signature (int family, int sock, int enable) ++{ ++ int ret; ++ ++#if defined(QUAGGA_TCP_MD5SIG) && defined(TCP_MD5SIG) ++ if (family == AF_INET) ++ { ++ ret = setsockopt (sock, IPPROTO_TCP, TCP_MD5SIG, ++ (void *) &enable, sizeof (int)); ++ if (ret < 0) ++ { ++ zlog (NULL, LOG_WARNING, "can't set sockopt TCP_MD5SIG %d to socket %d", enable, sock); ++ return -1; ++ } ++ return 0; ++ } ++#endif /* QUAGGA_TCP_MD5SIG */ ++ ++ /* fallthrough */ ++ ++ zlog (NULL, LOG_WARNING, "can't set sockopt TCP_MD5SIG on socket %d with family %d", ++ sock, family); ++ return -1; ++} ++ + static int + setsockopt_ipv4_ifindex (int sock, int val) + { diff -ruN --exclude=CVS /usr/ports/net/quagga/files/extra-tcpmd5-patch-lib::sockopt.h /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-lib::sockopt.h --- /usr/ports/net/quagga/files/extra-tcpmd5-patch-lib::sockopt.h Thu Jan 1 05:00:00 1970 +++ /usr/ports/net/quagga.new/files/extra-tcpmd5-patch-lib::sockopt.h Wed Feb 2 11:52:50 2005 @@ -0,0 +1,12 @@ +--- lib/sockopt.h.orig Mon Nov 15 10:51:15 2004 ++++ lib/sockopt.h Fri Jan 28 17:52:57 2005 +@@ -40,6 +40,9 @@ + */ + #define SOPT_SIZE_CMSG_PKTINFO_IPV6() (sizeof (struct in6_pktinfo)); + ++#ifdef QUAGGA_TCP_MD5SIG ++int sockopt_tcp_signature(int family, int sock, int enable); ++#endif /* TCP_MD5SIG */ + /* + * Size defines for control messages used to get ifindex. We define + * values for each method, and define a macro that can be used by code --- quagga-0.98.1.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1CwF62-00023b-EU>