diff -ruN zebra-0.89/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/Makefile.am
--- zebra-0.89/Makefile.am	Mon Oct  2 20:31:08 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/Makefile.am	Tue Oct  3 12:03:34 2000
@@ -1,6 +1,7 @@
 ## Process this file with automake to produce Makefile.in.
 
-SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @GUILE@ @VTYSH@ doc
+SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ \
+  @OSPFD@ @OSPF6D@ @GUILE@ @VTYSH@ doc init
 
 EXTRA_DIST = aczebra.m4 guile.m4 SERVICES TODO REPORTING-BUGS \
 	vtysh/Makefile.in vtysh/Makefile.am
@@ -9,3 +10,4 @@
 	mkdir $(distdir)/tools
 	cp -p $(srcdir)/tools/*.pl $(distdir)/tools
 	cp -p $(srcdir)/tools/*.el $(distdir)/tools
+	ln -sf init/redhat/zebra.spec $(distdir)/zebra.spec
diff -ruN zebra-0.89/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/Makefile.in
--- zebra-0.89/Makefile.in	Mon Oct  2 20:32:18 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/Makefile.in	Sun Oct 15 20:39:40 2000
@@ -87,9 +87,11 @@
 RT_METHOD = @RT_METHOD@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
 ZEBRA = @ZEBRA@
 
-SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @GUILE@ @VTYSH@ doc
+SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@   @OSPFD@ @OSPF6D@ @GUILE@ @VTYSH@ doc init
+
 
 EXTRA_DIST = aczebra.m4 guile.m4 SERVICES TODO REPORTING-BUGS 	vtysh/Makefile.in vtysh/Makefile.am
 
@@ -105,7 +107,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -188,13 +190,9 @@
 	dot_seen=no; \
 	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
 	  rev="$$subdir $$rev"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	  fi; \
+	  test "$$subdir" = "." && dot_seen=yes; \
 	done; \
-	if test "$$dot_seen" = "no"; then \
-	  rev=". $$rev"; \
-	fi; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
 	target=`echo $@ | sed s/-recursive//`; \
 	for subdir in $$rev; do \
 	  echo "Making $$target in $$subdir"; \
@@ -287,7 +285,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -383,6 +381,7 @@
 	mkdir $(distdir)/tools
 	cp -p $(srcdir)/tools/*.pl $(distdir)/tools
 	cp -p $(srcdir)/tools/*.el $(distdir)/tools
+	ln -sf init/redhat/zebra.spec $(distdir)/zebra.spec
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -ruN zebra-0.89/bgpd/ChangeLog zebra-0.89-cvs_20001015+rh_build_horms/bgpd/ChangeLog
--- zebra-0.89/bgpd/ChangeLog	Mon Oct  2 20:45:51 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/bgpd/ChangeLog	Sun Oct  8 14:29:35 2000
@@ -1,3 +1,22 @@
+2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
+
+	* bgp_route.c (neighbor_routes): Allocate sockunion for callback
+	function.
+	(bgp_show_neighbor_route): Remove static declaration for union
+	sockunion.
+
+	* bgpd.c (peer_update_source_set): Clean previously allocated
+	memory before allocate new one.
+
+2000-10-03  Akihiro Mizutani <mizutani@dml.com>
+
+	* bgp_route.c (neighbor_routes): Add show neighbor's routes
+	command.
+	"show ip bgp neighbors (A.B.C.D|X:X::X:X) routes"
+	"show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes"
+	"show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes"
+	"show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes"
+
 2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
 
 	* zebra-0.89 is released.
diff -ruN zebra-0.89/bgpd/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/bgpd/Makefile.in
--- zebra-0.89/bgpd/Makefile.in	Wed Sep 27 06:02:57 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/bgpd/Makefile.in	Sun Oct 15 20:39:42 2000
@@ -86,6 +86,7 @@
 RT_METHOD = @RT_METHOD@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
 ZEBRA = @ZEBRA@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
@@ -151,7 +152,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
 OBJECTS = $(libbgp_a_OBJECTS) $(bgpd_OBJECTS)
@@ -272,13 +273,14 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
 	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 	  fi; \
 	done
+
 info-am:
 info: info-am
 dvi-am:
diff -ruN zebra-0.89/bgpd/bgp_debug.c zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgp_debug.c
--- zebra-0.89/bgpd/bgp_debug.c	Fri Sep 22 02:43:27 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgp_debug.c	Sun Oct  8 14:30:12 2000
@@ -430,7 +430,7 @@
        "debug bgp fsm",
        DEBUG_STR
        BGP_STR
-       "BGP Finite Stete Machine\n")
+       "BGP Finite State Machine\n")
 {
   if (vty->node == CONFIG_NODE)
     DEBUG_ON (fsm, FSM);
@@ -445,7 +445,7 @@
        NO_STR
        DEBUG_STR
        BGP_STR
-       "Finite Stete Machine\n")
+       "Finite State Machine\n")
 {
   if (vty->node == CONFIG_NODE)
     DEBUG_OFF (fsm, FSM);
diff -ruN zebra-0.89/bgpd/bgp_route.c zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgp_route.c
--- zebra-0.89/bgpd/bgp_route.c	Mon Oct  2 18:19:25 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgp_route.c	Sun Oct  8 14:29:36 2000
@@ -3412,6 +3412,7 @@
   bgp_show_type_regexp,
   bgp_show_type_prefix_list,
   bgp_show_type_filter_list,
+  bgp_show_type_neighbor,
   bgp_show_type_community_all,
   bgp_show_type_community,
   bgp_show_type_community_exact,
@@ -3476,6 +3477,13 @@
 		if (as_list_apply (as_list, ri->attr->aspath) != AS_FILTER_PERMIT)
 		  continue;
 	      }
+	    if (vty->output_type == bgp_show_type_neighbor)
+	      {
+		union sockunion *su = vty->output_arg;
+
+		if (ri->peer->su_remote == NULL || ! sockunion_same(ri->peer->su_remote, su))
+		  continue;
+	      }
 	    if (vty->output_type == bgp_show_type_community_all)
 	      {
 		if (! ri->attr->community)
@@ -3634,6 +3642,13 @@
 		if (as_list_apply (as_list, ri->attr->aspath) != AS_FILTER_PERMIT)
 		  continue;
 	      }
+	    if (type == bgp_show_type_neighbor)
+	      {
+		union sockunion *su = vty->output_arg;
+
+		if (ri->peer->su_remote == NULL || ! sockunion_same(ri->peer->su_remote, su))
+		  continue;
+	      }
 	    if (type == bgp_show_type_community_all)
 	      {
 		if (! ri->attr->community)
@@ -5391,6 +5406,106 @@
 }
 #endif /* HAVE_IPV6 */
 
+void
+bgp_show_neighbor_route_clean (struct vty *vty)
+{
+  union sockunion *su;
+
+  su = vty->output_arg;
+  XFREE (MTYPE_SOCKUNION, su);
+}
+
+int
+bgp_show_neighbor_route (struct vty *vty, char *ip_str, u_int16_t afi,
+		                          u_char safi)
+{
+  union sockunion *su;
+  struct peer *peer;
+
+  su = sockunion_str2su (ip_str);
+  if (su == NULL)
+    {
+      vty_out (vty, "Malformed address: %s%s", ip_str, VTY_NEWLINE);
+	       return CMD_WARNING;
+    }
+
+  peer = peer_lookup_by_su (su);
+  if (! peer || ! peer->afc[afi][safi])
+    {
+      vty_out (vty, "%% No such neighbor or address family%s", VTY_NEWLINE);
+      XFREE (MTYPE_SOCKUNION, su);
+      return CMD_WARNING;
+    }
+ 
+  vty->output_arg = su;
+  vty->output_clean = bgp_show_neighbor_route_clean;
+
+  return bgp_show (vty, NULL, afi, safi, bgp_show_type_neighbor);
+}
+
+DEFUN (neighbor_routes,
+       neighbor_routes_cmd,
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) routes",
+       SHOW_STR
+       IP_STR
+       BGP_STR
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+{
+  return bgp_show_neighbor_route (vty, argv[0], AFI_IP, SAFI_UNICAST);
+}
+
+DEFUN (ipv4_neighbor_routes,
+       ipv4_neighbor_routes_cmd,
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes",
+       SHOW_STR
+       IP_STR
+       BGP_STR
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+{
+  if (strncmp (argv[0], "m", 1) == 0)
+    return bgp_show_neighbor_route (vty, argv[1], AFI_IP, SAFI_MULTICAST);
+
+  return bgp_show_neighbor_route (vty, argv[1], AFI_IP, SAFI_UNICAST);
+}
+#ifdef HAVE_IPV6
+DEFUN (ipv6_bgp_neighbor_routes,
+       ipv6_bgp_neighbor_routes_cmd,
+       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes",
+       SHOW_STR
+       IPV6_STR
+       BGP_STR
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+{
+  return bgp_show_neighbor_route (vty, argv[0], AFI_IP6, SAFI_UNICAST);
+}
+
+DEFUN (ipv6_mbgp_neighbor_routes,
+       ipv6_mbgp_neighbor_routes_cmd,
+       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes",
+       SHOW_STR
+       IPV6_STR
+       MBGP_STR
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+{
+  return bgp_show_neighbor_route (vty, argv[0], AFI_IP6, SAFI_MULTICAST);
+}
+#endif /* HAVE_IPV6 */
+
 struct route_table *bgp_distance_table;
 
 struct bgp_distance
@@ -5893,6 +6008,11 @@
   install_element (ENABLE_NODE, &neighbor_received_routes_cmd);
   install_element (ENABLE_NODE, &ipv4_neighbor_received_routes_cmd);
 
+  install_element (VIEW_NODE, &neighbor_routes_cmd);
+  install_element (VIEW_NODE, &ipv4_neighbor_routes_cmd);
+  install_element (ENABLE_NODE, &neighbor_routes_cmd);
+  install_element (ENABLE_NODE, &ipv4_neighbor_routes_cmd);
+
 #ifdef HAVE_IPV6
   /* IPv6 BGP commands. */
   install_element (BGP_NODE, &ipv6_bgp_network_cmd);
@@ -5986,6 +6106,11 @@
   install_element (ENABLE_NODE, &ipv6_bgp_neighbor_received_routes_cmd);
   install_element (VIEW_NODE, &ipv6_mbgp_neighbor_received_routes_cmd);
   install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_received_routes_cmd);
+
+  install_element (VIEW_NODE, &ipv6_bgp_neighbor_routes_cmd);
+  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_routes_cmd);
+  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_routes_cmd);
+  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_routes_cmd);
 #endif /* HAVE_IPV6 */
 
   install_element (BGP_NODE, &bgp_distance_cmd);
diff -ruN zebra-0.89/bgpd/bgpd.c zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgpd.c
--- zebra-0.89/bgpd/bgpd.c	Mon Oct  2 18:19:25 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/bgpd/bgpd.c	Sun Oct  8 14:29:36 2000
@@ -2791,25 +2791,22 @@
     return CMD_WARNING;
   peer = conf->peer;
 
-  peer->update_source = sockunion_str2su (source_str);
-
-  if (peer->update_source == NULL)
+  if (peer->update_source)
     {
-      peer->update_if = strdup (source_str);
-      if (peer->update_source)
-	{
-	  free (peer->update_source);
-	  peer->update_source = NULL;
-	}
-      return CMD_SUCCESS;
+      XFREE (MTYPE_SOCKUNION, peer->update_source);
+      peer->update_source = NULL;
     }
-
   if (peer->update_if)
     {
       free (peer->update_if);
       peer->update_if = NULL;
     }
 
+  peer->update_source = sockunion_str2su (source_str);
+
+  if (peer->update_source == NULL)
+    peer->update_if = strdup (source_str);
+
   return CMD_SUCCESS;
 }
 
@@ -2826,7 +2823,7 @@
 
   if (peer->update_source)
     {
-      free (peer->update_source);
+      XFREE (MTYPE_SOCKUNION, peer->update_source);
       peer->update_source = NULL;
     }
   if (peer->update_if)
diff -ruN zebra-0.89/configure zebra-0.89-cvs_20001015+rh_build_horms/configure
--- zebra-0.89/configure	Wed Sep 27 06:10:56 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/configure	Sun Oct 15 20:39:28 2000
@@ -2068,13 +2068,14 @@
 
 
 case "${enable_vtysh}" in
-  "yes") VTYSH="vtysh";
+  "yes") VTYSH="vtysh"
+         VTYSH_MAN="vtysh.1"
          cat >> confdefs.h <<\EOF
 #define VTYSH 1
 EOF
 
          echo $ac_n "checking for tputs in -lncurses""... $ac_c" 1>&6
-echo "configure:2078: checking for tputs in -lncurses" >&5
+echo "configure:2079: checking for tputs in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tputs | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2082,7 +2083,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2086 "configure"
+#line 2087 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2093,7 +2094,7 @@
 tputs()
 ; return 0; }
 EOF
-if { (eval echo configure:2097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2121,7 +2122,7 @@
 fi
 
          echo $ac_n "checking for main in -lreadline""... $ac_c" 1>&6
-echo "configure:2125: checking for main in -lreadline" >&5
+echo "configure:2126: checking for main in -lreadline" >&5
 ac_lib_var=`echo readline'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2129,14 +2130,14 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lreadline  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2133 "configure"
+#line 2134 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:2140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2168,17 +2169,17 @@
          fi
 	 ac_safe=`echo "readline/history.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for readline/history.h""... $ac_c" 1>&6
-echo "configure:2172: checking for readline/history.h" >&5
+echo "configure:2173: checking for readline/history.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2177 "configure"
+#line 2178 "configure"
 #include "confdefs.h"
 #include <readline/history.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2182: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2183: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2203,7 +2204,9 @@
            { echo "configure: error: readline is too old to have readline/history.h, please update to the latest readline library." 1>&2; exit 1; }
 	 fi
          ;;
-  "no" ) VTYSH="";;
+  "no" ) VTYSH=""
+         VTYSH_MAN=""
+	 ;;
   *    ) ;;
 esac
 
@@ -2225,14 +2228,14 @@
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2229: checking whether byte ordering is bigendian" >&5
+echo "configure:2232: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 2236 "configure"
+#line 2239 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2243,11 +2246,11 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 2251 "configure"
+#line 2254 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -2258,7 +2261,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -2278,7 +2281,7 @@
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 2282 "configure"
+#line 2285 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -2291,7 +2294,7 @@
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:2295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -2319,12 +2322,12 @@
 for ac_func in bcopy bzero strerror inet_aton daemon snprintf vsnprintf strlcat strlcpy if_nametoindex if_indextoname getifaddrs
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2323: checking for $ac_func" >&5
+echo "configure:2326: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2328 "configure"
+#line 2331 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2347,7 +2350,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2373,7 +2376,7 @@
 
 
 echo $ac_n "checking zebra between kernel interface method""... $ac_c" 1>&6
-echo "configure:2377: checking zebra between kernel interface method" >&5
+echo "configure:2380: checking zebra between kernel interface method" >&5
 if test x"$opsys" = x"gnu-linux"; then
   if test "${enable_netlink}" = "yes";then
     echo "$ac_t""netlink" 1>&6
@@ -2385,7 +2388,7 @@
     netlink=no
   else
     cat > conftest.$ac_ext <<EOF
-#line 2389 "configure"
+#line 2392 "configure"
 #include "confdefs.h"
 #include <linux/autoconf.h>
 #include <linux/version.h>
@@ -2422,7 +2425,7 @@
    echo "$ac_t""socket" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2426 "configure"
+#line 2429 "configure"
 #include "confdefs.h"
 #include <errno.h>
 #include <sys/types.h>
@@ -2438,7 +2441,7 @@
   exit (0);
 }
 EOF
-if { (eval echo configure:2442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define HAVE_AF_ROUTE 1
@@ -2464,7 +2467,7 @@
 
 
 echo $ac_n "checking route read method check""... $ac_c" 1>&6
-echo "configure:2468: checking route read method check" >&5
+echo "configure:2471: checking route read method check" >&5
 if eval "test \"`echo '$''{'zebra_rtread'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2491,7 +2494,7 @@
 
 
 echo $ac_n "checking interface looking up method""... $ac_c" 1>&6
-echo "configure:2495: checking interface looking up method" >&5
+echo "configure:2498: checking interface looking up method" >&5
 if test "$netlink" = yes; then
   echo "$ac_t""netlink" 1>&6
   IF_METHOD=if_netlink.o
@@ -2519,7 +2522,7 @@
 
 ac_safe=`echo "/proc/net/dev" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for /proc/net/dev""... $ac_c" 1>&6
-echo "configure:2523: checking for /proc/net/dev" >&5
+echo "configure:2526: checking for /proc/net/dev" >&5
 if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2549,7 +2552,7 @@
 
 ac_safe=`echo "/proc/net/if_inet6" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for /proc/net/if_inet6""... $ac_c" 1>&6
-echo "configure:2553: checking for /proc/net/if_inet6" >&5
+echo "configure:2556: checking for /proc/net/if_inet6" >&5
 if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2578,7 +2581,7 @@
 
 
 echo $ac_n "checking ipforward method check""... $ac_c" 1>&6
-echo "configure:2582: checking ipforward method check" >&5
+echo "configure:2585: checking ipforward method check" >&5
 if eval "test \"`echo '$''{'zebra_ipforward_path'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2607,12 +2610,12 @@
 for ac_func in getaddrinfo
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2611: checking for $ac_func" >&5
+echo "configure:2614: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2616 "configure"
+#line 2619 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2635,7 +2638,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2662,7 +2665,7 @@
 
 
 echo $ac_n "checking whether does this OS have IPv6 stack""... $ac_c" 1>&6
-echo "configure:2666: checking whether does this OS have IPv6 stack" >&5
+echo "configure:2669: checking whether does this OS have IPv6 stack" >&5
 if test "${enable_ipv6}" = "no"; then
   echo "$ac_t""disabled" 1>&6
 else
@@ -2723,7 +2726,7 @@
 
 if test "${enable_ipv6}" = "yes"; then
    cat > conftest.$ac_ext <<EOF
-#line 2727 "configure"
+#line 2730 "configure"
 #include "confdefs.h"
 dnl
    #include <linux/version.h>
@@ -2754,9 +2757,9 @@
 EOF
 
    echo $ac_n "checking for GNU libc 2.1""... $ac_c" 1>&6
-echo "configure:2758: checking for GNU libc 2.1" >&5
+echo "configure:2761: checking for GNU libc 2.1" >&5
    cat > conftest.$ac_ext <<EOF
-#line 2760 "configure"
+#line 2763 "configure"
 #include "confdefs.h"
 
 #include <features.h>
@@ -2837,7 +2840,7 @@
          
   ## First, let's just see if we can find Guile at all.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2841: checking for Guile" >&5
+echo "configure:2844: checking for Guile" >&5
   guile-config link > /dev/null || {
     echo "configure: cannot find guile-config; is Guile installed?" 1>&2
     exit 1
@@ -2870,8 +2873,9 @@
 
 
 
+
 echo $ac_n "checking for inet_ntop in -lc""... $ac_c" 1>&6
-echo "configure:2875: checking for inet_ntop in -lc" >&5
+echo "configure:2879: checking for inet_ntop in -lc" >&5
 ac_lib_var=`echo c'_'inet_ntop | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2879,7 +2883,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2883 "configure"
+#line 2887 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2890,7 +2894,7 @@
 inet_ntop()
 ; return 0; }
 EOF
-if { (eval echo configure:2894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2914,7 +2918,7 @@
 fi
 
 echo $ac_n "checking for inet_pton in -lc""... $ac_c" 1>&6
-echo "configure:2918: checking for inet_pton in -lc" >&5
+echo "configure:2922: checking for inet_pton in -lc" >&5
 ac_lib_var=`echo c'_'inet_pton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2922,7 +2926,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2926 "configure"
+#line 2930 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2933,7 +2937,7 @@
 inet_pton()
 ; return 0; }
 EOF
-if { (eval echo configure:2937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2957,7 +2961,7 @@
 fi
 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:2961: checking for crypt in -lcrypt" >&5
+echo "configure:2965: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2965,7 +2969,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2969 "configure"
+#line 2973 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2976,7 +2980,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:2980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3004,7 +3008,7 @@
 fi
 
 echo $ac_n "checking for res_init in -lresolv""... $ac_c" 1>&6
-echo "configure:3008: checking for res_init in -lresolv" >&5
+echo "configure:3012: checking for res_init in -lresolv" >&5
 ac_lib_var=`echo resolv'_'res_init | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3012,7 +3016,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
+#line 3020 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3023,7 +3027,7 @@
 res_init()
 ; return 0; }
 EOF
-if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3052,12 +3056,12 @@
 
 
 echo $ac_n "checking for __inet_ntop""... $ac_c" 1>&6
-echo "configure:3056: checking for __inet_ntop" >&5
+echo "configure:3060: checking for __inet_ntop" >&5
 if eval "test \"`echo '$''{'ac_cv_func___inet_ntop'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3061 "configure"
+#line 3065 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char __inet_ntop(); below.  */
@@ -3080,7 +3084,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func___inet_ntop=yes"
 else
@@ -3103,12 +3107,12 @@
 fi
 
 echo $ac_n "checking for __inet_pton""... $ac_c" 1>&6
-echo "configure:3107: checking for __inet_pton" >&5
+echo "configure:3111: checking for __inet_pton" >&5
 if eval "test \"`echo '$''{'ac_cv_func___inet_pton'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3112 "configure"
+#line 3116 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char __inet_pton(); below.  */
@@ -3131,7 +3135,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func___inet_pton=yes"
 else
@@ -3154,12 +3158,12 @@
 fi
 
 echo $ac_n "checking for __inet_aton""... $ac_c" 1>&6
-echo "configure:3158: checking for __inet_aton" >&5
+echo "configure:3162: checking for __inet_aton" >&5
 if eval "test \"`echo '$''{'ac_cv_func___inet_aton'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3163 "configure"
+#line 3167 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char __inet_aton(); below.  */
@@ -3182,7 +3186,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func___inet_aton=yes"
 else
@@ -3206,7 +3210,7 @@
 
 
 echo $ac_n "checking for regexec in -lc""... $ac_c" 1>&6
-echo "configure:3210: checking for regexec in -lc" >&5
+echo "configure:3214: checking for regexec in -lc" >&5
 ac_lib_var=`echo c'_'regexec | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3214,7 +3218,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3218 "configure"
+#line 3222 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3225,7 +3229,7 @@
 regexec()
 ; return 0; }
 EOF
-if { (eval echo configure:3229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3255,7 +3259,7 @@
 
 if test "${enable_snmp}" = "yes";then
   echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3259: checking for asn_parse_int in -lsnmp" >&5
+echo "configure:3263: checking for asn_parse_int in -lsnmp" >&5
 ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3263,7 +3267,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsnmp  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3267 "configure"
+#line 3271 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3274,7 +3278,7 @@
 asn_parse_int()
 ; return 0; }
 EOF
-if { (eval echo configure:3278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3298,7 +3302,7 @@
 	old_libs="${LIBS}"
 	LIBS="-L/usr/local/lib"
 	echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3302: checking for asn_parse_int in -lsnmp" >&5
+echo "configure:3306: checking for asn_parse_int in -lsnmp" >&5
 ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3306,7 +3310,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsnmp  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3310 "configure"
+#line 3314 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3317,7 +3321,7 @@
 asn_parse_int()
 ; return 0; }
 EOF
-if { (eval echo configure:3321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3366,9 +3370,9 @@
 fi
 
 echo $ac_n "checking whether struct sockaddr has a sa_len field""... $ac_c" 1>&6
-echo "configure:3370: checking whether struct sockaddr has a sa_len field" >&5
+echo "configure:3374: checking whether struct sockaddr has a sa_len field" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3372 "configure"
+#line 3376 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -3377,7 +3381,7 @@
 static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);
 ; return 0; }
 EOF
-if { (eval echo configure:3381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
  cat >> confdefs.h <<\EOF
@@ -3393,9 +3397,9 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct sockaddr_in has a sin_len field""... $ac_c" 1>&6
-echo "configure:3397: checking whether struct sockaddr_in has a sin_len field" >&5
+echo "configure:3401: checking whether struct sockaddr_in has a sin_len field" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3399 "configure"
+#line 3403 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -3404,7 +3408,7 @@
 static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);
 ; return 0; }
 EOF
-if { (eval echo configure:3408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
  cat >> confdefs.h <<\EOF
@@ -3421,9 +3425,9 @@
 
 if test "$zebra_cv_ipv6" = yes; then
   echo $ac_n "checking whether struct sockaddr_in6 has a sin6_scope_id field""... $ac_c" 1>&6
-echo "configure:3425: checking whether struct sockaddr_in6 has a sin6_scope_id field" >&5
+echo "configure:3429: checking whether struct sockaddr_in6 has a sin6_scope_id field" >&5
   cat > conftest.$ac_ext <<EOF
-#line 3427 "configure"
+#line 3431 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -3432,7 +3436,7 @@
 static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);
 ; return 0; }
 EOF
-if { (eval echo configure:3436: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
  cat >> confdefs.h <<\EOF
@@ -3449,9 +3453,9 @@
 fi
 
 echo $ac_n "checking whther socklen_t is defined""... $ac_c" 1>&6
-echo "configure:3453: checking whther socklen_t is defined" >&5
+echo "configure:3457: checking whther socklen_t is defined" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3455 "configure"
+#line 3459 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -3461,7 +3465,7 @@
 socklen_t ac_x;
 ; return 0; }
 EOF
-if { (eval echo configure:3465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3469: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
  cat >> confdefs.h <<\EOF
@@ -3477,9 +3481,9 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct sockaddr_dl exist""... $ac_c" 1>&6
-echo "configure:3481: checking whether struct sockaddr_dl exist" >&5
+echo "configure:3485: checking whether struct sockaddr_dl exist" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3483 "configure"
+#line 3487 "configure"
 #include "confdefs.h"
 #include <net/if_dl.h>
 EOF
@@ -3499,9 +3503,9 @@
 
 
 echo $ac_n "checking whether struct ifaliasreq exist""... $ac_c" 1>&6
-echo "configure:3503: checking whether struct ifaliasreq exist" >&5
+echo "configure:3507: checking whether struct ifaliasreq exist" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3505 "configure"
+#line 3509 "configure"
 #include "confdefs.h"
 #include <net/if.h>
 EOF
@@ -3521,9 +3525,9 @@
 
 
 echo $ac_n "checking whether struct if6_aliasreq exist""... $ac_c" 1>&6
-echo "configure:3525: checking whether struct if6_aliasreq exist" >&5
+echo "configure:3529: checking whether struct if6_aliasreq exist" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3527 "configure"
+#line 3531 "configure"
 #include "confdefs.h"
 #include <netinet6/in6_var.h>
 EOF
@@ -3543,9 +3547,9 @@
 
 
 echo $ac_n "checking whether struct rt_addrinfo exist""... $ac_c" 1>&6
-echo "configure:3547: checking whether struct rt_addrinfo exist" >&5
+echo "configure:3551: checking whether struct rt_addrinfo exist" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3549 "configure"
+#line 3553 "configure"
 #include "confdefs.h"
 #include <net/route.h>
 EOF
@@ -3569,7 +3573,7 @@
 
 
 echo $ac_n "checking pid file directory""... $ac_c" 1>&6
-echo "configure:3573: checking pid file directory" >&5
+echo "configure:3577: checking pid file directory" >&5
 if eval "test \"`echo '$''{'ac_piddir'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3611,13 +3615,13 @@
 
 
 echo $ac_n "checking for working htonl""... $ac_c" 1>&6
-echo "configure:3615: checking for working htonl" >&5
+echo "configure:3619: checking for working htonl" >&5
 if eval "test \"`echo '$''{'ac_cv_htonl_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 3621 "configure"
+#line 3625 "configure"
 #include "confdefs.h"
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -3632,7 +3636,7 @@
 htonl (0);
 ; return 0; }
 EOF
-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_htonl_works=yes
 else
@@ -3648,13 +3652,13 @@
 
 if test "$ac_cv_htonl_works" = "no"; then
   echo $ac_n "checking if htonl is repairable""... $ac_c" 1>&6
-echo "configure:3652: checking if htonl is repairable" >&5
+echo "configure:3656: checking if htonl is repairable" >&5
   if eval "test \"`echo '$''{'ac_cv_htonl_hack_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
   cat > conftest.$ac_ext <<EOF
-#line 3658 "configure"
+#line 3662 "configure"
 #include "confdefs.h"
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -3670,7 +3674,7 @@
 htonl(0);
 ; return 0; }
 EOF
-if { (eval echo configure:3674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_htonl_hack_works=yes
 else
@@ -3795,7 +3799,10 @@
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile guile/Makefile vtysh/Makefile doc/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile lib/Makefile zebra/Makefile ripd/Makefile 
+  ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile 
+  guile/Makefile vtysh/Makefile doc/Makefile 
+  init/Makefile init/redhat/Makefile init/redhat/zebra.spec config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -3871,6 +3878,7 @@
 s%@OSPF6D@%$OSPF6D%g
 s%@GUILE@%$GUILE%g
 s%@VTYSH@%$VTYSH%g
+s%@VTYSH_MAN@%$VTYSH_MAN%g
 s%@INCLUDES@%$INCLUDES%g
 s%@CURSES@%$CURSES%g
 s%@LIB_REGEX@%$LIB_REGEX%g
@@ -3915,7 +3923,10 @@
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile guile/Makefile vtysh/Makefile doc/Makefile"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile lib/Makefile zebra/Makefile ripd/Makefile 
+  ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile 
+  guile/Makefile vtysh/Makefile doc/Makefile 
+  init/Makefile init/redhat/Makefile init/redhat/zebra.spec"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff -ruN zebra-0.89/configure.in zebra-0.89-cvs_20001015+rh_build_horms/configure.in
--- zebra-0.89/configure.in	Wed Sep 27 06:02:51 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/configure.in	Tue Oct  3 12:04:55 2000
@@ -7,7 +7,7 @@
 AC_PREREQ(2.13)
 
 AC_INIT(lib/zebra.h)
-AM_INIT_AUTOMAKE(zebra, 0.89)
+AM_INIT_AUTOMAKE(zebra,0.89)
 
 # Get macros
 builtin(include, aczebra.m4)
@@ -151,7 +151,8 @@
 dnl Integrated VTY option
 dnl ---------------------
 case "${enable_vtysh}" in
-  "yes") VTYSH="vtysh";
+  "yes") VTYSH="vtysh"
+         VTYSH_MAN="vtysh.1"
          AC_DEFINE(VTYSH)
          AC_CHECK_LIB(ncurses, tputs)
          AC_CHECK_LIB(readline, main)
@@ -163,7 +164,9 @@
            AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
 	 fi
          ;;
-  "no" ) VTYSH="";;
+  "no" ) VTYSH=""
+         VTYSH_MAN=""
+	 ;;
   *    ) ;;
 esac
 
@@ -510,6 +513,7 @@
 AC_SUBST(OSPF6D)
 AC_SUBST(GUILE)
 AC_SUBST(VTYSH)
+AC_SUBST(VTYSH_MAN)
 AC_SUBST(INCLUDES)
 AC_SUBST(CURSES)
 AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
@@ -740,7 +744,10 @@
   fi
 fi
 
-AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile guile/Makefile vtysh/Makefile doc/Makefile)
+AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile 
+  ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile 
+  guile/Makefile vtysh/Makefile doc/Makefile 
+  init/Makefile init/redhat/Makefile init/redhat/zebra.spec)
 
 echo "
 zebra configuration
diff -ruN zebra-0.89/doc/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/doc/Makefile.am
--- zebra-0.89/doc/Makefile.am	Mon Oct  2 20:18:55 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/doc/Makefile.am	Tue Oct  3 12:50:14 2000
@@ -6,7 +6,7 @@
 	ipv6.texi kernel.texi main.texi ospf6d.texi ospfd.texi overview.texi \
 	protocol.texi ripd.texi ripngd.texi routemap.texi snmp.texi vtysh.texi
 
-man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
+man_MANS = @VTYSH_MAN@ bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
 
 EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS) 
 
diff -ruN zebra-0.89/doc/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/doc/Makefile.in
--- zebra-0.89/doc/Makefile.in	Mon Oct  2 20:19:08 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/doc/Makefile.in	Sun Oct 15 20:39:45 2000
@@ -87,6 +87,7 @@
 RT_METHOD = @RT_METHOD@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
 ZEBRA = @ZEBRA@
 
 info_TEXINFOS = zebra.texi
@@ -94,7 +95,7 @@
 zebra_TEXINFOS = appendix.texi basic.texi bgpd.texi filter.texi install.texi 	ipv6.texi kernel.texi main.texi ospf6d.texi ospfd.texi overview.texi 	protocol.texi ripd.texi ripngd.texi routemap.texi snmp.texi vtysh.texi
 
 
-man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
+man_MANS = @VTYSH_MAN@ bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
 
 EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS) 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -104,7 +105,6 @@
 INFO_DEPS = zebra.info
 DVIS = zebra.dvi
 TEXINFOS = zebra.texi
-man1dir = $(mandir)/man1
 man8dir = $(mandir)/man8
 MANS = $(man_MANS)
 
@@ -115,7 +115,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -245,39 +245,6 @@
 	  fi; \
 	done
 
-install-man1:
-	$(mkinstalldirs) $(DESTDIR)$(man1dir)
-	@list='$(man1_MANS)'; \
-	l2='$(man_MANS)'; for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
-	  $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
-	done
-
-uninstall-man1:
-	@list='$(man1_MANS)'; \
-	l2='$(man_MANS)'; for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
-	  rm -f $(DESTDIR)$(man1dir)/$$inst; \
-	done
-
 install-man8:
 	$(mkinstalldirs) $(DESTDIR)$(man8dir)
 	@list='$(man8_MANS)'; \
@@ -312,10 +279,10 @@
 	done
 install-man: $(MANS)
 	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-man1 install-man8
+	$(MAKE) $(AM_MAKEFLAGS) install-man8
 uninstall-man:
 	@$(NORMAL_UNINSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) uninstall-man1 uninstall-man8
+	$(MAKE) $(AM_MAKEFLAGS) uninstall-man8
 tags: TAGS
 TAGS:
 
@@ -328,7 +295,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -360,8 +327,7 @@
 install-strip:
 	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1 \
-		$(DESTDIR)$(mandir)/man8
+	$(mkinstalldirs)  $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man8
 
 
 mostlyclean-generic:
@@ -393,12 +359,12 @@
 maintainer-clean: maintainer-clean-am
 
 .PHONY: install-info-am uninstall-info mostlyclean-aminfo \
-distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
-uninstall-man1 install-man8 uninstall-man8 install-man uninstall-man \
-tags distdir info-am info dvi-am dvi check check-am installcheck-am \
-installcheck install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
+distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man8 \
+uninstall-man8 install-man uninstall-man tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
 maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 
 
diff -ruN zebra-0.89/doc/vtysh.1 zebra-0.89-cvs_20001015+rh_build_horms/doc/vtysh.1
--- zebra-0.89/doc/vtysh.1	Tue Jul  4 12:11:37 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/doc/vtysh.1	Wed Dec 31 19:00:00 1969
@@ -1,68 +0,0 @@
-.TH VTYSH 1 "July 2000" "Zebra Beast - VTY shell" "Version 0.88"
-
-.SH NAME
-vtysh \- a integrated shell for Zebra routing software
-
-.SH SYNOPSIS
-.B vtysh
-[
-.B \-e command
-]
-
-.SH DESCBGPTION
-.B vtysh
-is a integrated shell for
-.B Zebra
-routing engine.
-
-
-.SH OPTIONS
-
-.TP
-\fB\-e
-Specify command to be executed under batch mode.
-
-
-.SH COMMANDS
-
-\fB Almost Zebra commands.
-
-\fB ping
-\fB traceroute
-\fB telnnet
-
-\fB start-shell
-\fB start-shell bash
-\fB start-shell zsh
-
-
-.SH FILES
-
-.TP
-.BI /usr/local/etc/Zebra.conf
-The default location of the 
-.B vtysh
-config file.
-
-
-.SH WARNING
-This man page is intended as a quick reference for command line
-options, and for config file commands. The definitive document is the
-Info file \fBZebra\fR.
-
-
-.SH "SEE ALSO"
-References to other related man pages:
-
-bgpd(8), ripd(8), ripngd(8), ospfd(8), ospf6d(8), zebra(8)
-
-
-.SH BUGS
-.B vtysh
-eats bugs for breakfast. If you have food for the maintainers try 
-.BI <bug-zebra@gnu.org>
-
-
-.SH AUTHOR[S]
-See <\fBwww.zebra.org\fR>, or the Info file for an accurate list of authors.
-
diff -ruN zebra-0.89/doc/zebra.info-1 zebra-0.89-cvs_20001015+rh_build_horms/doc/zebra.info-1
--- zebra-0.89/doc/zebra.info-1	Fri Sep 29 14:31:55 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/doc/zebra.info-1	Mon Oct  2 16:38:15 2000
@@ -281,9 +281,6 @@
      `A Border Gateway Protocol 4 (BGP-4). Y. Rekhter & T. Li. March
      1995.'
 
-RFC1965
-     `Autonomous System Confederations for BGP. P. Traina. June 1996.'
-
 RFC1997
      `BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August
      1996.'
diff -ruN zebra-0.89/guile/ChangeLog zebra-0.89-cvs_20001015+rh_build_horms/guile/ChangeLog
--- zebra-0.89/guile/ChangeLog	Mon Oct  2 20:46:20 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/ChangeLog	Wed Dec 31 19:00:00 1969
@@ -1,26 +0,0 @@
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* zebra-0.89 is released.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* zebra-0.88 is released.
-
-1999-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* guile-bgp.c (scm_router_bgp): Allocate real struct bgp object.
-
-	* Makefile.am: Delete -DPACKAGE and -DVERSION.
-
-	* zebra-guile.h: File added.
-	* zebra-support.c: File added.
-	* guile-bgp.c: File added.
-
-1999-04-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* guile/Makefile.am (INCLUDES): Use @GUILE_CFLAGS@ and
-	@GUILE_LDFLAGS@
-
-1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* zebra-guile work restarted.
diff -ruN zebra-0.89/guile/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/guile/Makefile.am
--- zebra-0.89/guile/Makefile.am	Sun May  2 19:17:12 1999
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/Makefile.am	Wed Dec 31 19:00:00 1969
@@ -1,9 +0,0 @@
-## Process this file with Automake to create Makefile.in
-
-INCLUDES = @GUILE_CFLAGS@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-DEFS = @DEFS@ -I. -I$(srcdir)
-
-bin_PROGRAMS = zebra-guile
-zebra_guile_SOURCES = zebra-guile.c zebra-support.c guile-bgp.c
-noinst_HEADERS = zebra-guile.h
-zebra_guile_LDADD = @GUILE_LDFLAGS@ ../bgpd/libbgp.a ../lib/libzebra.a
diff -ruN zebra-0.89/guile/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/guile/Makefile.in
--- zebra-0.89/guile/Makefile.in	Wed Sep 27 06:12:34 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/Makefile.in	Wed Dec 31 19:00:00 1969
@@ -1,301 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AR = @AR@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-GUILE = @GUILE@
-GUILE_CFLAGS = @GUILE_CFLAGS@
-GUILE_LDFLAGS = @GUILE_LDFLAGS@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-
-INCLUDES = @GUILE_CFLAGS@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-DEFS = @DEFS@ -I. -I$(srcdir)
-
-bin_PROGRAMS = zebra-guile
-zebra_guile_SOURCES = zebra-guile.c zebra-support.c guile-bgp.c
-noinst_HEADERS = zebra-guile.h
-zebra_guile_LDADD = @GUILE_LDFLAGS@ ../bgpd/libbgp.a ../lib/libzebra.a
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-PROGRAMS =  $(bin_PROGRAMS)
-
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-zebra_guile_OBJECTS =  zebra-guile.o zebra-support.o guile-bgp.o
-zebra_guile_DEPENDENCIES =  ../bgpd/libbgp.a ../lib/libzebra.a
-zebra_guile_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(noinst_HEADERS)
-
-DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(zebra_guile_SOURCES)
-OBJECTS = $(zebra_guile_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps guile/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(bindir)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-	  else :; fi; \
-	done
-
-uninstall-binPROGRAMS:
-	@$(NORMAL_UNINSTALL)
-	list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
-	done
-
-.c.o:
-	$(COMPILE) -c $<
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-zebra-guile: $(zebra_guile_OBJECTS) $(zebra_guile_DEPENDENCIES)
-	@rm -f zebra-guile
-	$(LINK) $(zebra_guile_LDFLAGS) $(zebra_guile_OBJECTS) $(zebra_guile_LDADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-	tags=; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-	-rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = guile
-
-distdir: $(DISTFILES)
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-binPROGRAMS
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-binPROGRAMS
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS) $(HEADERS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(bindir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-binPROGRAMS clean-compile clean-tags clean-generic \
-		mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-binPROGRAMS distclean-compile distclean-tags \
-		distclean-generic clean-am
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-binPROGRAMS \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff -ruN zebra-0.89/guile/README zebra-0.89-cvs_20001015+rh_build_horms/guile/README
--- zebra-0.89/guile/README	Wed Apr 21 12:39:56 1999
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/README	Wed Dec 31 19:00:00 1969
@@ -1,17 +0,0 @@
-
-			     zebra-guile
-
-			  Kunihiro Ishiguro
-				 1999
-
-1. What is zebra-guile
-
-zebra-guile is GNU Zebra which linked with guile.  Almost zebra's
-command can be called from guile interpreter.  So you can use guile as
-a routing scripting language.
-
-2. How to use it.
-
-(define bgp (router-bgp 7675))
-
-3.
diff -ruN zebra-0.89/guile/guile-bgp.c zebra-0.89-cvs_20001015+rh_build_horms/guile/guile-bgp.c
--- zebra-0.89/guile/guile-bgp.c	Wed Sep 27 05:11:31 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/guile-bgp.c	Wed Dec 31 19:00:00 1969
@@ -1,117 +0,0 @@
-/* Guile bgp interface.
-   Copyright (C) 1999 Kunihiro Ishiguro
-
-This file is part of GNU Zebra.
-
-GNU Zebra is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-GNU Zebra is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Zebra; see the file COPYING.  If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
-
-#include <zebra.h>
-#include <guile/gh.h>
-
-#include "log.h"
-#include "bgpd/bgpd.h"
-
-/* static SCM scm_mark_bgp (SCM obj); */
-static size_t scm_free_bgp (SCM vect);
-static int scm_print_bgp (SCM vect, SCM port, scm_print_state *pstate);
-static SCM scm_equalp_bgp (SCM a, SCM b);
-
-/* Tag of scheme type of bgp. */
-long scm_tag_bgp;
-
-static scm_smobfuns bgp_funs =
-{
-  scm_mark0, scm_free_bgp, scm_print_bgp, scm_equalp_bgp
-};
-
-static int
-scm_print_bgp (SCM vect, SCM port, scm_print_state *pstate)
-{
-  unsigned short num;
-  struct bgp *bgp;
-
-  num = 0;
-  bgp = (struct bgp *) SCM_CDR (vect);
-  num = bgp->as;
-  scm_puts ("#<bgp ", port);
-  scm_intprint (num, 10, port);
-  scm_putc ('>', port);
-  return 1;
-}
-
-static size_t
-scm_free_bgp (SCM obj)
-{
-  /* dummy function. */
-  return 10;
-}
-
-static SCM
-scm_equalp_bgp (SCM a, SCM b)
-{
-  
-  return SCM_BOOL_F;
-}
-
-/* Make bgp instance. */
-SCM
-scm_router_bgp (SCM as_number)
-{
-  SCM cell;
-  long num;
-  struct bgp *bgp;
-  struct bgp *bgp_create ();
-
-  SCM_ASSERT (SCM_INUMP (as_number), as_number, SCM_ARG1, "router-bgp");
-
-  SCM_DEFER_INTS;
-
-  num = gh_scm2long (as_number);
-
-  /* Make new bgp object. */
-  bgp = bgp_create ();
-  bgp->as = num;
-
-  SCM_NEWCELL (cell);
-  SCM_SETCAR (cell, scm_tag_bgp);
-  SCM_SETCDR (cell, bgp);
-
-  SCM_ALLOW_INTS;
-
-  return cell;
-}
-
-#if 0
-SCM
-scm_router_bgp_list ()
-{
-  return NULL;
-}
-#endif
-
-void
-init_bgp ()
-{
-  void bgp_init ();
-
-  bgp_init ();
-
-  /* Initi types. */
-  scm_tag_bgp  = scm_newsmob (&bgp_funs);
-
-  gh_new_procedure ("router-bgp", scm_router_bgp, 1, 0, 0);
-  /* gh_new_procedure ("router-bgp-list", scm_router_bgp_list, 0, 0, 0); */
-}
diff -ruN zebra-0.89/guile/zebra-guile.c zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-guile.c
--- zebra-0.89/guile/zebra-guile.c	Wed Sep 27 05:09:40 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-guile.c	Wed Dec 31 19:00:00 1969
@@ -1,71 +0,0 @@
-/* Zebra guile interface.
-   Copyright (C) 1998, 99 Kunihiro Ishiguro
-
-This file is part of GNU Zebra.
-
-GNU Zebra is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-GNU Zebra is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Zebra; see the file COPYING.  If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
-
-#include <libguile.h>
-#include "zebra-guile.h"
-
-#include "zebra.h"
-#include "thread.h"
-
-struct thread *master;
-
-static void
-init_libzebra ()
-{
-  void cmd_init();
-  void vty_init();
-  void memory_init();
-
-  cmd_init (1);
-  vty_init ();
-  memory_init ();
-}
-
-/* Install scheme procudures. */
-void
-init_zebra_guile ()
-{
-  init_libzebra ();
-
-  init_bgp ();
-
-#if 0
-  init_zebra ();
-  init_rip ();
-  init_ospf ();
-#endif /* 0 */
-}
-
-static void
-inner_main (void *closure, int argc, char **argv)
-{
-  /* Install zebra related scheme procedures. */
-  init_zebra_guile ();
-
-  /* Invoke interpreter. */
-  scm_shell (argc, argv);
-}
-
-int
-main (int argc, char **argv)
-{
-  scm_boot_guile (argc, argv, inner_main, 0);
-  return 0;			/* Not reached */
-}
diff -ruN zebra-0.89/guile/zebra-guile.h zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-guile.h
--- zebra-0.89/guile/zebra-guile.h	Sun Apr 18 02:13:44 1999
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-guile.h	Wed Dec 31 19:00:00 1969
@@ -1,21 +0,0 @@
-/* Zebra guile header.
-   Copyright (C) 1999 Kunihiro Ishiguro
-
-This file is part of GNU Zebra.
-
-GNU Zebra is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-GNU Zebra is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Zebra; see the file COPYING.  If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
-
-void init_bgp ();
diff -ruN zebra-0.89/guile/zebra-support.c zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-support.c
--- zebra-0.89/guile/zebra-support.c	Sun Apr 18 02:01:26 1999
+++ zebra-0.89-cvs_20001015+rh_build_horms/guile/zebra-support.c	Wed Dec 31 19:00:00 1969
@@ -1,19 +0,0 @@
-/* Zebra guile interface support.
-   Copyright (C) 1999 Kunihiro Ishiguro
-
-This file is part of GNU Zebra.
-
-GNU Zebra is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-GNU Zebra is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Zebra; see the file COPYING.  If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
diff -ruN zebra-0.89/init/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/init/Makefile.am
--- zebra-0.89/init/Makefile.am	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/Makefile.am	Wed Sep 27 21:11:18 2000
@@ -0,0 +1,3 @@
+## Process this file with automake to produce Makefile.in.
+
+SUBDIRS = redhat
diff -ruN zebra-0.89/init/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/init/Makefile.in
--- zebra-0.89/init/Makefile.in	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/Makefile.in	Sun Oct 15 20:39:45 2000
@@ -0,0 +1,299 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AR = @AR@
+BGPD = @BGPD@
+CC = @CC@
+CPP = @CPP@
+CURSES = @CURSES@
+GUILE = @GUILE@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LDFLAGS = @GUILE_LDFLAGS@
+IF_METHOD = @IF_METHOD@
+IF_PROC = @IF_PROC@
+INCLUDES = @INCLUDES@
+IPFORWARD = @IPFORWARD@
+KERNEL_METHOD = @KERNEL_METHOD@
+LIBPAM = @LIBPAM@
+LIB_IPV6 = @LIB_IPV6@
+LIB_REGEX = @LIB_REGEX@
+MAKEINFO = @MAKEINFO@
+OSPF6D = @OSPF6D@
+OSPFD = @OSPFD@
+OTHER_METHOD = @OTHER_METHOD@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+RIPD = @RIPD@
+RIPNGD = @RIPNGD@
+RTREAD_METHOD = @RTREAD_METHOD@
+RT_METHOD = @RT_METHOD@
+VERSION = @VERSION@
+VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
+ZEBRA = @ZEBRA@
+
+SUBDIRS = redhat
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps init/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+	  rev="$$subdir $$rev"; \
+	  test "$$subdir" = "." && dot_seen=yes; \
+	done; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = init
+
+distdir: $(DISTFILES)
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+	for subdir in $(SUBDIRS); do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    chmod 777 $(distdir)/$$subdir; \
+	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+		distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -ruN zebra-0.89/init/redhat/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/Makefile.am
--- zebra-0.89/init/redhat/Makefile.am	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/Makefile.am	Sun Oct  8 22:20:55 2000
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in.
+
+EXTRA_DIST = bgpd.init ospf6d.init ospfd.init ripd.init ripngd.init zebra.init \
+  zebra.logrotate zebra.spec.in zebra.spec
diff -ruN zebra-0.89/init/redhat/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/Makefile.in
--- zebra-0.89/init/redhat/Makefile.in	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/Makefile.in	Sun Oct 15 20:39:46 2000
@@ -0,0 +1,198 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AR = @AR@
+BGPD = @BGPD@
+CC = @CC@
+CPP = @CPP@
+CURSES = @CURSES@
+GUILE = @GUILE@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LDFLAGS = @GUILE_LDFLAGS@
+IF_METHOD = @IF_METHOD@
+IF_PROC = @IF_PROC@
+INCLUDES = @INCLUDES@
+IPFORWARD = @IPFORWARD@
+KERNEL_METHOD = @KERNEL_METHOD@
+LIBPAM = @LIBPAM@
+LIB_IPV6 = @LIB_IPV6@
+LIB_REGEX = @LIB_REGEX@
+MAKEINFO = @MAKEINFO@
+OSPF6D = @OSPF6D@
+OSPFD = @OSPFD@
+OTHER_METHOD = @OTHER_METHOD@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+RIPD = @RIPD@
+RIPNGD = @RIPNGD@
+RTREAD_METHOD = @RTREAD_METHOD@
+RT_METHOD = @RT_METHOD@
+VERSION = @VERSION@
+VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
+ZEBRA = @ZEBRA@
+
+EXTRA_DIST = bgpd.init ospf6d.init ospfd.init ripd.init ripngd.init zebra.init   zebra.logrotate zebra.spec.in zebra.spec
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =  zebra.spec
+DIST_COMMON =  Makefile.am Makefile.in zebra.spec.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps init/redhat/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+zebra.spec: $(top_builddir)/config.status zebra.spec.in
+	cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = init/redhat
+
+distdir: $(DISTFILES)
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -ruN zebra-0.89/init/redhat/bgpd.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/bgpd.init
--- zebra-0.89/init/redhat/bgpd.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/bgpd.init	Sun Oct 15 19:55:39 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 20 84
+# description: A BGPv4, BGPv4+, BGPv4- routing engine for use with Zebra
+#
+# processname: bgpd
+# config: /etc/bgpd.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/bgpd.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting bgpd: "
+        daemon /usr/sbin/bgpd -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/bgpd
+	echo
+	;;
+  stop)
+	echo -n "Shutting down bgpd: "
+	killproc bgpd
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bgpd
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status bgpd
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: bgpd {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/ospf6d.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ospf6d.init
--- zebra-0.89/init/redhat/ospf6d.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ospf6d.init	Sun Oct 15 19:55:43 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 20 84
+# description: An OSPF routing engine for use with Zebra and IPv6
+#
+# processname: ospf6d
+# config: /etc/ospf6d.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/ospf6d.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting ospf6d: "
+        daemon /usr/sbin/ospf6d -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospf6d
+	echo
+	;;
+  stop)
+	echo -n "Shutting down ospf6d: "
+	killproc ospf6d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospf6d
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status ospf6d
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: ospf6d {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/ospfd.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ospfd.init
--- zebra-0.89/init/redhat/ospfd.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ospfd.init	Sun Oct 15 19:55:47 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 20 84
+# description: An OSPF v2 routing engine for use with Zebra
+#
+# processname: ospfd
+# config: /etc/ospfd.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/ospfd.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting ospfd: "
+        daemon /usr/sbin/ospfd -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospfd
+	echo
+	;;
+  stop)
+	echo -n "Shutting down ospfd: "
+	killproc ospfd
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospfd
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status ospfd
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: ospfd {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/ripd.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ripd.init
--- zebra-0.89/init/redhat/ripd.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ripd.init	Sun Oct 15 19:55:51 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 20 84
+# description: A RIP routing engine for use with Zebra
+#
+# processname: ripd
+# config: /etc/ripd.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/ripd.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting ripd: "
+        daemon /usr/sbin/ripd -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripd
+	echo
+	;;
+  stop)
+	echo -n "Shutting down ripd: "
+	killproc ripd
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripd
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status ripd
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: ripd {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/ripngd.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ripngd.init
--- zebra-0.89/init/redhat/ripngd.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/ripngd.init	Sun Oct 15 19:55:54 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 20 84
+# description: A RIP routing engine for use with Zebra and IPv6
+#
+# processname: ripngd
+# config: /etc/ripngd.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/ripngd.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting ripngd: "
+        daemon /usr/sbin/ripngd -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripngd
+	echo
+	;;
+  stop)
+	echo -n "Shutting down ripngd: "
+	killproc ripngd
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripngd
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status ripngd
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: ripngd {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/zebra.init zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.init
--- zebra-0.89/init/redhat/zebra.init	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.init	Sun Oct 15 19:55:57 2000
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# chkconfig: - 19 85
+# description: GNU Zebra routing manager
+#
+# processname: zebra
+# config: /etc/zebra.conf
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+
+[ -f /etc/zebra.conf ] || exit 0
+
+case "$1" in
+  start)
+	echo -n "Starting zebra: "
+        daemon /usr/sbin/zebra -d
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zebra
+	echo
+	;;
+  stop)
+	echo -n "Shutting down zebra: "
+	killproc zebra
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zebra
+	echo
+	;;
+  restart)
+        $0 stop
+        $0 start
+	RETVAL=$?
+        ;;
+  status)
+        status zebra
+	RETVAL=$?
+        ;;
+  *)
+	echo "Usage: zebra {start|stop|restart|status}"
+	exit 1
+esac
+
+exit $RETVAL
diff -ruN zebra-0.89/init/redhat/zebra.logrotate zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.logrotate
--- zebra-0.89/init/redhat/zebra.logrotate	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.logrotate	Mon Oct  2 17:45:54 2000
@@ -0,0 +1,39 @@
+/var/log/zebra/zebra.log {
+    notifempty
+    missingok
+    postrotate
+	/usr/bin/killall -USR1 zebra
+    endscript
+}
+
+/var/log/zebra/bgpd.log {
+    notifempty
+    missingok
+    postrotate
+	/usr/bin/killall -USR1 bgpd
+    endscript
+}
+
+/var/log/zebra/ospf6.log {
+    notifempty
+    missingok
+    postrotate
+	/usr/bin/killall -USR1 ospf6d
+    endscript
+}
+
+/var/log/zebra/rip.log {
+    notifempty
+    missingok
+    postrotate
+	/usr/bin/killall -USR1 ripd
+    endscript
+}
+
+/var/log/zebra/ripng.log {
+    notifempty
+    missingok
+    postrotate
+	/usr/bin/killall -USR1 ripng
+    endscript
+}
diff -ruN zebra-0.89/init/redhat/zebra.spec zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.spec
--- zebra-0.89/init/redhat/zebra.spec	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.spec	Sun Oct 15 20:39:38 2000
@@ -0,0 +1,120 @@
+%define version 0.89-cvs_20001015+rh_build_horms
+
+Summary:	Zebra routing engine
+Name:		zebra
+Version:	%{version}
+Release:	1
+Source:		zebra-%{version}.tar.gz
+URL:		http://www.zebra.org
+Copyright:	GPL
+Group:		System Environment/Daemons
+BuildRoot:	/tmp/zebra-%{version}-root
+
+%description
+GNU Zebra is free software (distributed under GNU Generic Public License)
+that manages TCP/IP based routing protocols. It supports BGP-4 protocol as
+described in RFC1771 (A Border Gateway Protocol 4) as well as RIPv1, RIPv2
+and OSPFv2. Unlike traditional, Gated based, monolithic architectures and
+even the so-called "new modular architectures" that remove the burden of
+processing routing functions from the cpu and utilize special ASIC chips
+instead, Zebra software offers true modularity.
+
+%prep
+%setup
+
+%build
+#./configure --enable-snmp --prefix=/usr --sysconfdir=/etc
+./configure --prefix=/usr --sysconfdir=/etc 
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+rm -f $RPM_BUILD_ROOT/usr/info/dir
+rm -f $RPM_BUILD_ROOT/usr/man/man8/ospf6*
+rm -f $RPM_BUILD_ROOT/usr/man/man8/ripng*
+strip $RPM_BUILD_ROOT/usr/sbin/*
+
+mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -m755 init/redhat/bgpd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/bgpd
+#install -m755 init/redhat/ospf6d.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospf6d
+install -m755 init/redhat/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
+install -m755 init/redhat/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
+#install -m755 init/redhat/ripngd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripngd
+install -m755 init/redhat/zebra.init $RPM_BUILD_ROOT/etc/rc.d/init.d/zebra 
+
+mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
+install -m644 init/redhat/zebra.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/zebra
+
+
+%post
+# zebra_spec_add_service <sercice name> <port/proto> <comment>
+# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
+
+zebra_spec_add_service ()
+{
+  # Add port /etc/services entry if it isn't already there 
+  if [ -f /etc/services ] && ! grep -q "^$1[^a-zA-Z0-9]" /etc/services ; then
+    echo "$1            $2              # $3"  >> /etc/services
+  fi
+}
+
+zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
+zebra_spec_add_service zebra    2601/tcp "zebra vty"
+zebra_spec_add_service ripd     2602/tcp "RIPd vty"
+zebra_spec_add_service ripngd   2603/tcp "RIPngd vty"
+zebra_spec_add_service ospfd    2604/tcp "OSPFd vty"
+zebra_spec_add_service bgpd     2605/tcp "BGPd vty"
+zebra_spec_add_service ospf6d   2606/tcp "OSPF6d vty"
+
+#Install info
+/sbin/install-info /usr/info/zebra.info /usr/info/dir
+
+if [ -x /sbin/chkconfig ]; then
+  chkconfig --add bgpd
+#  chkconfig --add ospf6d
+  chkconfig --add ospfd
+  chkconfig --add ripd
+#  chkconfig --add ripngd
+  chkconfig --add zebra
+fi
+
+
+%preun
+if [ "$1" = 0 ] ; then
+  /sbin/install-info --delete /usr/info/zebra.info /usr/info/dir
+
+  if [ -x /sbin/chkconfig ]; then
+    chkconfig --del bgpd
+#    chkconfig --del ospf6d
+    chkconfig --del ospfd
+    chkconfig --del ripd
+#    chkconfig --del ripngd
+    chkconfig --del zebra
+  fi
+fi
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_DIR/%{name}-%{version}
+
+%files
+%attr(-,root,root) %doc AUTHORS COPYING ChangeLog INSTALL NEWS README SERVICES TODO bgpd/bgpd.conf.sample ospfd/ospfd.conf.sample ripd/ripd.conf.sample zebra/zebra.conf.sample
+%attr(-,root,root) %config /etc/rc.d/init.d/*
+%attr(-,root,root) %config /etc/logrotate.d/*
+%attr(-,root,root) /usr/info/*
+%attr(-,root,root) /usr/man/*
+%attr(-,root,root) /usr/sbin/*
+
+%changelog
+* Tue Oct 3 2000 Horms <horms@vergenet.net>
+- Install and uninstall info in %post and %preun respectively
+- Moved chkconfig --del operations from %postun to %preun, as
+  chkconfig needs to run while the init files are still present on
+  the system.
+- Added logrotate script so logs won't grow without bound
+* Wed Sep 27 2000 Horms <horms@vergenet.net>
+- Add ports to /etc/services if they aren't there
+- forcibly remove $RPM_BUILD_ROOT/usr/info/dir and friends so
+  there is no error if it does not exist when rm is run.
+- Clean up the zebra build dir 
diff -ruN zebra-0.89/init/redhat/zebra.spec.in zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.spec.in
--- zebra-0.89/init/redhat/zebra.spec.in	Wed Dec 31 19:00:00 1969
+++ zebra-0.89-cvs_20001015+rh_build_horms/init/redhat/zebra.spec.in	Tue Oct  3 11:59:51 2000
@@ -0,0 +1,120 @@
+%define version @VERSION@
+
+Summary:	Zebra routing engine
+Name:		zebra
+Version:	%{version}
+Release:	1
+Source:		zebra-%{version}.tar.gz
+URL:		http://www.zebra.org
+Copyright:	GPL
+Group:		System Environment/Daemons
+BuildRoot:	/tmp/zebra-%{version}-root
+
+%description
+GNU Zebra is free software (distributed under GNU Generic Public License)
+that manages TCP/IP based routing protocols. It supports BGP-4 protocol as
+described in RFC1771 (A Border Gateway Protocol 4) as well as RIPv1, RIPv2
+and OSPFv2. Unlike traditional, Gated based, monolithic architectures and
+even the so-called "new modular architectures" that remove the burden of
+processing routing functions from the cpu and utilize special ASIC chips
+instead, Zebra software offers true modularity.
+
+%prep
+%setup
+
+%build
+#./configure --enable-snmp --prefix=/usr --sysconfdir=/etc
+./configure --prefix=/usr --sysconfdir=/etc 
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+rm -f $RPM_BUILD_ROOT/usr/info/dir
+rm -f $RPM_BUILD_ROOT/usr/man/man8/ospf6*
+rm -f $RPM_BUILD_ROOT/usr/man/man8/ripng*
+strip $RPM_BUILD_ROOT/usr/sbin/*
+
+mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -m755 init/redhat/bgpd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/bgpd
+#install -m755 init/redhat/ospf6d.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospf6d
+install -m755 init/redhat/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
+install -m755 init/redhat/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
+#install -m755 init/redhat/ripngd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripngd
+install -m755 init/redhat/zebra.init $RPM_BUILD_ROOT/etc/rc.d/init.d/zebra 
+
+mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
+install -m644 init/redhat/zebra.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/zebra
+
+
+%post
+# zebra_spec_add_service <sercice name> <port/proto> <comment>
+# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
+
+zebra_spec_add_service ()
+{
+  # Add port /etc/services entry if it isn't already there 
+  if [ -f /etc/services ] && ! grep -q "^$1[^a-zA-Z0-9]" /etc/services ; then
+    echo "$1            $2              # $3"  >> /etc/services
+  fi
+}
+
+zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
+zebra_spec_add_service zebra    2601/tcp "zebra vty"
+zebra_spec_add_service ripd     2602/tcp "RIPd vty"
+zebra_spec_add_service ripngd   2603/tcp "RIPngd vty"
+zebra_spec_add_service ospfd    2604/tcp "OSPFd vty"
+zebra_spec_add_service bgpd     2605/tcp "BGPd vty"
+zebra_spec_add_service ospf6d   2606/tcp "OSPF6d vty"
+
+#Install info
+/sbin/install-info /usr/info/zebra.info /usr/info/dir
+
+if [ -x /sbin/chkconfig ]; then
+  chkconfig --add bgpd
+#  chkconfig --add ospf6d
+  chkconfig --add ospfd
+  chkconfig --add ripd
+#  chkconfig --add ripngd
+  chkconfig --add zebra
+fi
+
+
+%preun
+if [ "$1" = 0 ] ; then
+  /sbin/install-info --delete /usr/info/zebra.info /usr/info/dir
+
+  if [ -x /sbin/chkconfig ]; then
+    chkconfig --del bgpd
+#    chkconfig --del ospf6d
+    chkconfig --del ospfd
+    chkconfig --del ripd
+#    chkconfig --del ripngd
+    chkconfig --del zebra
+  fi
+fi
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_DIR/%{name}-%{version}
+
+%files
+%attr(-,root,root) %doc AUTHORS COPYING ChangeLog INSTALL NEWS README SERVICES TODO bgpd/bgpd.conf.sample ospfd/ospfd.conf.sample ripd/ripd.conf.sample zebra/zebra.conf.sample
+%attr(-,root,root) %config /etc/rc.d/init.d/*
+%attr(-,root,root) %config /etc/logrotate.d/*
+%attr(-,root,root) /usr/info/*
+%attr(-,root,root) /usr/man/*
+%attr(-,root,root) /usr/sbin/*
+
+%changelog
+* Tue Oct 3 2000 Horms <horms@vergenet.net>
+- Install and uninstall info in %post and %preun respectively
+- Moved chkconfig --del operations from %postun to %preun, as
+  chkconfig needs to run while the init files are still present on
+  the system.
+- Added logrotate script so logs won't grow without bound
+* Wed Sep 27 2000 Horms <horms@vergenet.net>
+- Add ports to /etc/services if they aren't there
+- forcibly remove $RPM_BUILD_ROOT/usr/info/dir and friends so
+  there is no error if it does not exist when rm is run.
+- Clean up the zebra build dir 
diff -ruN zebra-0.89/lib/ChangeLog zebra-0.89-cvs_20001015+rh_build_horms/lib/ChangeLog
--- zebra-0.89/lib/ChangeLog	Mon Oct  2 20:46:40 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/ChangeLog	Sun Oct 15 19:52:02 2000
@@ -1,3 +1,18 @@
+2000-10-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
+
+	* keychain.c (keychain_get): Register key_delete_func to key
+	list's delete function.  Use linklist.c instead of newlist.c.
+
+2000-10-04  Akihiro Mizutani <mizutani@dml.com>
+
+	* filter.c (access_list_remark): Add access-list's remark command.
+	(no_access_list): "no access-list 100 permit any" error message
+	bug is fixed.
+
+2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
+
+	* memory.h (enum): Add MTYPE_SOCKUNION.
+
 2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
 
 	* zebra-0.89 is released.
diff -ruN zebra-0.89/lib/Makefile.in zebra-0.89-cvs_20001015+rh_build_horms/lib/Makefile.in
--- zebra-0.89/lib/Makefile.in	Wed Sep 27 06:03:11 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/Makefile.in	Sun Oct 15 20:39:41 2000
@@ -86,6 +86,7 @@
 RT_METHOD = @RT_METHOD@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
+VTYSH_MAN = @VTYSH_MAN@
 ZEBRA = @ZEBRA@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
@@ -129,7 +130,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(libzebra_a_SOURCES)
 OBJECTS = $(libzebra_a_OBJECTS)
@@ -215,13 +216,14 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
 	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 	  fi; \
 	done
+
 info-am:
 info: info-am
 dvi-am:
diff -ruN zebra-0.89/lib/filter.c zebra-0.89-cvs_20001015+rh_build_horms/lib/filter.c
--- zebra-0.89/lib/filter.c	Wed Jul  5 01:58:24 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/filter.c	Sun Oct  8 14:29:36 2000
@@ -27,6 +27,7 @@
 #include "memory.h"
 #include "command.h"
 #include "sockunion.h"
+#include "buffer.h"
 
 /* Filter element of access list */
 struct filter
@@ -256,6 +257,9 @@
   else
     list->head = access->next;
 
+  if (access->remark)
+    XFREE (MTYPE_TMP, access->remark);
+
   access_list_free (access);
 }
 
@@ -540,6 +544,31 @@
   return 0;
 }
 
+int
+vty_access_list_remark_unset (struct vty *vty, int family, char *name)
+{
+  struct access_list *access;
+
+  access = access_list_lookup (family, name);
+  if (! access)
+    {
+      vty_out (vty, "%% access-list %s doesn't exist%s", name,
+	       VTY_NEWLINE);
+      return CMD_WARNING;
+    }
+
+  if (access->remark)
+    {
+      XFREE (MTYPE_TMP, access->remark);
+      access->remark = NULL;
+    }
+
+  if (access->head == NULL && access->tail == NULL && access->remark == NULL)
+    access_list_delete (access);
+
+  return CMD_SUCCESS;
+}
+
 DEFUN (access_list, access_list_cmd,
        "access-list WORD (deny|permit) (A.B.C.D/M|any)",
        "Add an access list entry\n"
@@ -556,9 +585,9 @@
   struct prefix p;
 
   /* Check of filter type. */
-  if (strcmp (argv[1], "permit") == 0)
+  if (strncmp (argv[1], "p", 1) == 0)
     type = FILTER_PERMIT;
-  else if (strcmp (argv[1], "deny") == 0)
+  else if (strncmp (argv[1], "d", 1) == 0)
     type = FILTER_DENY;
   else
     {
@@ -567,7 +596,7 @@
     }
 
   /* "any" is special token of matching IP addresses.  */
-  if (strcmp (argv[2], "any") == 0)
+  if (strncmp (argv[2], "a", 1) == 0)
     filter = filter_make (NULL, type);
   else
     {
@@ -605,7 +634,7 @@
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "Prefix to match. e.g. 10.0.0.0/8\n"
-       "Do exact matching of prefixes\n")
+       "Exact match of the prefixes\n")
 
 DEFUN (no_access_list,
        no_access_list_cmd,
@@ -626,9 +655,9 @@
   int exact = 0;
 
   /* Check of filter type. */
-  if (strcmp (argv[1], "permit") == 0)
+  if (strncmp (argv[1], "p", 1) == 0)
     type = FILTER_PERMIT;
-  else if (strcmp (argv[1], "deny") == 0)
+  else if (strncmp (argv[1], "d", 1) == 0)
     type = FILTER_DENY;
   else
     {
@@ -640,7 +669,7 @@
   access = access_list_lookup (AF_INET, argv[0]);
   if (access == NULL)
     {
-      vty_out (vty, "access-list %s doesn't exist%s", argv[0],
+      vty_out (vty, "%% access-list %s doesn't exist%s", argv[0],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -649,7 +678,7 @@
     exact = 1;
 
   /* Check string format of prefix and prefixlen. */
-  if (strcmp (argv[2], "any") == 0)
+  if (strncmp (argv[2], "a", 1) == 0)
     filter = filter_lookup (access, NULL, type, exact);
   else
     {
@@ -665,13 +694,10 @@
   /* Looking up filter from access_list. */
   if (filter == NULL)
     {
-      char buf[BUFSIZ];
-
-      vty_out (vty, "access-list %s %s %s/%d doesn't exist%s", 
+      vty_out (vty, "%% access-list %s %s %s doesn't exist%s", 
 	       argv[0],
-	       argv[1],
-	       inet_ntop (p.family, &p.u.prefix, buf, BUFSIZ),
-	       p.prefixlen,
+	       strncmp (argv[1], "p", 1) == 0 ? "permit" : "deny",
+	       strncmp (argv[2], "a", 1) == 0 ? "any" : argv[2],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -691,7 +717,7 @@
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "Prefix to match. e.g. 10.0.0.0/8\n"
-       "Do exact matching of prefixes\n")
+       "Exact match of the prefixes\n")
 
 DEFUN (no_access_list_all,
        no_access_list_all_cmd,
@@ -706,7 +732,7 @@
   access = access_list_lookup (AF_INET, argv[0]);
   if (access == NULL)
     {
-      vty_out (vty, "access-list %s doesn't exist%s", argv[0],
+      vty_out (vty, "%% access-list %s doesn't exist%s", argv[0],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -717,6 +743,62 @@
   return CMD_SUCCESS;
 }
 
+DEFUN (access_list_remark,
+       access_list_remark_cmd,
+       "access-list WORD remark .LINE",
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+{
+  struct access_list *access;
+  struct buffer *b;
+  int i;
+
+  access = access_list_get (AF_INET, argv[0]);
+
+  if (access->remark)
+    {
+      XFREE (MTYPE_TMP, access->remark);
+      access->remark = NULL;
+    }
+
+  /* Below is remark get codes. */
+  b = buffer_new (BUFFER_STRING, 1024);
+  for (i = 1; i < argc; i++)
+    {
+      buffer_putstr (b, (u_char *)argv[i]);
+      buffer_putc (b, ' ');
+    }
+  buffer_putc (b, '\0');
+
+  access->remark = buffer_getstr (b);
+
+  buffer_free (b);
+
+  return CMD_SUCCESS;
+}
+
+DEFUN (no_access_list_remark,
+       no_access_list_remark_cmd,
+       "no access-list WORD remark",
+       NO_STR
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n")
+{
+  return vty_access_list_remark_unset (vty, AF_INET, argv[0]);
+}
+	
+ALIAS (no_access_list_remark,
+       no_access_list_remark_arg_cmd,
+       "no access-list WORD remark .LINE",
+       NO_STR
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+
 #ifdef HAVE_IPV6
 DEFUN (ipv6_access_list, ipv6_access_list_cmd,
        "ipv6 access-list WORD (deny|permit) (X:X::X:X/M|any)",
@@ -735,9 +817,9 @@
   struct prefix p;
 
   /* Check of filter type. */
-  if (strcmp (argv[1], "permit") == 0)
+  if (strncmp (argv[1], "p", 1) == 0)
     type = FILTER_PERMIT;
-  else if (strcmp (argv[1], "deny") == 0)
+  else if (strncmp (argv[1], "d", 1) == 0)
     type = FILTER_DENY;
   else
     {
@@ -746,7 +828,7 @@
     }
 
   /* "any" is special token of matching IP addresses.  */
-  if (strcmp (argv[2], "any") == 0)
+  if (strncmp (argv[2], "a", 1) == 0)
     filter = filter_make (NULL, type);
   else
     {
@@ -780,7 +862,7 @@
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "Prefix to match. e.g. 3ffe:506::/32\n"
-       "Do exact matching of prefixes\n")
+       "Exact match of the prefixes\n")
 
 DEFUN (no_ipv6_access_list,
        no_ipv6_access_list_cmd,
@@ -802,9 +884,9 @@
   int exact = 0;
 
   /* Check of filter type. */
-  if (strcmp (argv[1], "permit") == 0)
+  if (strncmp (argv[1], "p", 1) == 0)
     type = FILTER_PERMIT;
-  else if (strcmp (argv[1], "deny") == 0)
+  else if (strncmp (argv[1], "d", 1) == 0)
     type = FILTER_DENY;
   else
     {
@@ -816,7 +898,7 @@
   access = access_list_lookup (AF_INET6, argv[0]);
   if (access == NULL)
     {
-      vty_out (vty, "access-list %s doesn't exist%s", argv[0],
+      vty_out (vty, "%% access-list %s doesn't exist%s", argv[0],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -825,7 +907,7 @@
     exact = 1;
 
   /* Check string format of prefix and prefixlen. */
-  if (strcmp (argv[2], "any") == 0)
+  if (strncmp (argv[2], "a", 1) == 0)
     filter = filter_lookup (access, NULL, type, exact);
   else
     {
@@ -842,13 +924,10 @@
   /* Looking up filter from access_list. */
   if (filter == NULL)
     {
-      char buf[BUFSIZ];
-
-      vty_out (vty, "access-list %s %s %s/%d doesn't exist%s", 
+      vty_out (vty, "%% access-list %s %s %s doesn't exist%s", 
 	       argv[0],
-	       argv[1],
-	       inet_ntop (p.family, &p.u.prefix, buf, BUFSIZ),
-	       p.prefixlen,
+	       strncmp (argv[1], "p", 1) == 0 ? "permit" : "deny",
+	       strncmp (argv[2], "a", 1) == 0 ? "any" : argv[2],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -869,7 +948,7 @@
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "Prefix to match. e.g. 3ffe:506::/32\n"
-       "Do exact mathing of prefixes\n")
+       "Exact match of the prefixes\n")
 
 DEFUN (no_ipv6_access_list_all,
        no_ipv6_access_list_all_cmd,
@@ -885,7 +964,7 @@
   access = access_list_lookup (AF_INET6, argv[0]);
   if (access == NULL)
     {
-      vty_out (vty, "access-list %s doesn't exist%s", argv[0],
+      vty_out (vty, "%% access-list %s doesn't exist%s", argv[0],
 	       VTY_NEWLINE);
       return CMD_WARNING;
     }
@@ -895,6 +974,65 @@
 
   return CMD_SUCCESS;
 }
+
+DEFUN (ipv6_access_list_remark,
+       ipv6_access_list_remark_cmd,
+       "ipv6 access-list WORD remark .LINE",
+       IPV6_STR
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+{
+  struct access_list *access;
+  struct buffer *b;
+  int i;
+
+  access = access_list_get (AF_INET6, argv[0]);
+
+  if (access->remark)
+    {
+      XFREE (MTYPE_TMP, access->remark);
+      access->remark = NULL;
+    }
+
+  /* Below is remark get codes. */
+  b = buffer_new (BUFFER_STRING, 1024);
+  for (i = 1; i < argc; i++)
+    {
+      buffer_putstr (b, (u_char *)argv[i]);
+      buffer_putc (b, ' ');
+    }
+  buffer_putc (b, '\0');
+
+  access->remark = buffer_getstr (b);
+
+  buffer_free (b);
+
+  return CMD_SUCCESS;
+}
+
+DEFUN (no_ipv6_access_list_remark,
+       no_ipv6_access_list_remark_cmd,
+       "no ipv6 access-list WORD remark",
+       NO_STR
+       IPV6_STR
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n")
+{
+  return vty_access_list_remark_unset (vty, AF_INET6, argv[0]);
+}
+	
+ALIAS (no_ipv6_access_list_remark,
+       no_ipv6_access_list_remark_arg_cmd,
+       "no ipv6 access-list WORD remark .LINE",
+       NO_STR
+       IPV6_STR
+       "Add an access list entry\n"
+       "Access-list name\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
 #endif /* HAVE_IPV6 */
 
 /* Configuration write function. */
@@ -913,54 +1051,76 @@
     return 0;
 
   for (access = master->num.head; access; access = access->next)
-    for (filter = access->head; filter; filter = filter->next)
-      {
-	p = &filter->prefix;
-
-	if (filter->any)
-	  vty_out (vty,
-		   "%saccess-list %s %s any%s", 
-		   family == AF_INET ? "" : "ipv6 ",
-		   access->name,
-		   filter_type_str (filter),
-		   VTY_NEWLINE);
-	else
-	  vty_out (vty,
-		   "%saccess-list %s %s %s/%d%s%s", 
+    {
+      if (access->remark)
+	{
+	  vty_out (vty, "%saccess-list %s remark %s%s",
 		   family == AF_INET ? "" : "ipv6 ",
-		   access->name,
-		   filter_type_str (filter),
-		   inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
-		   p->prefixlen,
-		   filter->exact ? " exact-match" : "",
+		   access->name, access->remark,
 		   VTY_NEWLINE);
-	write++;
-      }
+	  write++;
+	}
+
+      for (filter = access->head; filter; filter = filter->next)
+	{
+	  p = &filter->prefix;
+
+	  if (filter->any)
+	    vty_out (vty,
+	  	     "%saccess-list %s %s any%s", 
+		     family == AF_INET ? "" : "ipv6 ",
+		     access->name,
+		     filter_type_str (filter),
+		     VTY_NEWLINE);
+	  else
+	    vty_out (vty,
+		     "%saccess-list %s %s %s/%d%s%s", 
+		     family == AF_INET ? "" : "ipv6 ",
+		     access->name,
+		     filter_type_str (filter),
+		     inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
+		     p->prefixlen,
+		     filter->exact ? " exact-match" : "",
+		     VTY_NEWLINE);
+	  write++;
+	}
+    }
 
   for (access = master->str.head; access; access = access->next)
-    for (filter = access->head; filter; filter = filter->next)
-      {
-	p = &filter->prefix;
-
-	if (filter->any)
-	  vty_out (vty,
-		   "%saccess-list %s %s any%s", 
-		   family == AF_INET ? "" : "ipv6 ",
-		   access->name,
-		   filter_type_str (filter),
-		   VTY_NEWLINE);
-	else
-	  vty_out (vty, 
-		   "%saccess-list %s %s %s/%d%s%s", 
-		   family == AF_INET ? "" : "ipv6 ",
-		   access->name,
-		   filter_type_str (filter),
-		   inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
-		   p->prefixlen,
-		   filter->exact ? " exact-match" : "",
+    {
+      if (access->remark)
+	{
+	  vty_out (vty, "%saccess-list %s remark %s%s",
+	  	   family == AF_INET ? "" : "ipv6 ",
+		   access->name, access->remark,
 		   VTY_NEWLINE);
-	write++;
-      }
+	  write++;
+	}
+
+      for (filter = access->head; filter; filter = filter->next)
+	{
+	  p = &filter->prefix;
+
+	  if (filter->any)
+	    vty_out (vty,
+	  	     "%saccess-list %s %s any%s", 
+		     family == AF_INET ? "" : "ipv6 ",
+		     access->name,
+		     filter_type_str (filter),
+		     VTY_NEWLINE);
+	  else
+	    vty_out (vty, 
+	  	     "%saccess-list %s %s %s/%d%s%s", 
+		     family == AF_INET ? "" : "ipv6 ",
+		     access->name,
+		     filter_type_str (filter),
+		     inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ),
+		     p->prefixlen,
+		     filter->exact ? " exact-match" : "",
+		     VTY_NEWLINE);
+	  write++;
+        }
+    }
   return write;
 }
 
@@ -1015,9 +1175,12 @@
 
   install_element (CONFIG_NODE, &access_list_exact_cmd);
   install_element (CONFIG_NODE, &access_list_cmd);
+  install_element (CONFIG_NODE, &access_list_remark_cmd);
   install_element (CONFIG_NODE, &no_access_list_exact_cmd);
   install_element (CONFIG_NODE, &no_access_list_cmd);
   install_element (CONFIG_NODE, &no_access_list_all_cmd);
+  install_element (CONFIG_NODE, &no_access_list_remark_cmd);
+  install_element (CONFIG_NODE, &no_access_list_remark_arg_cmd);
 }
 
 #ifdef HAVE_IPV6
@@ -1070,9 +1233,12 @@
 
   install_element (CONFIG_NODE, &ipv6_access_list_exact_cmd);
   install_element (CONFIG_NODE, &ipv6_access_list_cmd);
+  install_element (CONFIG_NODE, &ipv6_access_list_remark_cmd);
   install_element (CONFIG_NODE, &no_ipv6_access_list_exact_cmd);
   install_element (CONFIG_NODE, &no_ipv6_access_list_cmd);
   install_element (CONFIG_NODE, &no_ipv6_access_list_all_cmd);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_cmd);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_arg_cmd);
 }
 #endif /* HAVE_IPV6 */
 
diff -ruN zebra-0.89/lib/filter.h zebra-0.89-cvs_20001015+rh_build_horms/lib/filter.h
--- zebra-0.89/lib/filter.h	Tue Apr 18 05:33:24 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/filter.h	Sun Oct  8 14:29:36 2000
@@ -43,6 +43,7 @@
 struct access_list
 {
   char *name;
+  char *remark;
 
   struct access_master *master;
 
diff -ruN zebra-0.89/lib/keychain.c zebra-0.89-cvs_20001015+rh_build_horms/lib/keychain.c
--- zebra-0.89/lib/keychain.c	Sun Sep 10 13:38:16 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/keychain.c	Sun Oct 15 19:52:02 2000
@@ -23,11 +23,11 @@
 
 #include "command.h"
 #include "memory.h"
-#include "newlist.h"
+#include "linklist.h"
 #include "keychain.h"
 
 /* Master list of key chain. */
-struct newlist *keychain_list;
+struct list *keychain_list;
 
 struct keychain *
 keychain_new ()
@@ -62,13 +62,13 @@
 struct keychain *
 keychain_lookup (char *name)
 {
-  struct newnode *nn;
+  struct listnode *nn;
   struct keychain *keychain;
 
   if (name == NULL)
     return NULL;
 
-  NEWLIST_LOOP (keychain_list, keychain, nn)
+  LIST_LOOP (keychain_list, keychain, nn)
     {
       if (strcmp (keychain->name, name) == 0)
 	return keychain;
@@ -76,6 +76,14 @@
   return NULL;
 }
 
+void
+key_delete_func (struct key *key)
+{
+  if (key->string)
+    free (key->string);
+  key_free (key);
+}
+
 struct keychain *
 keychain_get (char *name)
 {
@@ -88,38 +96,31 @@
 
   keychain = keychain_new ();
   keychain->name = strdup (name);
-  keychain->key = newlist_new ();
-  newnode_add (keychain_list, keychain);
+  keychain->key = list_new ();
+  keychain->key->del = (void (*)(void *)) key_delete_func;
+  listnode_add (keychain_list, keychain);
 
   return keychain;
 }
 
 void
-key_delete_func (struct key *key)
-{
-  if (key->string)
-    free (key->string);
-  key_free (key);
-}
-
-void
 keychain_delete (struct keychain *keychain)
 {
   if (keychain->name)
     free (keychain->name);
 
-  newlist_delete (keychain->key);
-  newnode_delete (keychain_list, keychain);
+  list_delete (keychain->key);
+  listnode_delete (keychain_list, keychain);
   keychain_free (keychain);
 }
 
 struct key *
 key_lookup (struct keychain *keychain, u_int32_t index)
 {
-  struct newnode *nn;
+  struct listnode *nn;
   struct key *key;
 
-  NEWLIST_LOOP (keychain->key, key, nn)
+  LIST_LOOP (keychain->key, key, nn)
     {
       if (key->index == index)
 	return key;
@@ -130,13 +131,13 @@
 struct key *
 key_lookup_for_accept (struct keychain *keychain, u_int32_t index)
 {
-  struct newnode *nn;
+  struct listnode *nn;
   struct key *key;
   time_t now;
 
   now = time (NULL);
 
-  NEWLIST_LOOP (keychain->key, key, nn)
+  LIST_LOOP (keychain->key, key, nn)
     {
       if (key->index == index)
 	{
@@ -154,13 +155,13 @@
 struct key *
 key_match_for_accept (struct keychain *keychain, char *auth_str)
 {
-  struct newnode *nn;
+  struct listnode *nn;
   struct key *key;
   time_t now;
 
   now = time (NULL);
 
-  NEWLIST_LOOP (keychain->key, key, nn)
+  LIST_LOOP (keychain->key, key, nn)
     {
       if (key->accept.start == 0 ||
 	  (key->accept.start <= now &&
@@ -174,13 +175,13 @@
 struct key *
 key_lookup_for_send (struct keychain *keychain)
 {
-  struct newnode *nn;
+  struct listnode *nn;
   struct key *key;
   time_t now;
 
   now = time (NULL);
 
-  NEWLIST_LOOP (keychain->key, key, nn)
+  LIST_LOOP (keychain->key, key, nn)
     {
       if (key->send.start == 0)
 	return key;
@@ -204,7 +205,7 @@
 
   key = key_new ();
   key->index = index;
-  newnode_add (keychain->key, key);
+  listnode_add (keychain->key, key);
 
   return key;
 }
@@ -212,7 +213,7 @@
 void
 key_delete (struct keychain *keychain, struct key *key)
 {
-  newnode_delete (keychain->key, key);
+  listnode_delete (keychain->key, key);
 
   if (key->string)
     free (key->string);
@@ -886,15 +887,15 @@
 {
   struct keychain *keychain;
   struct key *key;
-  struct newnode *nn;
-  struct newnode *nm;
+  struct listnode *nn;
+  struct listnode *nm;
   char buf[BUFSIZ];
 
-  NEWLIST_LOOP (keychain_list, keychain, nn)
+  LIST_LOOP (keychain_list, keychain, nn)
     {
       vty_out (vty, "key chain %s%s", keychain->name, VTY_NEWLINE);
       
-      NEWLIST_LOOP (keychain->key, key, nm)
+      LIST_LOOP (keychain->key, key, nm)
 	{
 	  vty_out (vty, " key %d%s", key->index, VTY_NEWLINE);
 
@@ -945,8 +946,7 @@
 void
 keychain_init ()
 {
-  keychain_list = newlist_new ();
-  keychain_list->del = (void (*)(void *)) key_delete_func;
+  keychain_list = list_new ();
 
   install_node (&keychain_node, keychain_config_write);
   install_node (&keychain_key_node, NULL);
diff -ruN zebra-0.89/lib/keychain.h zebra-0.89-cvs_20001015+rh_build_horms/lib/keychain.h
--- zebra-0.89/lib/keychain.h	Fri Sep  8 13:22:20 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/keychain.h	Sun Oct 15 19:52:02 2000
@@ -26,7 +26,7 @@
 {
   char *name;
 
-  struct newlist *key;
+  struct list *key;
 };
 
 struct key_range
diff -ruN zebra-0.89/lib/linklist.c zebra-0.89-cvs_20001015+rh_build_horms/lib/linklist.c
--- zebra-0.89/lib/linklist.c	Sun Oct  1 20:18:05 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/linklist.c	Sun Oct 15 19:52:02 2000
@@ -24,6 +24,17 @@
 #include "linklist.h"
 #include "memory.h"
 
+/* Compatibility note for newlist.c 
+
+newlist_new () -> list_new()
+
+newnode_add () -> list_add_sort_node ()
+                  list_add_node ()
+newnode_delete () -> listnode_delete ()
+newlist_delete () -> list_delete ()
+
+*/
+
 /* Initialize linked list : allocate memory and return list */
 struct list *
 list_init ()
@@ -35,6 +46,16 @@
   return new;
 }
 
+struct list *
+list_new ()
+{
+  struct list *new;
+
+  new = XMALLOC (MTYPE_LINK_LIST, sizeof (struct list));
+  memset (new, 0, sizeof (struct list));
+  return new;
+}
+
 /* Free given list and decrement allocation counter. */
 void
 list_free (struct list *list)
@@ -61,6 +82,26 @@
   XFREE (MTYPE_LINK_NODE, n);
 }
 
+/* Add new data to the list. */
+void
+listnode_add (struct list *list, void *val)
+{
+  struct listnode *node;
+
+  node = listnode_new ();
+  /* node->next = NULL;  This is set in listnode_new(). */
+  node->prev = list->tail;
+  node->data = val;
+
+  if (list_isempty (list))
+    list->head = node;
+  else
+    list->tail->next = node;
+  list->tail = node;
+
+  list->count++;
+}
+
 /* Add new data to the list. */
 void
 list_add_node (struct list *list, void *val)
diff -ruN zebra-0.89/lib/linklist.h zebra-0.89-cvs_20001015+rh_build_horms/lib/linklist.h
--- zebra-0.89/lib/linklist.h	Sun Oct  1 16:19:34 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/linklist.h	Sun Oct 15 19:52:02 2000
@@ -38,7 +38,7 @@
   struct listnode *tail;
   unsigned int count;
   int (*cmp) (void *val1, void *val2);
-  int (*del) (void *val);
+  void (*del) (void *val);
 };
 
 #define nextnode(X) ((X) = (X)->next)
@@ -48,7 +48,9 @@
 #define getdata(X) ((X)->data)
 
 list list_init();
+struct list *list_new();
 listnode list_lookup_node (list, void *);
+void listnode_add (list, void *);
 void list_add_node (list, void *);
 void list_add_sort_node (list, void *);
 void list_add_node_prev (list, listnode, void *);
diff -ruN zebra-0.89/lib/memory.h zebra-0.89-cvs_20001015+rh_build_horms/lib/memory.h
--- zebra-0.89/lib/memory.h	Fri Sep 22 20:27:27 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/memory.h	Sun Oct  8 14:29:36 2000
@@ -146,6 +146,7 @@
   MTYPE_RIP_DISTANCE,
   MTYPE_BGP_DISTANCE,
   MTYPE_OSPF_DISTANCE,
+  MTYPE_SOCKUNION,
   MTYPE_MAX
 };
 
diff -ruN zebra-0.89/lib/sockunion.c zebra-0.89-cvs_20001015+rh_build_horms/lib/sockunion.c
--- zebra-0.89/lib/sockunion.c	Thu Sep  7 19:21:56 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/sockunion.c	Sun Oct  8 14:29:36 2000
@@ -181,7 +181,7 @@
   int ret;
   union sockunion *su;
 
-  su = XMALLOC (MTYPE_TMP, sizeof (union sockunion));
+  su = XMALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
   memset (su, 0, sizeof (union sockunion));
 
   ret = inet_pton (AF_INET, str, &su->sin.sin_addr);
@@ -205,7 +205,7 @@
     }
 #endif /* HAVE_IPV6 */
 
-  XFREE (0, su);
+  XFREE (MTYPE_SOCKUNION, su);
   return NULL;
 }
 
diff -ruN zebra-0.89/lib/version.h zebra-0.89-cvs_20001015+rh_build_horms/lib/version.h
--- zebra-0.89/lib/version.h	Mon Oct  2 20:44:09 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/lib/version.h	Sun Oct 15 20:39:23 2000
@@ -23,7 +23,7 @@
 #ifndef _ZEBRA_VERSION_H
 #define _ZEBRA_VERSION_H
 
-#define ZEBRA_VERSION     "0.89"
+#define ZEBRA_VERSION     "0.89-cvs_20001015+rh_build_horms"
 
 #define ZEBRA_BUG_ADDRESS "bug-zebra@gnu.org"
 
diff -ruN zebra-0.89/ospf6d/ChangeLog zebra-0.89-cvs_20001015+rh_build_horms/ospf6d/ChangeLog
--- zebra-0.89/ospf6d/ChangeLog	Mon Oct  2 20:45:42 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/ospf6d/ChangeLog	Wed Dec 31 19:00:00 1969
@@ -1,184 +0,0 @@
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* zebra-0.89 is released.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_lsdb.c (ospf6_lsdb_remove_maxage_lsa): Fix compile
-	warnings.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* zebra-0.88 is released.
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_rtable.h (struct ospf6_nexthop): Change ifindex type from
-	unsigned long to unsigned int.
-
-2000-04-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6d.h: Include some headers for avoid warning.
-
-	* ospf6_routemap.h: Add newfile.
-
-1999-11-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_network.c: Respect IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP
-	rather than RFC2133.
-
-1999-10-21  Jun-ichiro itojun Hagino <itojun@itojun.org>
-
-	* ospf6_network.c (ospf6_ipv6_decode_ipv4): Fix bug of conversion
-	from IPv4 Mapped Address to IPv4 address.
-
-1999-08-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_lsa.c (construct_link_lsa): Enclose KAME specific part by
-	#ifdef/#endif.
-
-1999-07-29  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-	* ospf6_mesg.c: add new message process function.
-
-1999-07-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_main.c (sighup): Call of log_rotate() removed.
-
-1999-07-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-	ospf6_dbex.{c,h}: variable "acknowledge" has been deleted.
-
-1999-07-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-	* *.{c,h}: lsa data structure has been drastically
-	changed.
-
-1999-07-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-	* *.{c,h}: bug of updating LSA's which is self
-	originated has been fixed.
-
-1999-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-	* *.{c,h} : log clean up.
-
-1999-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6d.c (ospf6_init): Change to use install_default.
-
-1999-07-03  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	* ospf6_rtable.c (nexthop_*): added some function that handles
-	new nexthop structure.
-
-1999-07-01  Rick Payne <rickp@rossfell.co.uk>
-
-	* ospf6_zebra.c (ospf6_zebra_init): Install standard commands to
-	ZEBRA_NODE.
-
-1999-06-09  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	* ospf6_rtable.h: added for new routing table of ospf6d
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-	* ospf6_main.c (signal_init): SIGTERM call sigint.
-	(sigint): Loggging more better message.
-
-1999-05-13  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	*ospf6_spf.c (get_prefix_lsa_of_vertex): bug fix about network vertex.
-
-1999-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_network.c (send_linkstate_ack): Check HAVE_SIN6_SCOPE_ID
-	is defined.
-	* ospf6_mesg.c (make_hello): Likewise.
-	* ospf6_lsa.c (lsa_flood): Likewise.
-
-1999-05-07  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	* ospf6_spf.c, etc: Many bug fix.
-        intra-area-prefix-LSA treatment changed.
-        network byte order of neighbor ifid changed.
-
-1999-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_zebra.h (struct zebra): Add hitory entry to structure.
-
-1999-05-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_main.c (main): Add KAME check for binding vty socket.
-	(main): Delete old interface get routine garbage.
-
-	* ospf6d.c: Change all `show ip6' statement to `show ipv6'.
-	(show_ipv6_ospf6_requestlist): Add description.
-
-1999-05-04  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	* ospf6_lsa.c, etc: Many bug fix, now two routers
-	on the same segment can become FULL neighbor state
-	each other.
-
-1999-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* Makefile.am: Add file dependency.
-	(depend): Add target.
-
-1999-05-02  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-	* Clean up and fix have been almost done. This code
-	now testing stage of Intra area routing.
-
-	* Configuration Vty become more similar to Cisco.
-
-1999-04-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* Trim training newline from zlog format arguemnt.
-	
-	* ospf6_dump.c (ospf6_err): Commented out ospf6_err and
-	ospf6_warn.  Same kind of function should be implemented as
-	zlog_err or zlog_warn or someting.
-
-	* ospf6d.c: Change OSPF_NODE to OSPF6_NODE.
-	Change OSPF_DEFAULT_CONFIG to OSPF6_DEFAULT_CONFIG.
-	
-
-1999-04-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_mesg.c (make_hello): Add check of SIN6_LEN
-
-1999-04-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* ospf6_neighbor.c: Change list_clear_all to list_delete_all_node.
-	Remove list_delete_all fuction and use lib/linklist.c's one.
-	
-1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* mcast_join(),mcast_leave()'s argument socket length is removed.
-
-1999-04-08    <kunihiro@zebra.org>
-
-	* ospf6_zebra.h (ospf_zebra_read): Fix typo.
-
-	* ospf6_interface.h: Tempolary add struct rt_addrinfo.
-
-1999-03-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* Merge from ospfd-zebra-990303 codes.
-
-1999-02-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-	* Makefile.in: add new file.
-
-	* Makefile.am: @INCLUDES@ is added for OS/library specific IPv6
-	directory search.
-
-	* Import files from Yasuhiro Ohara <yasu@sfc.wide.ad.jp>'s ospfd.
-	Impterted files are:
-	Makefile.am, ospf_area.h, ospf_dump.c, ospf_interface.c,
-	ospf_interface.h, ospf_lsa.c, ospf_lsa.h, ospf_main.c,
-	ospf_mesg.c, ospf_mesg.h, ospf_neighbor.c,
-	ospf_neighbor.h,ospf_network.c, ospf_network.h, ospf_proto.h,
-	ospf_spf.c, ospf_spf.h, ospf_types.h, ospfd.c, ospfd.h
diff -ruN zebra-0.89/ospf6d/Makefile.am zebra-0.89-cvs_20001015+rh_build_horms/ospf6d/Makefile.am
--- zebra-0.89/ospf6d/Makefile.am	Thu Aug 17 04:27:37 2000
+++ zebra-0.89-cvs_20001015+rh_build_horms/ospf6d/Makefile.am	Wed Dec 31 19:00:00 1969
@@ -1,245 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA=@INSTALL@ -m 600
-
-noinst_LIBRARIES = libospf6.a
-sbin_PROGRAMS = ospf6d
-
-libospf6_a_SOURCES = \
-	ospf6_dump.c ospf6d.c ospf6_interface.c ospf6_network.c \
-	ospf6_neighbor.c ospf6_mesg.c ospf6_lsa.c ospf6_spf.c \
-	ospf6_rtable.c ospf6_zebra.c ospf6_ism.c ospf6_dbex.c \
-	ospf6_lsdb.c ospf6_prefix.c ospf6_top.c ospf6_area.c ospf6_nsm.c \
-	ospf6_redistribute.c ospf6_routemap.c ospf6_list.c
-
-noinst_HEADERS = \
-	ospf6_area.h ospf6_dump.h ospf6_interface.h ospf6_lsa.h \
-	ospf6_mesg.h ospf6_neighbor.h ospf6_network.h ospf6_proto.h \
-	ospf6_spf.h ospf6_rtable.h ospf6_types.h ospf6_zebra.h ospf6d.h \
-	ospf6_rtable.h ospf6_ism.h ospf6_dbex.h ospf6_lsdb.h ospf6_prefix.h \
-	ospf6_top.h ospf6_nsm.h ospf6_redistribute.h ospf6_routemap.h \
-	ospf6_list.h
-
-ospf6d_SOURCES = \
-	ospf6_main.c $(libospf6_a_SOURCES)
-
-ospf6d_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = ospf6d.conf.sample
-
-EXTRA_DIST = $(sysconf_DATA)
-
-install-sysconfDATA: $(sysconf_DATA)
-	@$(NORMAL_INSTALL)
-	$(mkinstalldirs) $(DESTDIR)$(sysconfdir)
-	@list='$(sysconf_DATA)'; for p in $$list; do \
-	  if test -f $(srcdir)/$$p; then \
-	    echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
-	    $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR