--- embedaddon/quagga/zebra/zserv.c 2012/10/09 09:22:29 1.1.1.2 +++ embedaddon/quagga/zebra/zserv.c 2013/07/21 23:54:41 1.1.1.3 @@ -153,7 +153,7 @@ zserv_encode_interface (struct stream *s, struct inter stream_putl (s, ifp->mtu6); stream_putl (s, ifp->bandwidth); #ifdef HAVE_STRUCT_SOCKADDR_DL - stream_put (s, &ifp->sdl, sizeof (ifp->sdl)); + stream_put (s, &ifp->sdl, sizeof (ifp->sdl_storage)); #else stream_putl (s, ifp->hw_addr_len); if (ifp->hw_addr_len) @@ -775,6 +775,11 @@ zread_ipv4_add (struct zserv *client, u_short length) nexthop.s_addr = stream_get_ipv4 (s); nexthop_ipv4_add (rib, &nexthop, NULL); break; + case ZEBRA_NEXTHOP_IPV4_IFINDEX: + nexthop.s_addr = stream_get_ipv4 (s); + ifindex = stream_getl (s); + nexthop_ipv4_ifindex_add (rib, &nexthop, NULL, ifindex); + break; case ZEBRA_NEXTHOP_IPV6: stream_forward_getp (s, IPV6_MAX_BYTELEN); break; @@ -851,6 +856,10 @@ zread_ipv4_delete (struct zserv *client, u_short lengt case ZEBRA_NEXTHOP_IPV4: nexthop.s_addr = stream_get_ipv4 (s); nexthop_p = &nexthop; + break; + case ZEBRA_NEXTHOP_IPV4_IFINDEX: + nexthop.s_addr = stream_get_ipv4 (s); + ifindex = stream_getl (s); break; case ZEBRA_NEXTHOP_IPV6: stream_forward_getp (s, IPV6_MAX_BYTELEN);