OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: Patch quagga0.99

From: Claudio Jeker (cjekerdiehard.n-r-g.com)
Date: Fri Aug 01 2008 - 06:10:22 CDT


On Fri, Aug 01, 2008 at 01:03:21PM +0200, Raphael Mazelier wrote:
> Hi,
>
> A few week ago you've proposed the following patch for quagga.
> It clearly fix the problem and works perfect on my three box.
> Could you take the time to include it in the port tree before the complete
> freeze after 4.4 ?
> (or someone else). Without this patch quagga (and zebra) are completly
> unusable on 4.3, and 4.4.
>
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/net/quagga/Makefile,v
> retrieving revision 1.10
> diff -u -p -r1.10 Makefile
> --- Makefile 15 Sep 2007 22:36:58 -0000 1.10
> +++ Makefile 10 Oct 2007 08:20:29 -0000
> -3,6 +3,7
> COMMENT= multi-threaded routing daemon
> DISTNAME= quagga-0.99.9
> +PKGNAME= ${DISTNAME}p0
> SHARED_LIBS= ospf 0.0 \
> zebra 0.0
> CATEGORIES= net
> Index: patches/patch-zebra_kernel_socket_c
> ===================================================================
> RCS file: /cvs/ports/net/quagga/patches/patch-zebra_kernel_socket_c,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-zebra_kernel_socket_c
> --- patches/patch-zebra_kernel_socket_c 12 Sep 2007 20:31:18 -0000 1.3
> +++ patches/patch-zebra_kernel_socket_c 9 Oct 2007 21:55:04 -0000
> -1,6 +1,6
> $OpenBSD: patch-zebra_kernel_socket_c,v 1.3 2007/09/12 20:31:18 rui Exp $
> ---- zebra/kernel_socket.c.orig Wed Aug 22 17:22:57 2007
> -+++ zebra/kernel_socket.c Tue Sep 11 16:52:21 2007
> +--- zebra/kernel_socket.c.orig Wed Aug 22 18:22:57 2007
> ++++ zebra/kernel_socket.c Tue Oct 9 23:54:58 2007
> -136,7 +136,7 struct message rtm_type_str[] =
> {RTM_REDIRECT, "RTM_REDIRECT"},
> {RTM_MISS, "RTM_MISS"},
> -10,3 +10,14 $OpenBSD: patch-zebra_kernel_socket_c,v {RTM_OLDADD,
> "RTM_OLDADD"},
> #endif /* RTM_OLDADD */
> #ifdef RTM_OLDDEL
> + -705,9 +705,7 rtm_read_mesg (struct rt_msghdr *rtm,
> + + /* rt_msghdr version check. */
> + if (rtm->rtm_version != RTM_VERSION) +- zlog (NULL, LOG_WARNING,
> +- "Routing message version different %d should be %d."
> +- "This may cause problem\n", rtm->rtm_version, RTM_VERSION);
> ++ return 0;
> + + /* Be sure structure is cleared */
> + memset (dest, 0, sizeof (union sockunion));
>

Iiick, yeah. I have the following for zebra.
I see if we can get them still in.

--
:wq Claudio

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/zebra/Makefile,v
retrieving revision 1.31
diff -u -p -r1.31 Makefile
--- Makefile 15 Sep 2007 22:37:00 -0000 1.31
+++ Makefile 23 May 2008 12:58:43 -0000
-5,7 +5,7
 COMMENT= multi-threaded routing daemon
 
 DISTNAME= zebra-0.93a
-PKGNAME= ${DISTNAME}p3
+PKGNAME= ${DISTNAME}p4
 CATEGORIES= net
 MASTER_SITES= ftp://ftp.zebra.org/pub/zebra/ \
                 ftp://ftp.knowledge.com/pub/mirrors/zebra/ \
Index: patches/patch-zebra_kernel_socket_c
===================================================================
RCS file: /cvs/ports/net/zebra/patches/patch-zebra_kernel_socket_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-zebra_kernel_socket_c
--- patches/patch-zebra_kernel_socket_c 9 Jun 2005 20:44:08 -0000 1.1
+++ patches/patch-zebra_kernel_socket_c 23 May 2008 13:00:22 -0000
-1,7 +1,7
 $OpenBSD: patch-zebra_kernel_socket_c,v 1.1 2005/06/09 20:44:08 robert Exp $
 --- zebra/kernel_socket.c.orig Tue Jun 18 20:16:17 2002
-+++ zebra/kernel_socket.c Thu Jun 9 14:01:36 2005
- -58,8 +58,12
++++ zebra/kernel_socket.c Fri May 23 15:00:12 2008
+ -58,8 +58,12 struct message rtm_type_str[] =
    {RTM_REDIRECT, "RTM_REDIRECT"},
    {RTM_MISS, "RTM_MISS"},
    {RTM_LOCK, "RTM_LOCK"},
-14,3 +14,14 $OpenBSD: patch-zebra_kernel_socket_c,v
    {RTM_RESOLVE, "RTM_RESOLVE"},
    {RTM_NEWADDR, "RTM_NEWADDR"},
    {RTM_DELADDR, "RTM_DELADDR"},
+ -387,9 +391,7 rtm_read_mesg (struct rt_msghdr *rtm,
+
+ /* rt_msghdr version check. */
+ if (rtm->rtm_version != RTM_VERSION)
+- zlog (NULL, LOG_WARNING,
+- "Routing message version different %d should be %d."
+- "This may cause problem\n", rtm->rtm_version, RTM_VERSION);
++ return 0;
+
+ #define RTMADDRGET(X,R) \
+ if (rtm->rtm_addrs & (R)) \