There is no need to keep this directory.
diff --git a/isisd/modified/.cvsignore b/isisd/modified/.cvsignore
deleted file mode 100644
index 73bcf19..0000000
--- a/isisd/modified/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.arch-inventory
-.arch-ids
-
diff --git a/isisd/modified/Makefile.am b/isisd/modified/Makefile.am
deleted file mode 100644
index 65ba16b..0000000
--- a/isisd/modified/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @ISISD@ \
-	@VTYSH@ doc
-
-EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
-	vtysh/Makefile.am update-autotools
-
-dist-hook:
-	mkdir $(distdir)/tools
-	cp -p $(srcdir)/tools/*.pl $(distdir)/tools
-	cp -p $(srcdir)/tools/*.el $(distdir)/tools
-	cp -p $(srcdir)/tools/*.cgi $(distdir)/tools
-	mkdir $(distdir)/init
-	mkdir $(distdir)/init/redhat
-	cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat
-	cp -p $(srcdir)/init/redhat/zebra.* $(distdir)/init/redhat
diff --git a/isisd/modified/Makefile.in b/isisd/modified/Makefile.in
deleted file mode 100644
index 6e13617..0000000
--- a/isisd/modified/Makefile.in
+++ /dev/null
@@ -1,462 +0,0 @@
-# Makefile.in generated by automake 1.6.2 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# 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.
-
-@SET_MAKE@
-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
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-INCLUDES = @INCLUDES@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-ISISD = @ISISD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-
-SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @ISISD@ \
-	@VTYSH@ doc
-
-
-EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
-	vtysh/Makefile.am update-autotools
-
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
-	uninstall-info-recursive all-recursive install-data-recursive \
-	install-exec-recursive installdirs-recursive install-recursive \
-	uninstall-recursive check-recursive installcheck-recursive
-DIST_COMMON = README AUTHORS COPYING COPYING.LIB ChangeLog INSTALL \
-	Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
-	config.guess config.h.in config.sub configure configure.in \
-	depcomp install-sh missing mkinstalldirs
-DIST_SUBDIRS = $(SUBDIRS)
-all: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log
-$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign  Makefile
-Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
-	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
-
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-	cd $(srcdir) && $(AUTOCONF)
-
-$(ACLOCAL_M4):  configure.in 
-	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
-	@if test ! -f $@; then \
-	  rm -f stamp-h1; \
-	  $(MAKE) stamp-h1; \
-	else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/config.h.in:  $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
-	cd $(top_srcdir) && $(AUTOHEADER)
-	touch $(srcdir)/config.h.in
-
-distclean-hdr:
-	-rm -f config.h stamp-h1
-uninstall-info-am:
-
-# 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.
-$(RECURSIVE_TARGETS):
-	@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; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	mkid -fID $$unique
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(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) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '    { files[$$0] = 1; } \
-	       END { for (i in files) print i; }'`; \
-	test -z "$(ETAGS_ARGS)$$tags$$unique" \
-	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	     $$tags $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
-  { test ! -d $(distdir) \
-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distcleancheck_listfiles = find . -type f -print
-
-distdir: $(DISTFILES)
-	$(am__remove_distdir)
-	mkdir $(distdir)
-	$(mkinstalldirs) $(distdir)/vtysh
-	@list='$(DISTFILES)'; for file in $$list; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-	    dir="/$$dir"; \
-	    $(mkinstalldirs) "$(distdir)$$dir"; \
-	  else \
-	    dir=''; \
-	  fi; \
-	  if test -d $$d/$$file; then \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test -d $(distdir)/$$subdir \
-	    || mkdir $(distdir)/$$subdir \
-	    || exit 1; \
-	    (cd $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$(top_distdir)" \
-	        distdir=../$(distdir)/$$subdir \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="${top_distdir}" distdir="$(distdir)" \
-	  dist-hook
-	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r $(distdir)
-dist-gzip: distdir
-	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
-
-dist dist-all: distdir
-	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	$(am__remove_distdir)
-	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
-	mkdir $(distdir)/=build
-	mkdir $(distdir)/=inst
-	chmod a-w $(distdir)
-	dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
-	  && cd $(distdir)/=build \
-	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
-	      || { echo "ERROR: files left after uninstall:" ; \
-	           find $$dc_install_base -type f -print ; \
-	           exit 1; } >&2 ) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
-	  && rm -f $(distdir).tar.gz \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
-	$(am__remove_distdir)
-	@echo "$(distdir).tar.gz is ready for distribution" | \
-	  sed 'h;s/./=/g;p;x;p;x'
-distcleancheck: distclean
-	if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h
-installdirs: installdirs-recursive
-installdirs-am:
-
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-recursive
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf autom4te.cache
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-uninstall-am: uninstall-info-am
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
-	clean-generic clean-recursive dist dist-all dist-gzip distcheck \
-	distclean distclean-generic distclean-hdr distclean-recursive \
-	distclean-tags distcleancheck distdir dvi dvi-am dvi-recursive \
-	info info-am info-recursive install install-am install-data \
-	install-data-am install-data-recursive install-exec \
-	install-exec-am install-exec-recursive install-info \
-	install-info-am install-info-recursive install-man \
-	install-recursive install-strip installcheck installcheck-am \
-	installdirs installdirs-am installdirs-recursive \
-	maintainer-clean maintainer-clean-generic \
-	maintainer-clean-recursive mostlyclean mostlyclean-generic \
-	mostlyclean-recursive tags tags-recursive uninstall \
-	uninstall-am uninstall-info-am uninstall-info-recursive \
-	uninstall-recursive
-
-
-dist-hook:
-	mkdir $(distdir)/tools
-	cp -p $(srcdir)/tools/*.pl $(distdir)/tools
-	cp -p $(srcdir)/tools/*.el $(distdir)/tools
-	cp -p $(srcdir)/tools/*.cgi $(distdir)/tools
-	mkdir $(distdir)/init
-	mkdir $(distdir)/init/redhat
-	cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat
-	cp -p $(srcdir)/init/redhat/zebra.* $(distdir)/init/redhat
-# 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 --git a/isisd/modified/README b/isisd/modified/README
deleted file mode 100644
index 0b29953..0000000
--- a/isisd/modified/README
+++ /dev/null
@@ -1,4 +0,0 @@
-cp config.h.in acconfig.h configure.in Makefile.am Makefile.in configure ../../
-cp command.h command.c memory.c memory.h log.h log.c vty.c ../../lib/
-cp thread.h thread.c zebra.h ../../lib
-cp rib.c ../../zebra/
diff --git a/isisd/modified/acconfig.h b/isisd/modified/acconfig.h
deleted file mode 100644
index 002666b..0000000
--- a/isisd/modified/acconfig.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* accconfig.h -- `autoheader' will generate config.h.in for zebra.
-   Copyright (C) 1998, 1999 Kunihiro Ishiguro <kunihiro@zebra.org> */
-
-/* Version of GNU Zebra */
-#undef VERSION
-
-/* Solaris on x86. */
-#undef SOLARIS_X86
-
-/* Package name of GNU Zebra */
-#undef PACKAGE
-
-/* Define if host is GNU/Linux */
-#undef GNU_LINUX
-
-/* Define if you have the AF_ROUTE socket.  */
-#undef HAVE_AF_ROUTE
-
-/* Define if you have the inet_aton function.  */
-#undef HAVE_INET_ATON
-
-/* Define if you have the inet_ntop function.  */
-#undef HAVE_INET_NTOP
-
-/* Define if you have the inet_pton function.  */
-#undef HAVE_INET_PTON
-
-/* Define if you have the setproctitle function.  */
-#undef HAVE_SETPROCTITLE
-
-/* Define if you have ipv6 stack.  */
-#undef HAVE_IPV6
-
-/* Define if you wish to support ipv6 router advertisment.  */
-/* #undef HAVE_RTADV */
-
-/* whether system has GNU regex */
-#undef HAVE_GNU_REGEX
-
-/* whether system has SNMP library */
-#undef HAVE_SNMP
-
-/* whether sockaddr has a sa_len field */
-#undef HAVE_SA_LEN
-
-/* whether sockaddr_in has a sin_len field */
-#undef HAVE_SIN_LEN
-
-/* whether sockaddr_un has a sun_len field */
-#undef HAVE_SUN_LEN
-
-/* whether sockaddr_in6 has a sin6_scope_id field */
-#undef HAVE_SIN6_SCOPE_ID
-
-/* Define if there is socklen_t. */
-#undef HAVE_SOCKLEN_T
-
-/* Define if there is sockaddr_dl structure. */
-#undef HAVE_SOCKADDR_DL
-
-/* Define if there is ifaliasreq structure. */
-#undef HAVE_IFALIASREQ
-
-/* Define if there is in6_aliasreq structure. */
-#undef HAVE_IN6_ALIASREQ
-
-/* Define if there is rt_addrinfo structure. */
-#undef HAVE_RT_ADDRINFO
-
-/* Define if there is in_pktinfo structure. */
-#undef HAVE_INPKTINFO
-
-/* Define if you have the getrusage function. */
-#undef HAVE_RUSAGE
-
-/* Define if /proc/net/dev exists. */
-#undef HAVE_PROC_NET_DEV
-
-/* Define if /proc/net/if_inet6 exists. */
-#undef HAVE_PROC_NET_IF_INET6
-
-/* Define if NET_RT_IFLIST exists in sys/socket.h. */
-#undef HAVE_NET_RT_IFLIST
-
-/* Define if you have INRIA ipv6 stack.  */
-#undef INRIA_IPV6
-
-/* Define if you have KAME project ipv6 stack.  */
-#undef KAME
-
-/* Define if you have Linux ipv6 stack.  */
-#undef LINUX_IPV6
-
-/* Define if you have NRL ipv6 stack.  */
-#undef NRL
-
-/* Define if you have BSDI NRL IPv6 stack. */
-#undef BSDI_NRL
-
-/* Define if one-vty option is specified. */
-#undef VTYSH
-
-/* Define if interface aliases don't have distinct indeces */
-#undef HAVE_BROKEN_ALIASES
-
-/* Define if disable-bgp-announce option is specified. */
-#undef DISABLE_BGP_ANNOUNCE
-
-/* PAM support */
-#undef USE_PAM
-
-/* TCP/IP communication between zebra and protocol daemon. */
-#undef HAVE_TCP_ZEBRA
-
-/* The OSPF NSSA option (RFC1587). */
-#undef HAVE_NSSA
-
-/* The OSPF Opaque LSA option (RFC2370). */
-#undef HAVE_OPAQUE_LSA
-
-/* Traffic Engineering Extension to OSPF
-   (draft-katz-yeung-ospf-traffic-06.txt). */
-#undef HAVE_OSPF_TE
-
-/* Linux netlink. */
-#undef HAVE_NETLINK
-
-/* PATHS */
-#undef PATH_ZEBRA_PID
-#undef PATH_RIPD_PID
-#undef PATH_RIPNGD_PID
-#undef PATH_BGPD_PID
-#undef PATH_OSPFD_PID
-#undef PATH_OSPF6D_PID
-#undef PATH_ISISD_PID
-
-/* Define if Solaris */
-#undef SUNOS_5
-
-/* Define if FreeBSD 3.2 */
-#undef FREEBSD_32
-
-/* Define if OpenBSD */
-#undef OPEN_BSD
-
-#ifdef HAVE_IPV6
-#ifdef KAME
-#ifndef INET6
-#define INET6
-#endif /* INET6 */
-#endif /* KAME */
-#endif /* HAVE_IPV6 */
-
-#ifdef SUNOS_5
-typedef unsigned int u_int32_t; 
-typedef unsigned short u_int16_t; 
-typedef unsigned short u_int8_t; 
-#endif /* SUNOS_5 */
-
-#ifndef HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif /* HAVE_SOCKLEN_T */
diff --git a/isisd/modified/command.c b/isisd/modified/command.c
deleted file mode 100644
index 5c18fd9..0000000
--- a/isisd/modified/command.c
+++ /dev/null
@@ -1,2983 +0,0 @@
-/* Command interpreter routine for virtual terminal [aka TeletYpe]
-   Copyright (C) 1997, 98, 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 <zebra.h>
-
-#include "command.h"
-#include "memory.h"
-#include "log.h"
-#include "version.h"
-
-/* Command vector which includes some level of command lists. Normally
-   each daemon maintains each own cmdvec. */
-vector cmdvec;
-
-/* Host information structure. */
-struct host host;
-
-/* Default motd string. */
-char *default_motd = 
-"\r\n\
-Hello, this is zebra (version " ZEBRA_VERSION ").\r\n\
-Copyright 1996-2002 Kunihiro Ishiguro.\r\n\
-\r\n";
-
-/* Standard command node structures. */
-struct cmd_node auth_node =
-{
-  AUTH_NODE,
-  "Password: ",
-};
-
-struct cmd_node view_node =
-{
-  VIEW_NODE,
-  "%s> ",
-};
-
-struct cmd_node auth_enable_node =
-{
-  AUTH_ENABLE_NODE,
-  "Password: ",
-};
-
-struct cmd_node enable_node =
-{
-  ENABLE_NODE,
-  "%s# ",
-};
-
-struct cmd_node config_node =
-{
-  CONFIG_NODE,
-  "%s(config)# ",
-  1
-};
-
-/* Utility function to concatenate argv argument into a single string
-   with inserting ' ' character between each argument.  */
-char *
-argv_concat (char **argv, int argc, int shift)
-{
-  int i;
-  int len;
-  int index;
-  char *str;
-
-  str = NULL;
-  index = 0;
-
-  for (i = shift; i < argc; i++)
-    {
-      len = strlen (argv[i]);
-
-      if (i == shift)
-	{
-	  str = XSTRDUP (MTYPE_TMP, argv[i]);
-	  index = len;
-	}
-      else
-	{
-	  str = XREALLOC (MTYPE_TMP, str, (index + len + 2));
-	  str[index++] = ' ';
-	  memcpy (str + index, argv[i], len);
-	  index += len;
-	  str[index] = '\0';
-	}
-    }
-  return str;
-}
-
-/* Install top node of command vector. */
-void
-install_node (struct cmd_node *node, 
-	      int (*func) (struct vty *))
-{
-  vector_set_index (cmdvec, node->node, node);
-  node->func = func;
-  node->cmd_vector = vector_init (VECTOR_MIN_SIZE);
-}
-
-/* Compare two command's string.  Used in sort_node (). */
-int
-cmp_node (const void *p, const void *q)
-{
-  struct cmd_element *a = *(struct cmd_element **)p;
-  struct cmd_element *b = *(struct cmd_element **)q;
-
-  return strcmp (a->string, b->string);
-}
-
-int
-cmp_desc (const void *p, const void *q)
-{
-  struct desc *a = *(struct desc **)p;
-  struct desc *b = *(struct desc **)q;
-
-  return strcmp (a->cmd, b->cmd);
-}
-
-/* Sort each node's command element according to command string. */
-void
-sort_node ()
-{
-  int i, j;
-  struct cmd_node *cnode;
-  vector descvec;
-  struct cmd_element *cmd_element;
-
-  for (i = 0; i < vector_max (cmdvec); i++) 
-    if ((cnode = vector_slot (cmdvec, i)) != NULL)
-      {	
-	vector cmd_vector = cnode->cmd_vector;
-	qsort (cmd_vector->index, cmd_vector->max, sizeof (void *), cmp_node);
-
-	for (j = 0; j < vector_max (cmd_vector); j++)
-	  if ((cmd_element = vector_slot (cmd_vector, j)) != NULL)
-	    {
-	      descvec = vector_slot (cmd_element->strvec,
-				     vector_max (cmd_element->strvec) - 1);
-	      qsort (descvec->index, descvec->max, sizeof (void *), cmp_desc);
-	    }
-      }
-}
-
-/* Breaking up string into each command piece. I assume given
-   character is separated by a space character. Return value is a
-   vector which includes char ** data element. */
-vector
-cmd_make_strvec (char *string)
-{
-  char *cp, *start, *token;
-  int strlen;
-  vector strvec;
-  
-  if (string == NULL)
-    return NULL;
-  
-  cp = string;
-
-  /* Skip white spaces. */
-  while (isspace ((int) *cp) && *cp != '\0')
-    cp++;
-
-  /* Return if there is only white spaces */
-  if (*cp == '\0')
-    return NULL;
-
-  if (*cp == '!' || *cp == '#')
-    return NULL;
-
-  /* Prepare return vector. */
-  strvec = vector_init (VECTOR_MIN_SIZE);
-
-  /* Copy each command piece and set into vector. */
-  while (1) 
-    {
-      start = cp;
-      while (!(isspace ((int) *cp) || *cp == '\r' || *cp == '\n') &&
-	     *cp != '\0')
-	cp++;
-      strlen = cp - start;
-      token = XMALLOC (MTYPE_STRVEC, strlen + 1);
-      memcpy (token, start, strlen);
-      *(token + strlen) = '\0';
-      vector_set (strvec, token);
-
-      while ((isspace ((int) *cp) || *cp == '\n' || *cp == '\r') &&
-	     *cp != '\0')
-	cp++;
-
-      if (*cp == '\0')
-	return strvec;
-    }
-}
-
-/* Free allocated string vector. */
-void
-cmd_free_strvec (vector v)
-{
-  int i;
-  char *cp;
-
-  if (!v)
-    return;
-
-  for (i = 0; i < vector_max (v); i++)
-    if ((cp = vector_slot (v, i)) != NULL)
-      XFREE (MTYPE_STRVEC, cp);
-
-  vector_free (v);
-}
-
-/* Fetch next description.  Used in cmd_make_descvec(). */
-char *
-cmd_desc_str (char **string)
-{
-  char *cp, *start, *token;
-  int strlen;
-  
-  cp = *string;
-
-  if (cp == NULL)
-    return NULL;
-
-  /* Skip white spaces. */
-  while (isspace ((int) *cp) && *cp != '\0')
-    cp++;
-
-  /* Return if there is only white spaces */
-  if (*cp == '\0')
-    return NULL;
-
-  start = cp;
-
-  while (!(*cp == '\r' || *cp == '\n') && *cp != '\0')
-    cp++;
-
-  strlen = cp - start;
-  token = XMALLOC (MTYPE_STRVEC, strlen + 1);
-  memcpy (token, start, strlen);
-  *(token + strlen) = '\0';
-
-  *string = cp;
-
-  return token;
-}
-
-/* New string vector. */
-vector
-cmd_make_descvec (char *string, char *descstr)
-{
-  int multiple = 0;
-  char *sp;
-  char *token;
-  int len;
-  char *cp;
-  char *dp;
-  vector allvec;
-  vector strvec = NULL;
-  struct desc *desc;
-
-  cp = string;
-  dp = descstr;
-
-  if (cp == NULL)
-    return NULL;
-
-  allvec = vector_init (VECTOR_MIN_SIZE);
-
-  while (1)
-    {
-      while (isspace ((int) *cp) && *cp != '\0')
-	cp++;
-
-      if (*cp == '(')
-	{
-	  multiple = 1;
-	  cp++;
-	}
-      if (*cp == ')')
-	{
-	  multiple = 0;
-	  cp++;
-	}
-      if (*cp == '|')
-	{
-	  if (! multiple)
-	    {
-	      fprintf (stderr, "Command parse error!: %s\n", string);
-	      exit (1);
-	    }
-	  cp++;
-	}
-      
-      while (isspace ((int) *cp) && *cp != '\0')
-	cp++;
-
-      if (*cp == '(')
-	{
-	  multiple = 1;
-	  cp++;
-	}
-
-      if (*cp == '\0') 
-	return allvec;
-
-      sp = cp;
-
-      while (! (isspace ((int) *cp) || *cp == '\r' || *cp == '\n' || *cp == ')' || *cp == '|') && *cp != '\0')
-	cp++;
-
-      len = cp - sp;
-
-      token = XMALLOC (MTYPE_STRVEC, len + 1);
-      memcpy (token, sp, len);
-      *(token + len) = '\0';
-
-      desc = XCALLOC (MTYPE_DESC, sizeof (struct desc));
-      desc->cmd = token;
-      desc->str = cmd_desc_str (&dp);
-
-      if (multiple)
-	{
-	  if (multiple == 1)
-	    {
-	      strvec = vector_init (VECTOR_MIN_SIZE);
-	      vector_set (allvec, strvec);
-	    }
-	  multiple++;
-	}
-      else
-	{
-	  strvec = vector_init (VECTOR_MIN_SIZE);
-	  vector_set (allvec, strvec);
-	}
-      vector_set (strvec, desc);
-    }
-}
-
-/* Count mandantory string vector size.  This is to determine inputed
-   command has enough command length. */
-int
-cmd_cmdsize (vector strvec)
-{
-  int i;
-  char *str;
-  int size = 0;
-  vector descvec;
-
-  for (i = 0; i < vector_max (strvec); i++)
-    {
-      descvec = vector_slot (strvec, i);
-
-      if (vector_max (descvec) == 1)
-	{
-	  struct desc *desc = vector_slot (descvec, 0);
-
-	  str = desc->cmd;
-	  
-	  if (str == NULL || CMD_OPTION (str))
-	    return size;
-	  else
-	    size++;
-	}
-      else
-	size++;
-    }
-  return size;
-}
-
-/* Return prompt character of specified node. */
-char *
-cmd_prompt (enum node_type node)
-{
-  struct cmd_node *cnode;
-
-  cnode = vector_slot (cmdvec, node);
-  return cnode->prompt;
-}
-
-/* Install a command into a node. */
-void
-install_element (enum node_type ntype, struct cmd_element *cmd)
-{
-  struct cmd_node *cnode;
-
-  cnode = vector_slot (cmdvec, ntype);
-
-  if (cnode == NULL) 
-    {
-      fprintf (stderr, "Command node %d doesn't exist, please check it\n",
-	       ntype);
-      exit (1);
-    }
-
-  vector_set (cnode->cmd_vector, cmd);
-
-  cmd->strvec = cmd_make_descvec (cmd->string, cmd->doc);
-  cmd->cmdsize = cmd_cmdsize (cmd->strvec);
-}
-
-static unsigned char itoa64[] =	
-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
-void
-to64(char *s, long v, int n)
-{
-  while (--n >= 0) 
-    {
-      *s++ = itoa64[v&0x3f];
-      v >>= 6;
-    }
-}
-
-char *zencrypt (char *passwd)
-{
-  char salt[6];
-  struct timeval tv;
-  char *crypt (const char *, const char *);
-
-  gettimeofday(&tv,0);
-  
-  to64(&salt[0], random(), 3);
-  to64(&salt[3], tv.tv_usec, 3);
-  salt[5] = '\0';
-
-  return crypt (passwd, salt);
-}
-
-/* This function write configuration of this host. */
-int
-config_write_host (struct vty *vty)
-{
-  if (host.name)
-    vty_out (vty, "hostname %s%s", host.name, VTY_NEWLINE);
-
-  if (host.encrypt)
-    {
-      if (host.password_encrypt)
-        vty_out (vty, "password 8 %s%s", host.password_encrypt, VTY_NEWLINE); 
-      if (host.enable_encrypt)
-        vty_out (vty, "enable password 8 %s%s", host.enable_encrypt, VTY_NEWLINE); 
-    }
-  else
-    {
-      if (host.password)
-        vty_out (vty, "password %s%s", host.password, VTY_NEWLINE);
-      if (host.enable)
-        vty_out (vty, "enable password %s%s", host.enable, VTY_NEWLINE);
-    }
-
-  if (host.logfile)
-    vty_out (vty, "log file %s%s", host.logfile, VTY_NEWLINE);
-
-  if (host.log_stdout)
-    vty_out (vty, "log stdout%s", VTY_NEWLINE);
-
-  if (host.log_syslog)
-    vty_out (vty, "log syslog%s", VTY_NEWLINE);
-
-  if (zlog_default->maskpri != LOG_DEBUG)
-    vty_out (vty, "log trap %s%s", zlog_priority[zlog_default->maskpri], VTY_NEWLINE);
-
-  if (zlog_default->record_priority == 1)
-    vty_out (vty, "log record-priority%s", VTY_NEWLINE);
-
-  if (host.advanced)
-    vty_out (vty, "service advanced-vty%s", VTY_NEWLINE);
-
-  if (host.encrypt)
-    vty_out (vty, "service password-encryption%s", VTY_NEWLINE);
-
-  if (host.lines >= 0)
-    vty_out (vty, "service terminal-length %d%s", host.lines,
-	     VTY_NEWLINE);
-
-  if (! host.motd)
-    vty_out (vty, "no banner motd%s", VTY_NEWLINE);
-
-  return 1;
-}
-
-/* Utility function for getting command vector. */
-vector
-cmd_node_vector (vector v, enum node_type ntype)
-{
-  struct cmd_node *cnode = vector_slot (v, ntype);
-  return cnode->cmd_vector;
-}
-
-/* Filter command vector by symbol */
-int
-cmd_filter_by_symbol (char *command, char *symbol)
-{
-  int i, lim;
-
-  if (strcmp (symbol, "IPV4_ADDRESS") == 0)
-    {
-      i = 0;
-      lim = strlen (command);
-      while (i < lim)
-	{
-	  if (! (isdigit ((int) command[i]) || command[i] == '.' || command[i] == '/'))
-	    return 1;
-	  i++;
-	}
-      return 0;
-    }
-  if (strcmp (symbol, "STRING") == 0)
-    {
-      i = 0;
-      lim = strlen (command);
-      while (i < lim)
-	{
-	  if (! (isalpha ((int) command[i]) || command[i] == '_' || command[i] == '-'))
-	    return 1;
-	  i++;
-	}
-      return 0;
-    }
-  if (strcmp (symbol, "IFNAME") == 0)
-    {
-      i = 0;
-      lim = strlen (command);
-      while (i < lim)
-	{
-	  if (! isalnum ((int) command[i]))
-	    return 1;
-	  i++;
-	}
-      return 0;
-    }
-  return 0;
-}
-
-/* Completion match types. */
-enum match_type 
-{
-  no_match,
-  extend_match,
-  ipv4_prefix_match,
-  ipv4_match,
-  ipv6_prefix_match,
-  ipv6_match,
-  range_match,
-  vararg_match,
-  partly_match,
-  exact_match 
-};
-
-enum match_type
-cmd_ipv4_match (char *str)
-{
-  char *sp;
-  int dots = 0, nums = 0;
-  char buf[4];
-
-  if (str == NULL)
-    return partly_match;
-
-  for (;;)
-    {
-      memset (buf, 0, sizeof (buf));
-      sp = str;
-      while (*str != '\0')
-	{
-	  if (*str == '.')
-	    {
-	      if (dots >= 3)
-		return no_match;
-
-	      if (*(str + 1) == '.')
-		return no_match;
-
-	      if (*(str + 1) == '\0')
-		return partly_match;
-
-	      dots++;
-	      break;
-	    }
-	  if (!isdigit ((int) *str))
-	    return no_match;
-
-	  str++;
-	}
-
-      if (str - sp > 3)
-	return no_match;
-
-      strncpy (buf, sp, str - sp);
-      if (atoi (buf) > 255)
-	return no_match;
-
-      nums++;
-
-      if (*str == '\0')
-	break;
-
-      str++;
-    }
-
-  if (nums < 4)
-    return partly_match;
-
-  return exact_match;
-}
-
-enum match_type
-cmd_ipv4_prefix_match (char *str)
-{
-  char *sp;
-  int dots = 0;
-  char buf[4];
-
-  if (str == NULL)
-    return partly_match;
-
-  for (;;)
-    {
-      memset (buf, 0, sizeof (buf));
-      sp = str;
-      while (*str != '\0' && *str != '/')
-	{
-	  if (*str == '.')
-	    {
-	      if (dots == 3)
-		return no_match;
-
-	      if (*(str + 1) == '.' || *(str + 1) == '/')
-		return no_match;
-
-	      if (*(str + 1) == '\0')
-		return partly_match;
-
-	      dots++;
-	      break;
-	    }
-
-	  if (!isdigit ((int) *str))
-	    return no_match;
-
-	  str++;
-	}
-
-      if (str - sp > 3)
-	return no_match;
-
-      strncpy (buf, sp, str - sp);
-      if (atoi (buf) > 255)
-	return no_match;
-
-      if (dots == 3)
-	{
-	  if (*str == '/')
-	    {
-	      if (*(str + 1) == '\0')
-		return partly_match;
-
-	      str++;
-	      break;
-	    }
-	  else if (*str == '\0')
-	    return partly_match;
-	}
-
-      if (*str == '\0')
-	return partly_match;
-
-      str++;
-    }
-
-  sp = str;
-  while (*str != '\0')
-    {
-      if (!isdigit ((int) *str))
-	return no_match;
-
-      str++;
-    }
-
-  if (atoi (sp) > 32)
-    return no_match;
-
-  return exact_match;
-}
-
-#define IPV6_ADDR_STR		"0123456789abcdefABCDEF:.%"
-#define IPV6_PREFIX_STR		"0123456789abcdefABCDEF:.%/"
-#define STATE_START		1
-#define STATE_COLON		2
-#define STATE_DOUBLE		3
-#define STATE_ADDR		4
-#define STATE_DOT               5
-#define STATE_SLASH		6
-#define STATE_MASK		7
-
-enum match_type
-cmd_ipv6_match (char *str)
-{
-  int state = STATE_START;
-  int colons = 0, nums = 0, double_colon = 0;
-  char *sp = NULL;
-
-  if (str == NULL)
-    return partly_match;
-
-  if (strspn (str, IPV6_ADDR_STR) != strlen (str))
-    return no_match;
-
-  while (*str != '\0')
-    {
-      switch (state)
-	{
-	case STATE_START:
-	  if (*str == ':')
-	    {
-	      if (*(str + 1) != ':' && *(str + 1) != '\0')
-		return no_match;
-     	      colons--;
-	      state = STATE_COLON;
-	    }
-	  else
-	    {
-	      sp = str;
-	      state = STATE_ADDR;
-	    }
-
-	  continue;
-	case STATE_COLON:
-	  colons++;
-	  if (*(str + 1) == ':')
-	    state = STATE_DOUBLE;
-	  else
-	    {
-	      sp = str + 1;
-	      state = STATE_ADDR;
-	    }
-	  break;
-	case STATE_DOUBLE:
-	  if (double_colon)
-	    return no_match;
-
-	  if (*(str + 1) == ':')
-	    return no_match;
-	  else
-	    {
-	      if (*(str + 1) != '\0')
-		colons++;
-	      sp = str + 1;
-	      state = STATE_ADDR;
-	    }
-
-	  double_colon++;
-	  nums++;
-	  break;
-	case STATE_ADDR:
-	  if (*(str + 1) == ':' || *(str + 1) == '\0')
-	    {
-	      if (str - sp > 3)
-		return no_match;
-
-	      nums++;
-	      state = STATE_COLON;
-	    }
-	  if (*(str + 1) == '.')
-	    state = STATE_DOT;
-	  break;
-	case STATE_DOT:
-	  state = STATE_ADDR;
-	  break;
-	default:
-	  break;
-	}
-
-      if (nums > 8)
-	return no_match;
-
-      if (colons > 7)
-	return no_match;
-
-      str++;
-    }
-
-#if 0
-  if (nums < 11)
-    return partly_match;
-#endif /* 0 */
-
-  return exact_match;
-}
-
-enum match_type
-cmd_ipv6_prefix_match (char *str)
-{
-  int state = STATE_START;
-  int colons = 0, nums = 0, double_colon = 0;
-  int mask;
-  char *sp = NULL;
-  char *endptr = NULL;
-
-  if (str == NULL)
-    return partly_match;
-
-  if (strspn (str, IPV6_PREFIX_STR) != strlen (str))
-    return no_match;
-
-  while (*str != '\0' && state != STATE_MASK)
-    {
-      switch (state)
-	{
-	case STATE_START:
-	  if (*str == ':')
-	    {
-	      if (*(str + 1) != ':' && *(str + 1) != '\0')
-		return no_match;
-	      colons--;
-	      state = STATE_COLON;
-	    }
-	  else
-	    {
-	      sp = str;
-	      state = STATE_ADDR;
-	    }
-
-	  continue;
-	case STATE_COLON:
-	  colons++;
-	  if (*(str + 1) == '/')
-	    return no_match;
-	  else if (*(str + 1) == ':')
-	    state = STATE_DOUBLE;
-	  else
-	    {
-	      sp = str + 1;
-	      state = STATE_ADDR;
-	    }
-	  break;
-	case STATE_DOUBLE:
-	  if (double_colon)
-	    return no_match;
-
-	  if (*(str + 1) == ':')
-	    return no_match;
-	  else
-	    {
-	      if (*(str + 1) != '\0' && *(str + 1) != '/')
-		colons++;
-	      sp = str + 1;
-
-	      if (*(str + 1) == '/')
-		state = STATE_SLASH;
-	      else
-		state = STATE_ADDR;
-	    }
-
-	  double_colon++;
-	  nums += 1;
-	  break;
-	case STATE_ADDR:
-	  if (*(str + 1) == ':' || *(str + 1) == '.'
-	      || *(str + 1) == '\0' || *(str + 1) == '/')
-	    {
-	      if (str - sp > 3)
-		return no_match;
-
-	      for (; sp <= str; sp++)
-		if (*sp == '/')
-		  return no_match;
-
-	      nums++;
-
-	      if (*(str + 1) == ':')
-		state = STATE_COLON;
-	      else if (*(str + 1) == '.')
-		state = STATE_DOT;
-	      else if (*(str + 1) == '/')
-		state = STATE_SLASH;
-	    }
-	  break;
-	case STATE_DOT:
-	  state = STATE_ADDR;
-	  break;
-	case STATE_SLASH:
-	  if (*(str + 1) == '\0')
-	    return partly_match;
-
-	  state = STATE_MASK;
-	  break;
-	default:
-	  break;
-	}
-
-      if (nums > 11)
-	return no_match;
-
-      if (colons > 7)
-	return no_match;
-
-      str++;
-    }
-
-  if (state < STATE_MASK)
-    return partly_match;
-
-  mask = strtol (str, &endptr, 10);
-  if (*endptr != '\0')
-    return no_match;
-
-  if (mask < 0 || mask > 128)
-    return no_match;
-  
-/* I don't know why mask < 13 makes command match partly.
-   Forgive me to make this comments. I Want to set static default route
-   because of lack of function to originate default in ospf6d; sorry
-       yasu
-  if (mask < 13)
-    return partly_match;
-*/
-
-  return exact_match;
-}
-
-#define DECIMAL_STRLEN_MAX 10
-
-int
-cmd_range_match (char *range, char *str)
-{
-  char *p;
-  char buf[DECIMAL_STRLEN_MAX + 1];
-  char *endptr = NULL;
-  unsigned long min, max, val;
-
-  if (str == NULL)
-    return 1;
-
-  val = strtoul (str, &endptr, 10);
-  if (*endptr != '\0')
-    return 0;
-
-  range++;
-  p = strchr (range, '-');
-  if (p == NULL)
-    return 0;
-  if (p - range > DECIMAL_STRLEN_MAX)
-    return 0;
-  strncpy (buf, range, p - range);
-  buf[p - range] = '\0';
-  min = strtoul (buf, &endptr, 10);
-  if (*endptr != '\0')
-    return 0;
-
-  range = p + 1;
-  p = strchr (range, '>');
-  if (p == NULL)
-    return 0;
-  if (p - range > DECIMAL_STRLEN_MAX)
-    return 0;
-  strncpy (buf, range, p - range);
-  buf[p - range] = '\0';
-  max = strtoul (buf, &endptr, 10);
-  if (*endptr != '\0')
-    return 0;
-
-  if (val < min || val > max)
-    return 0;
-
-  return 1;
-}
-
-/* Make completion match and return match type flag. */
-enum match_type
-cmd_filter_by_completion (char *command, vector v, int index)
-{
-  int i;
-  char *str;
-  struct cmd_element *cmd_element;
-  enum match_type match_type;
-  vector descvec;
-  struct desc *desc;
-  
-  match_type = no_match;
-
-  /* If command and cmd_element string does not match set NULL to vector */
-  for (i = 0; i < vector_max (v); i++) 
-    if ((cmd_element = vector_slot (v, i)) != NULL)
-      {
-	if (index >= vector_max (cmd_element->strvec))
-	  vector_slot (v, i) = NULL;
-	else
-	  {
-	    int j;
-	    int matched = 0;
-
-	    descvec = vector_slot (cmd_element->strvec, index);
-	    
-	    for (j = 0; j < vector_max (descvec); j++)
-	      {
-		desc = vector_slot (descvec, j);
-		str = desc->cmd;
-
-		if (CMD_VARARG (str))
-		  {
-		    if (match_type < vararg_match)
-		      match_type = vararg_match;
-		    matched++;
-		  }
-		else if (CMD_RANGE (str))
-		  {
-		    if (cmd_range_match (str, command))
-		      {
-			if (match_type < range_match)
-			  match_type = range_match;
-
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV6 (str))
-		  {
-		    if (cmd_ipv6_match (command))
-		      {
-			if (match_type < ipv6_match)
-			  match_type = ipv6_match;
-
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV6_PREFIX (str))
-		  {
-		    if (cmd_ipv6_prefix_match (command))
-		      {
-			if (match_type < ipv6_prefix_match)
-			  match_type = ipv6_prefix_match;
-
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV4 (str))
-		  {
-		    if (cmd_ipv4_match (command))
-		      {
-			if (match_type < ipv4_match)
-			  match_type = ipv4_match;
-
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV4_PREFIX (str))
-		  {
-		    if (cmd_ipv4_prefix_match (command))
-		      {
-			if (match_type < ipv4_prefix_match)
-			  match_type = ipv4_prefix_match;
-			matched++;
-		      }
-		  }
-		else
-		/* Check is this point's argument optional ? */
-		if (CMD_OPTION (str) || CMD_VARIABLE (str))
-		  {
-		    if (match_type < extend_match)
-		      match_type = extend_match;
-		    matched++;
-		  }
-		else if (strncmp (command, str, strlen (command)) == 0)
-		  {
-		    if (strcmp (command, str) == 0) 
-		      match_type = exact_match;
-		    else
-		      {
-			if (match_type < partly_match)
-			  match_type = partly_match;
-		      }
-		    matched++;
-		  }
-	      }
-	    if (! matched)
-	      vector_slot (v, i) = NULL;
-	  }
-      }
-  return match_type;
-}
-
-/* Filter vector by command character with index. */
-enum match_type
-cmd_filter_by_string (char *command, vector v, int index)
-{
-  int i;
-  char *str;
-  struct cmd_element *cmd_element;
-  enum match_type match_type;
-  vector descvec;
-  struct desc *desc;
-  
-  match_type = no_match;
-
-  /* If command and cmd_element string does not match set NULL to vector */
-  for (i = 0; i < vector_max (v); i++) 
-    if ((cmd_element = vector_slot (v, i)) != NULL)
-      {
-	/* If given index is bigger than max string vector of command,
-           set NULL*/
-	if (index >= vector_max (cmd_element->strvec))
-	  vector_slot (v, i) = NULL;
-	else 
-	  {
-	    int j;
-	    int matched = 0;
-
-	    descvec = vector_slot (cmd_element->strvec, index);
-
-	    for (j = 0; j < vector_max (descvec); j++)
-	      {
-		desc = vector_slot (descvec, j);
-		str = desc->cmd;
-
-		if (CMD_VARARG (str))
-		  {
-		    if (match_type < vararg_match)
-		      match_type = vararg_match;
-		    matched++;
-		  }
-		else if (CMD_RANGE (str))
-		  {
-		    if (cmd_range_match (str, command))
-		      {
-			if (match_type < range_match)
-			  match_type = range_match;
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV6 (str))
-		  {
-		    if (cmd_ipv6_match (command) == exact_match)
-		      {
-			if (match_type < ipv6_match)
-			  match_type = ipv6_match;
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV6_PREFIX (str))
-		  {
-		    if (cmd_ipv6_prefix_match (command) == exact_match)
-		      {
-			if (match_type < ipv6_prefix_match)
-			  match_type = ipv6_prefix_match;
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV4 (str))
-		  {
-		    if (cmd_ipv4_match (command) == exact_match)
-		      {
-			if (match_type < ipv4_match)
-			  match_type = ipv4_match;
-			matched++;
-		      }
-		  }
-		else if (CMD_IPV4_PREFIX (str))
-		  {
-		    if (cmd_ipv4_prefix_match (command) == exact_match)
-		      {
-			if (match_type < ipv4_prefix_match)
-			  match_type = ipv4_prefix_match;
-			matched++;
-		      }
-		  }
-		else if (CMD_OPTION (str) || CMD_VARIABLE (str))
-		  {
-		    if (match_type < extend_match)
-		      match_type = extend_match;
-		    matched++;
-		  }
-		else
-		  {		  
-		    if (strcmp (command, str) == 0)
-		      {
-			match_type = exact_match;
-			matched++;
-		      }
-		  }
-	      }
-	    if (! matched)
-	      vector_slot (v, i) = NULL;
-	  }
-      }
-  return match_type;
-}
-
-/* Check ambiguous match */
-int
-is_cmd_ambiguous (char *command, vector v, int index, enum match_type type)
-{
-  int i;
-  int j;
-  char *str = NULL;
-  struct cmd_element *cmd_element;
-  char *matched = NULL;
-  vector descvec;
-  struct desc *desc;
-  
-  for (i = 0; i < vector_max (v); i++) 
-    if ((cmd_element = vector_slot (v, i)) != NULL)
-      {
-	int match = 0;
-
-	descvec = vector_slot (cmd_element->strvec, index);
-
-	for (j = 0; j < vector_max (descvec); j++)
-	  {
-	    enum match_type ret;
-
-	    desc = vector_slot (descvec, j);
-	    str = desc->cmd;
-
-	    switch (type)
-	      {
-	      case exact_match:
-		if (! (CMD_OPTION (str) || CMD_VARIABLE (str))
-		    && strcmp (command, str) == 0)
-		  match++;
-		break;
-	      case partly_match:
-		if (! (CMD_OPTION (str) || CMD_VARIABLE (str))
-		    && strncmp (command, str, strlen (command)) == 0)
-		  {
-		    if (matched && strcmp (matched, str) != 0)
-		      return 1;	/* There is ambiguous match. */
-		    else
-		      matched = str;
-		    match++;
-		  }
-		break;
-	      case range_match:
-		if (cmd_range_match (str, command))
-		  {
-		    if (matched && strcmp (matched, str) != 0)
-		      return 1;
-		    else
-		      matched = str;
-		    match++;
-		  }
-		break;
- 	      case ipv6_match:
-		if (CMD_IPV6 (str))
-		  match++;
-		break;
-	      case ipv6_prefix_match:
-		if ((ret = cmd_ipv6_prefix_match (command)) != no_match)
-		  {
-		    if (ret == partly_match)
-		      return 2; /* There is incomplete match. */
-
-		    match++;
-		  }
-		break;
-	      case ipv4_match:
-		if (CMD_IPV4 (str))
-		  match++;
-		break;
-	      case ipv4_prefix_match:
-		if ((ret = cmd_ipv4_prefix_match (command)) != no_match)
-		  {
-		    if (ret == partly_match)
-		      return 2; /* There is incomplete match. */
-
-		    match++;
-		  }
-		break;
-	      case extend_match:
-		if (CMD_OPTION (str) || CMD_VARIABLE (str))
-		  match++;
-		break;
-	      case no_match:
-	      default:
-		break;
-	      }
-	  }
-	if (! match)
-	  vector_slot (v, i) = NULL;
-      }
-  return 0;
-}
-
-/* If src matches dst return dst string, otherwise return NULL */
-char *
-cmd_entry_function (char *src, char *dst)
-{
-  /* Skip variable arguments. */
-  if (CMD_OPTION (dst) || CMD_VARIABLE (dst) || CMD_VARARG (dst) ||
-      CMD_IPV4 (dst) || CMD_IPV4_PREFIX (dst) || CMD_RANGE (dst))
-    return NULL;
-
-  /* In case of 'command \t', given src is NULL string. */
-  if (src == NULL)
-    return dst;
-
-  /* Matched with input string. */
-  if (strncmp (src, dst, strlen (src)) == 0)
-    return dst;
-
-  return NULL;
-}
-
-/* If src matches dst return dst string, otherwise return NULL */
-/* This version will return the dst string always if it is
-   CMD_VARIABLE for '?' key processing */
-char *
-cmd_entry_function_desc (char *src, char *dst)
-{
-  if (CMD_VARARG (dst))
-    return dst;
-
-  if (CMD_RANGE (dst))
-    {
-      if (cmd_range_match (dst, src))
-	return dst;
-      else
-	return NULL;
-    }
-
-  if (CMD_IPV6 (dst))
-    {
-      if (cmd_ipv6_match (src))
-	return dst;
-      else
-	return NULL;
-    }
-
-  if (CMD_IPV6_PREFIX (dst))
-    {
-      if (cmd_ipv6_prefix_match (src))
-	return dst;
-      else
-	return NULL;
-    }
-
-  if (CMD_IPV4 (dst))
-    {
-      if (cmd_ipv4_match (src))
-	return dst;
-      else
-	return NULL;
-    }
-
-  if (CMD_IPV4_PREFIX (dst))
-    {
-      if (cmd_ipv4_prefix_match (src))
-	return dst;
-      else
-	return NULL;
-    }
-
-  /* Optional or variable commands always match on '?' */
-  if (CMD_OPTION (dst) || CMD_VARIABLE (dst))
-    return dst;
-
-  /* In case of 'command \t', given src is NULL string. */
-  if (src == NULL)
-    return dst;
-
-  if (strncmp (src, dst, strlen (src)) == 0)
-    return dst;
-  else
-    return NULL;
-}
-
-/* Check same string element existence.  If it isn't there return
-    1. */
-int
-cmd_unique_string (vector v, char *str)
-{
-  int i;
-  char *match;
-
-  for (i = 0; i < vector_max (v); i++)
-    if ((match = vector_slot (v, i)) != NULL)
-      if (strcmp (match, str) == 0)
-	return 0;
-  return 1;
-}
-
-/* Compare string to description vector.  If there is same string
-   return 1 else return 0. */
-int
-desc_unique_string (vector v, char *str)
-{
-  int i;
-  struct desc *desc;
-
-  for (i = 0; i < vector_max (v); i++)
-    if ((desc = vector_slot (v, i)) != NULL)
-      if (strcmp (desc->cmd, str) == 0)
-	return 1;
-  return 0;
-}
-
-/* '?' describe command support. */
-vector
-cmd_describe_command (vector vline, struct vty *vty, int *status)
-{
-  int i;
-  vector cmd_vector;
-#define INIT_MATCHVEC_SIZE 10
-  vector matchvec;
-  struct cmd_element *cmd_element;
-  int index;
-  static struct desc desc_cr = { "<cr>", "" };
-
-  /* Set index. */
-  index = vector_max (vline) - 1;
-
-  /* Make copy vector of current node's command vector. */
-  cmd_vector = vector_copy (cmd_node_vector (cmdvec, vty->node));
-
-  /* Prepare match vector */
-  matchvec = vector_init (INIT_MATCHVEC_SIZE);
-
-  /* Filter commands. */
-  for (i = 0; i < index; i++)
-    {
-      enum match_type match;
-      char *command;
-      int ret;
-
-      command = vector_slot (vline, i);
-
-      match = cmd_filter_by_completion (command, cmd_vector, i);
-
-      if (match == vararg_match)
-	{
-	  struct cmd_element *cmd_element;
-	  vector descvec;
-	  int j, k;
-
-	  for (j = 0; j < vector_max (cmd_vector); j++)
-	    if ((cmd_element = vector_slot (cmd_vector, j)) != NULL)
-	      {
-		descvec = vector_slot (cmd_element->strvec,
-				       vector_max (cmd_element->strvec) - 1);
-		for (k = 0; k < vector_max (descvec); k++)
-		  {
-		    struct desc *desc = vector_slot (descvec, k);
-		    vector_set (matchvec, desc);
-		  }
-	      }
-
-	  vector_set (matchvec, &desc_cr);
-
-	  vector_free (cmd_vector);
-
-	  return matchvec;
-	}
-
-      if ((ret = is_cmd_ambiguous (command, cmd_vector, i, match)) == 1)
-	{
-	  vector_free (cmd_vector);
-	  *status = CMD_ERR_AMBIGUOUS;
-	  return NULL;
-	}
-      else if (ret == 2)
-	{
-	  vector_free (cmd_vector);
-	  *status = CMD_ERR_NO_MATCH;
-	  return NULL;
-	}
-    }
-
-  /* Prepare match vector */
-  /*  matchvec = vector_init (INIT_MATCHVEC_SIZE); */
-
-  /* Make description vector. */
-  for (i = 0; i < vector_max (cmd_vector); i++)
-    if ((cmd_element = vector_slot (cmd_vector, i)) != NULL)
-      {
-	char *string = NULL;
-	vector strvec = cmd_element->strvec;
-
-	if (index > vector_max (strvec))
-	  vector_slot (cmd_vector, i) = NULL;
-	else
-	  {
-	    /* Check is command is completed. */
-	    if (index == vector_max (strvec))
-	      {
-		string = "<cr>";
-		if (! desc_unique_string (matchvec, string))
-		  vector_set (matchvec, &desc_cr);
-	      }
-	    else
-	      {
-		int j;
-		vector descvec = vector_slot (strvec, index);
-		struct desc *desc;
-
-		for (j = 0; j < vector_max (descvec); j++)
-		  {
-		    desc = vector_slot (descvec, j);
-		    string = cmd_entry_function_desc (vector_slot (vline, index), desc->cmd);
-		    if (string)
-		      {
-			/* Uniqueness check */
-			if (! desc_unique_string (matchvec, string))
-			  vector_set (matchvec, desc);
-		      }
-		  }
-	      }
-	  }
-      }
-  vector_free (cmd_vector);
-
-  if (vector_slot (matchvec, 0) == NULL)
-    {
-      vector_free (matchvec);
-      *status= CMD_ERR_NO_MATCH;
-    }
-  else
-    *status = CMD_SUCCESS;
-
-  return matchvec;
-}
-
-/* Check LCD of matched command. */
-int
-cmd_lcd (char **matched)
-{
-  int i;
-  int j;
-  int lcd = -1;
-  char *s1, *s2;
-  char c1, c2;
-
-  if (matched[0] == NULL || matched[1] == NULL)
-    return 0;
-
-  for (i = 1; matched[i] != NULL; i++)
-    {
-      s1 = matched[i - 1];
-      s2 = matched[i];
-
-      for (j = 0; (c1 = s1[j]) && (c2 = s2[j]); j++)
-	if (c1 != c2)
-	  break;
-
-      if (lcd < 0)
-	lcd = j;
-      else
-	{
-	  if (lcd > j)
-	    lcd = j;
-	}
-    }
-  return lcd;
-}
-
-/* Command line completion support. */
-char **
-cmd_complete_command (vector vline, struct vty *vty, int *status)
-{
-  int i;
-  vector cmd_vector = vector_copy (cmd_node_vector (cmdvec, vty->node));
-#define INIT_MATCHVEC_SIZE 10
-  vector matchvec;
-  struct cmd_element *cmd_element;
-  int index = vector_max (vline) - 1;
-  char **match_str;
-  struct desc *desc;
-  vector descvec;
-  char *command;
-  int lcd;
-
-  /* First, filter by preceeding command string */
-  for (i = 0; i < index; i++)
-    {
-      enum match_type match;
-      int ret;
-
-      command = vector_slot (vline, i);
-
-      /* First try completion match, if there is exactly match return 1 */
-      match = cmd_filter_by_completion (command, cmd_vector, i);
-
-      /* If there is exact match then filter ambiguous match else check
-	 ambiguousness. */
-      if ((ret = is_cmd_ambiguous (command, cmd_vector, i, match)) == 1)
-	{
-	  vector_free (cmd_vector);
-	  *status = CMD_ERR_AMBIGUOUS;
-	  return NULL;
-	}
-      /*
-	else if (ret == 2)
-	{
-	  vector_free (cmd_vector);
-	  *status = CMD_ERR_NO_MATCH;
-	  return NULL;
-	}
-      */
-    }
-
-  /* Prepare match vector. */
-  matchvec = vector_init (INIT_MATCHVEC_SIZE);
-
-  /* Now we got into completion */
-  for (i = 0; i < vector_max (cmd_vector); i++)
-    if ((cmd_element = vector_slot (cmd_vector, i)) != NULL)
-      {
-	char *string;
-	vector strvec = cmd_element->strvec;
-	
-	/* Check field length */
-	if (index >= vector_max (strvec))
-	  vector_slot (cmd_vector, i) = NULL;
-	else 
-	  {
-	    int j;
-
-	    descvec = vector_slot (strvec, index);
-	    for (j = 0; j < vector_max (descvec); j++)
-	      {
-		desc = vector_slot (descvec, j);
-
-		if ((string = cmd_entry_function (vector_slot (vline, index),
-						  desc->cmd)))
-		  if (cmd_unique_string (matchvec, string))
-		    vector_set (matchvec, XSTRDUP (MTYPE_TMP, string));
-	      }
-	  }
-      }
-
-  /* We don't need cmd_vector any more. */
-  vector_free (cmd_vector);
-
-  /* No matched command */
-  if (vector_slot (matchvec, 0) == NULL)
-    {
-      vector_free (matchvec);
-
-      /* In case of 'command \t' pattern.  Do you need '?' command at
-         the end of the line. */
-      if (vector_slot (vline, index) == '\0')
-	*status = CMD_ERR_NOTHING_TODO;
-      else
-	*status = CMD_ERR_NO_MATCH;
-      return NULL;
-    }
-
-  /* Only one matched */
-  if (vector_slot (matchvec, 1) == NULL)
-    {
-      match_str = (char **) matchvec->index;
-      vector_only_wrapper_free (matchvec);
-      *status = CMD_COMPLETE_FULL_MATCH;
-      return match_str;
-    }
-  /* Make it sure last element is NULL. */
-  vector_set (matchvec, NULL);
-
-  /* Check LCD of matched strings. */
-  if (vector_slot (vline, index) != NULL)
-    {
-      lcd = cmd_lcd ((char **) matchvec->index);
-
-      if (lcd)
-	{
-	  int len = strlen (vector_slot (vline, index));
-	  
-	  if (len < lcd)
-	    {
-	      char *lcdstr;
-	      
-	      lcdstr = XMALLOC (MTYPE_TMP, lcd + 1);
-	      memcpy (lcdstr, matchvec->index[0], lcd);
-	      lcdstr[lcd] = '\0';
-
-	      /* match_str = (char **) &lcdstr; */
-
-	      /* Free matchvec. */
-	      for (i = 0; i < vector_max (matchvec); i++)
-		{
-		  if (vector_slot (matchvec, i))
-		    XFREE (MTYPE_TMP, vector_slot (matchvec, i));
-		}
-	      vector_free (matchvec);
-
-      	      /* Make new matchvec. */
-	      matchvec = vector_init (INIT_MATCHVEC_SIZE);
-	      vector_set (matchvec, lcdstr);
-	      match_str = (char **) matchvec->index;
-	      vector_only_wrapper_free (matchvec);
-
-	      *status = CMD_COMPLETE_MATCH;
-	      return match_str;
-	    }
-	}
-    }
-
-  match_str = (char **) matchvec->index;
-  vector_only_wrapper_free (matchvec);
-  *status = CMD_COMPLETE_LIST_MATCH;
-  return match_str;
-}
-
-/* Execute command by argument vline vector. */
-int
-cmd_execute_command (vector vline, struct vty *vty, struct cmd_element **cmd)
-{
-  int i;
-  int index;
-  vector cmd_vector;
-  struct cmd_element *cmd_element;
-  struct cmd_element *matched_element;
-  unsigned int matched_count, incomplete_count;
-  int argc;
-  char *argv[CMD_ARGC_MAX];
-  enum match_type match = 0;
-  int varflag;
-  char *command;
-
-  /* Make copy of command elements. */
-  cmd_vector = vector_copy (cmd_node_vector (cmdvec, vty->node));
-
-  for (index = 0; index < vector_max (vline); index++) 
-    {
-      int ret;
-
-      command = vector_slot (vline, index);
-
-      match = cmd_filter_by_completion (command, cmd_vector, index);
-
-      if (match == vararg_match)
-	break;
-
-      ret = is_cmd_ambiguous (command, cmd_vector, index, match);
-
-      if (ret == 1)
-	{
-	  vector_free (cmd_vector);
-	  return CMD_ERR_AMBIGUOUS;
-	}
-      else if (ret == 2)
-	{
-	  vector_free (cmd_vector);
-	  return CMD_ERR_NO_MATCH;
-	}
-    }
-
-  /* Check matched count. */
-  matched_element = NULL;
-  matched_count = 0;
-  incomplete_count = 0;
-
-  for (i = 0; i < vector_max (cmd_vector); i++) 
-    if (vector_slot (cmd_vector,i) != NULL)
-      {
-	cmd_element = vector_slot (cmd_vector,i);
-
-	if (match == vararg_match || index >= cmd_element->cmdsize)
-	  {
-	    matched_element = cmd_element;
-#if 0
-	    printf ("DEBUG: %s\n", cmd_element->string);
-#endif
-	    matched_count++;
-	  }
-	else
-	  {
-	    incomplete_count++;
-	  }
-      }
-  
-  /* Finish of using cmd_vector. */
-  vector_free (cmd_vector);
-
-  /* To execute command, matched_count must be 1.*/
-  if (matched_count == 0) 
-    {
-      if (incomplete_count)
-	return CMD_ERR_INCOMPLETE;
-      else
-	return CMD_ERR_NO_MATCH;
-    }
-
-  if (matched_count > 1) 
-    return CMD_ERR_AMBIGUOUS;
-
-  /* Argument treatment */
-  varflag = 0;
-  argc = 0;
-
-  for (i = 0; i < vector_max (vline); i++)
-    {
-      if (varflag)
-	argv[argc++] = vector_slot (vline, i);
-      else
-	{	  
-	  vector descvec = vector_slot (matched_element->strvec, i);
-
-	  if (vector_max (descvec) == 1)
-	    {
-	      struct desc *desc = vector_slot (descvec, 0);
-	      char *str = desc->cmd;
-
-	      if (CMD_VARARG (str))
-		varflag = 1;
-
-	      if (varflag || CMD_VARIABLE (str) || CMD_OPTION (str))
-		argv[argc++] = vector_slot (vline, i);
-	    }
-	  else
-	    argv[argc++] = vector_slot (vline, i);
-	}
-
-      if (argc >= CMD_ARGC_MAX)
-	return CMD_ERR_EXEED_ARGC_MAX;
-    }
-
-  /* For vtysh execution. */
-  if (cmd)
-    *cmd = matched_element;
-
-  if (matched_element->daemon)
-    return CMD_SUCCESS_DAEMON;
-
-  /* Execute matched command. */
-  return (*matched_element->func) (matched_element, vty, argc, argv);
-}
-
-/* Execute command by argument readline. */
-int
-cmd_execute_command_strict (vector vline, struct vty *vty, 
-			    struct cmd_element **cmd)
-{
-  int i;
-  int index;
-  vector cmd_vector;
-  struct cmd_element *cmd_element;
-  struct cmd_element *matched_element;
-  unsigned int matched_count, incomplete_count;
-  int argc;
-  char *argv[CMD_ARGC_MAX];
-  int varflag;
-  enum match_type match = 0;
-  char *command;
-
-  /* Make copy of command element */
-  cmd_vector = vector_copy (cmd_node_vector (cmdvec, vty->node));
-
-  for (index = 0; index < vector_max (vline); index++) 
-    {
-      int ret;
-
-      command = vector_slot (vline, index);
-
-      match = cmd_filter_by_string (vector_slot (vline, index), 
-				    cmd_vector, index);
-
-      /* If command meets '.VARARG' then finish matching. */
-      if (match == vararg_match)
-	break;
-
-      ret = is_cmd_ambiguous (command, cmd_vector, index, match);
-      if (ret == 1)
-	{
-	  vector_free (cmd_vector);
-	  return CMD_ERR_AMBIGUOUS;
-	}
-      if (ret == 2)
-	{
-	  vector_free (cmd_vector);
-	  return CMD_ERR_NO_MATCH;
-	}
-    }
-
-  /* Check matched count. */
-  matched_element = NULL;
-  matched_count = 0;
-  incomplete_count = 0;
-  for (i = 0; i < vector_max (cmd_vector); i++) 
-    if (vector_slot (cmd_vector,i) != NULL)
-      {
-	cmd_element = vector_slot (cmd_vector,i);
-
-	if (match == vararg_match || index >= cmd_element->cmdsize)
-	  {
-	    matched_element = cmd_element;
-	    matched_count++;
-	  }
-	else
-	  incomplete_count++;
-      }
-  
-  /* Finish of using cmd_vector. */
-  vector_free (cmd_vector);
-
-  /* To execute command, matched_count must be 1.*/
-  if (matched_count == 0) 
-    {
-      if (incomplete_count)
-	return CMD_ERR_INCOMPLETE;
-      else
-	return CMD_ERR_NO_MATCH;
-    }
-
-  if (matched_count > 1) 
-    return CMD_ERR_AMBIGUOUS;
-
-  /* Argument treatment */
-  varflag = 0;
-  argc = 0;
-
-  for (i = 0; i < vector_max (vline); i++)
-    {
-      if (varflag)
-	argv[argc++] = vector_slot (vline, i);
-      else
-	{	  
-	  vector descvec = vector_slot (matched_element->strvec, i);
-
-	  if (vector_max (descvec) == 1)
-	    {
-	      struct desc *desc = vector_slot (descvec, 0);
-	      char *str = desc->cmd;
-
-	      if (CMD_VARARG (str))
-		varflag = 1;
-	  
-	      if (varflag || CMD_VARIABLE (str) || CMD_OPTION (str))
-		argv[argc++] = vector_slot (vline, i);
-	    }
-	  else
-	    argv[argc++] = vector_slot (vline, i);
-	}
-
-      if (argc >= CMD_ARGC_MAX)
-	return CMD_ERR_EXEED_ARGC_MAX;
-    }
-
-  /* For vtysh execution. */
-  if (cmd)
-    *cmd = matched_element;
-
-  if (matched_element->daemon)
-    return CMD_SUCCESS_DAEMON;
-
-  /* Now execute matched command */
-  return (*matched_element->func) (matched_element, vty, argc, argv);
-}
-
-/* Configration make from file. */
-int
-config_from_file (struct vty *vty, FILE *fp)
-{
-  int ret;
-  vector vline;
-
-  while (fgets (vty->buf, VTY_BUFSIZ, fp))
-    {
-      vline = cmd_make_strvec (vty->buf);
-
-      /* In case of comment line */
-      if (vline == NULL)
-	continue;
-      /* Execute configuration command : this is strict match */
-      ret = cmd_execute_command_strict (vline, vty, NULL);
-
-      /* Try again with setting node to CONFIG_NODE */
-      if (ret != CMD_SUCCESS && ret != CMD_WARNING)
-	{
-	  if (vty->node == KEYCHAIN_KEY_NODE)
-	    {
-	      vty->node = KEYCHAIN_NODE;
-
-	      ret = cmd_execute_command_strict (vline, vty, NULL);
-
-	      if (ret != CMD_SUCCESS && ret != CMD_WARNING)
-		{
-		  vty->node = CONFIG_NODE;
-		  ret = cmd_execute_command_strict (vline, vty, NULL);
-		}
-	    }
-	  else
-	    {
-	      vty->node = CONFIG_NODE;
-	      ret = cmd_execute_command_strict (vline, vty, NULL);
-	    }
-	}	  
-
-      cmd_free_strvec (vline);
-
-      if (ret != CMD_SUCCESS && ret != CMD_WARNING)
-	return ret;
-    }
-  return CMD_SUCCESS;
-}
-
-/* Configration from terminal */
-DEFUN (config_terminal,
-       config_terminal_cmd,
-       "configure terminal",
-       "Configuration from vty interface\n"
-       "Configuration terminal\n")
-{
-  if (vty_config_lock (vty))
-    vty->node = CONFIG_NODE;
-  else
-    {
-      vty_out (vty, "VTY configuration is locked by other VTY%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  return CMD_SUCCESS;
-}
-
-/* Enable command */
-DEFUN (enable, 
-       config_enable_cmd,
-       "enable",
-       "Turn on privileged mode command\n")
-{
-  /* If enable password is NULL, change to ENABLE_NODE */
-  if ((host.enable == NULL && host.enable_encrypt == NULL) ||
-      vty->type == VTY_SHELL_SERV)
-    vty->node = ENABLE_NODE;
-  else
-    vty->node = AUTH_ENABLE_NODE;
-
-  return CMD_SUCCESS;
-}
-
-/* Disable command */
-DEFUN (disable, 
-       config_disable_cmd,
-       "disable",
-       "Turn off privileged mode command\n")
-{
-  if (vty->node == ENABLE_NODE)
-    vty->node = VIEW_NODE;
-  return CMD_SUCCESS;
-}
-
-/* Down vty node level. */
-DEFUN (config_exit,
-       config_exit_cmd,
-       "exit",
-       "Exit current mode and down to previous mode\n")
-{
-  switch (vty->node)
-    {
-    case VIEW_NODE:
-    case ENABLE_NODE:
-      if (vty_shell (vty))
-	exit (0);
-      else
-	vty->status = VTY_CLOSE;
-      break;
-    case CONFIG_NODE:
-      vty->node = ENABLE_NODE;
-      vty_config_unlock (vty);
-      break;
-    case INTERFACE_NODE:
-    case ZEBRA_NODE:
-    case BGP_NODE:
-    case RIP_NODE:
-    case RIPNG_NODE:
-    case OSPF_NODE:
-    case OSPF6_NODE:
-    case ISIS_NODE:
-    case KEYCHAIN_NODE:
-    case MASC_NODE:
-    case RMAP_NODE:
-    case VTY_NODE:
-      vty->node = CONFIG_NODE;
-      break;
-    case BGP_VPNV4_NODE:
-    case BGP_IPV4_NODE:
-    case BGP_IPV4M_NODE:
-    case BGP_IPV6_NODE:
-      vty->node = BGP_NODE;
-      break;
-    case KEYCHAIN_KEY_NODE:
-      vty->node = KEYCHAIN_NODE;
-      break;
-    default:
-      break;
-    }
-  return CMD_SUCCESS;
-}
-
-/* quit is alias of exit. */
-ALIAS (config_exit,
-       config_quit_cmd,
-       "quit",
-       "Exit current mode and down to previous mode\n")
-       
-/* End of configuration. */
-DEFUN (config_end,
-       config_end_cmd,
-       "end",
-       "End current mode and change to enable mode.")
-{
-  switch (vty->node)
-    {
-    case VIEW_NODE:
-    case ENABLE_NODE:
-      /* Nothing to do. */
-      break;
-    case CONFIG_NODE:
-    case INTERFACE_NODE:
-    case ZEBRA_NODE:
-    case RIP_NODE:
-    case RIPNG_NODE:
-    case BGP_NODE:
-    case BGP_VPNV4_NODE:
-    case BGP_IPV4_NODE:
-    case BGP_IPV4M_NODE:
-    case BGP_IPV6_NODE:
-    case RMAP_NODE:
-    case OSPF_NODE:
-    case OSPF6_NODE:
-    case ISIS_NODE:
-    case KEYCHAIN_NODE:
-    case KEYCHAIN_KEY_NODE:
-    case MASC_NODE:
-    case VTY_NODE:
-      vty_config_unlock (vty);
-      vty->node = ENABLE_NODE;
-      break;
-    default:
-      break;
-    }
-  return CMD_SUCCESS;
-}
-
-/* Show version. */
-DEFUN (show_version,
-       show_version_cmd,
-       "show version",
-       SHOW_STR
-       "Displays zebra version\n")
-{
-  vty_out (vty, "Zebra %s (%s).%s", ZEBRA_VERSION,
-	   host_name,
-	   VTY_NEWLINE);
-  vty_out (vty, "Copyright 1996-2002, Kunihiro Ishiguro.%s", VTY_NEWLINE);
-
-  return CMD_SUCCESS;
-}
-
-/* Help display function for all node. */
-DEFUN (config_help,
-       config_help_cmd,
-       "help",
-       "Description of the interactive help system\n")
-{
-  vty_out (vty, 
-	   "Zebra VTY provides advanced help feature.  When you need help,%s\
-anytime at the command line please press '?'.%s\
-%s\
-If nothing matches, the help list will be empty and you must backup%s\
- until entering a '?' shows the available options.%s\
-Two styles of help are provided:%s\
-1. Full help is available when you are ready to enter a%s\
-command argument (e.g. 'show ?') and describes each possible%s\
-argument.%s\
-2. Partial help is provided when an abbreviated argument is entered%s\
-   and you want to know what arguments match the input%s\
-   (e.g. 'show me?'.)%s%s", VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE,
-	   VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE,
-	   VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-  return CMD_SUCCESS;
-}
-
-/* Help display function for all node. */
-DEFUN (config_list,
-       config_list_cmd,
-       "list",
-       "Print command list\n")
-{
-  int i;
-  struct cmd_node *cnode = vector_slot (cmdvec, vty->node);
-  struct cmd_element *cmd;
-
-  for (i = 0; i < vector_max (cnode->cmd_vector); i++)
-    if ((cmd = vector_slot (cnode->cmd_vector, i)) != NULL)
-      vty_out (vty, "  %s%s", cmd->string,
-	       VTY_NEWLINE);
-  return CMD_SUCCESS;
-}
-
-/* Write current configuration into file. */
-DEFUN (config_write_file, 
-       config_write_file_cmd,
-       "write file",  
-       "Write running configuration to memory, network, or terminal\n"
-       "Write to configuration file\n")
-{
-  int i;
-  int fd;
-  struct cmd_node *node;
-  char *config_file;
-  char *config_file_tmp = NULL;
-  char *config_file_sav = NULL;
-  struct vty *file_vty;
-
-  /* Check and see if we are operating under vtysh configuration */
-  if (host.config == NULL)
-    {
-      vty_out (vty, "Can't save to configuration file, using vtysh.%s",
-	       VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  /* Get filename. */
-  config_file = host.config;
-  
-  config_file_sav = malloc (strlen (config_file) + strlen (CONF_BACKUP_EXT) + 1);
-  strcpy (config_file_sav, config_file);
-  strcat (config_file_sav, CONF_BACKUP_EXT);
-
-
-  config_file_tmp = malloc (strlen (config_file) + 8);
-  sprintf (config_file_tmp, "%s.XXXXXX", config_file);
-  
-  /* Open file to configuration write. */
-  fd = mkstemp (config_file_tmp);
-  if (fd < 0)
-    {
-      vty_out (vty, "Can't open configuration file %s.%s", config_file_tmp,
-	       VTY_NEWLINE);
-      free (config_file_tmp);
-      free (config_file_sav);
-      return CMD_WARNING;
-    }
-  
-  /* Make vty for configuration file. */
-  file_vty = vty_new ();
-  file_vty->fd = fd;
-  file_vty->type = VTY_FILE;
-
-  /* Config file header print. */
-  vty_out (file_vty, "!\n! Zebra configuration saved from vty\n!   ");
-  vty_time_print (file_vty, 1);
-  vty_out (file_vty, "!\n");
-
-  for (i = 0; i < vector_max (cmdvec); i++)
-    if ((node = vector_slot (cmdvec, i)) && node->func)
-      {
-	if ((*node->func) (file_vty))
-	  vty_out (file_vty, "!\n");
-      }
-  vty_close (file_vty);
-
-  if (unlink (config_file_sav) != 0)
-    if (errno != ENOENT)
-      {
-	vty_out (vty, "Can't unlink backup configuration file %s.%s", config_file_sav,
-		 VTY_NEWLINE);
-	free (config_file_sav);
-	free (config_file_tmp);
-	unlink (config_file_tmp);	
-	return CMD_WARNING;
-      }
-  if (link (config_file, config_file_sav) != 0)
-    {
-      vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
-	        VTY_NEWLINE);
-      free (config_file_sav);
-      free (config_file_tmp);
-      unlink (config_file_tmp);
-      return CMD_WARNING;
-    }
-  sync ();
-  if (unlink (config_file) != 0)
-    {
-      vty_out (vty, "Can't unlink configuration file %s.%s", config_file,
-	        VTY_NEWLINE);
-      free (config_file_sav);
-      free (config_file_tmp);
-      unlink (config_file_tmp);
-      return CMD_WARNING;      
-    }
-  if (link (config_file_tmp, config_file) != 0)
-    {
-      vty_out (vty, "Can't save configuration file %s.%s", config_file,
-	       VTY_NEWLINE);
-      free (config_file_sav);
-      free (config_file_tmp);
-      unlink (config_file_tmp);
-      return CMD_WARNING;      
-    }
-  unlink (config_file_tmp);
-  sync ();
-  
-  free (config_file_sav);
-  free (config_file_tmp);
-  vty_out (vty, "Configuration saved to %s%s", config_file,
-	   VTY_NEWLINE);
-  return CMD_SUCCESS;
-}
-
-ALIAS (config_write_file, 
-       config_write_cmd,
-       "write",  
-       "Write running configuration to memory, network, or terminal\n")
-
-ALIAS (config_write_file, 
-       config_write_memory_cmd,
-       "write memory",  
-       "Write running configuration to memory, network, or terminal\n"
-       "Write configuration to the file (same as write file)\n")
-
-ALIAS (config_write_file, 
-       copy_runningconfig_startupconfig_cmd,
-       "copy running-config startup-config",  
-       "Copy configuration\n"
-       "Copy running config to... \n"
-       "Copy running config to startup config (same as write file)\n")
-
-/* Write current configuration into the terminal. */
-DEFUN (config_write_terminal,
-       config_write_terminal_cmd,
-       "write terminal",
-       "Write running configuration to memory, network, or terminal\n"
-       "Write to terminal\n")
-{
-  int i;
-  struct cmd_node *node;
-
-  if (vty->type == VTY_SHELL_SERV)
-    {
-      for (i = 0; i < vector_max (cmdvec); i++)
-	if ((node = vector_slot (cmdvec, i)) && node->func && node->vtysh)
-	  {
-	    if ((*node->func) (vty))
-	      vty_out (vty, "!%s", VTY_NEWLINE);
-	  }
-    }
-  else
-    {
-      vty_out (vty, "%sCurrent configuration:%s", VTY_NEWLINE,
-	       VTY_NEWLINE);
-      vty_out (vty, "!%s", VTY_NEWLINE);
-
-      for (i = 0; i < vector_max (cmdvec); i++)
-	if ((node = vector_slot (cmdvec, i)) && node->func)
-	  {
-	    if ((*node->func) (vty))
-	      vty_out (vty, "!%s", VTY_NEWLINE);
-	  }
-      vty_out (vty, "end%s",VTY_NEWLINE);
-    }
-  return CMD_SUCCESS;
-}
-
-/* Write current configuration into the terminal. */
-ALIAS (config_write_terminal,
-       show_running_config_cmd,
-       "show running-config",
-       SHOW_STR
-       "running configuration\n")
-
-/* Write startup configuration into the terminal. */
-DEFUN (show_startup_config,
-       show_startup_config_cmd,
-       "show startup-config",
-       SHOW_STR
-       "Contentes of startup configuration\n")
-{
-  char buf[BUFSIZ];
-  FILE *confp;
-
-  confp = fopen (host.config, "r");
-  if (confp == NULL)
-    {
-      vty_out (vty, "Can't open configuration file [%s]%s",
-	       host.config, VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  while (fgets (buf, BUFSIZ, confp))
-    {
-      char *cp = buf;
-
-      while (*cp != '\r' && *cp != '\n' && *cp != '\0')
-	cp++;
-      *cp = '\0';
-
-      vty_out (vty, "%s%s", buf, VTY_NEWLINE);
-    }
-
-  fclose (confp);
-
-  return CMD_SUCCESS;
-}
-
-/* Hostname configuration */
-DEFUN (config_hostname, 
-       hostname_cmd,
-       "hostname WORD",
-       "Set system's network name\n"
-       "This system's network name\n")
-{
-  if (!isalpha((int) *argv[0]))
-    {
-      vty_out (vty, "Please specify string starting with alphabet%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  if (host.name)
-    XFREE (0, host.name);
-    
-  host.name = strdup (argv[0]);
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_no_hostname, 
-       no_hostname_cmd,
-       "no hostname [HOSTNAME]",
-       NO_STR
-       "Reset system's network name\n"
-       "Host name of this router\n")
-{
-  if (host.name)
-    XFREE (0, host.name);
-  host.name = NULL;
-  return CMD_SUCCESS;
-}
-
-/* VTY interface password set. */
-DEFUN (config_password, password_cmd,
-       "password (8|) WORD",
-       "Assign the terminal connection password\n"
-       "Specifies a HIDDEN password will follow\n"
-       "dummy string \n"
-       "The HIDDEN line password string\n")
-{
-  /* Argument check. */
-  if (argc == 0)
-    {
-      vty_out (vty, "Please specify password.%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  if (argc == 2)
-    {
-      if (*argv[0] == '8')
-	{
-	  if (host.password)
-	    XFREE (0, host.password);
-	  host.password = NULL;
-	  if (host.password_encrypt)
-	    XFREE (0, host.password_encrypt);
-	  host.password_encrypt = XSTRDUP (0, strdup (argv[1]));
-	  return CMD_SUCCESS;
-	}
-      else
-	{
-	  vty_out (vty, "Unknown encryption type.%s", VTY_NEWLINE);
-	  return CMD_WARNING;
-	}
-    }
-
-  if (!isalnum ((int) *argv[0]))
-    {
-      vty_out (vty, 
-	       "Please specify string starting with alphanumeric%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  if (host.password)
-    XFREE (0, host.password);
-  host.password = NULL;
-
-  if (host.encrypt)
-    {
-      if (host.password_encrypt)
-	XFREE (0, host.password_encrypt);
-      host.password_encrypt = XSTRDUP (0, zencrypt (argv[0]));
-    }
-  else
-    host.password = XSTRDUP (0, argv[0]);
-
-  return CMD_SUCCESS;
-}
-
-ALIAS (config_password, password_text_cmd,
-       "password LINE",
-       "Assign the terminal connection password\n"
-       "The UNENCRYPTED (cleartext) line password\n")
-
-/* VTY enable password set. */
-DEFUN (config_enable_password, enable_password_cmd,
-       "enable password (8|) WORD",
-       "Modify enable password parameters\n"
-       "Assign the privileged level password\n"
-       "Specifies a HIDDEN password will follow\n"
-       "dummy string \n"
-       "The HIDDEN 'enable' password string\n")
-{
-  /* Argument check. */
-  if (argc == 0)
-    {
-      vty_out (vty, "Please specify password.%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  /* Crypt type is specified. */
-  if (argc == 2)
-    {
-      if (*argv[0] == '8')
-	{
-	  if (host.enable)
-	    XFREE (0, host.enable);
-	  host.enable = NULL;
-
-	  if (host.enable_encrypt)
-	    XFREE (0, host.enable_encrypt);
-	  host.enable_encrypt = XSTRDUP (0, argv[1]);
-
-	  return CMD_SUCCESS;
-	}
-      else
-	{
-	  vty_out (vty, "Unknown encryption type.%s", VTY_NEWLINE);
-	  return CMD_WARNING;
-	}
-    }
-
-  if (!isalnum ((int) *argv[0]))
-    {
-      vty_out (vty, 
-	       "Please specify string starting with alphanumeric%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  if (host.enable)
-    XFREE (0, host.enable);
-  host.enable = NULL;
-
-  /* Plain password input. */
-  if (host.encrypt)
-    {
-      if (host.enable_encrypt)
-	XFREE (0, host.enable_encrypt);
-      host.enable_encrypt = XSTRDUP (0, zencrypt (argv[0]));
-    }
-  else
-    host.enable = XSTRDUP (0, argv[0]);
-
-  return CMD_SUCCESS;
-}
-
-ALIAS (config_enable_password,
-       enable_password_text_cmd,
-       "enable password LINE",
-       "Modify enable password parameters\n"
-       "Assign the privileged level password\n"
-       "The UNENCRYPTED (cleartext) 'enable' password\n")
-
-/* VTY enable password delete. */
-DEFUN (no_config_enable_password, no_enable_password_cmd,
-       "no enable password",
-       NO_STR
-       "Modify enable password parameters\n"
-       "Assign the privileged level password\n")
-{
-  if (host.enable)
-    XFREE (0, host.enable);
-  host.enable = NULL;
-
-  if (host.enable_encrypt)
-    XFREE (0, host.enable_encrypt);
-  host.enable_encrypt = NULL;
-
-  return CMD_SUCCESS;
-}
-	
-DEFUN (service_password_encrypt,
-       service_password_encrypt_cmd,
-       "service password-encryption",
-       "Set up miscellaneous service\n"
-       "Enable encrypted passwords\n")
-{
-  if (host.encrypt)
-    return CMD_SUCCESS;
-
-  host.encrypt = 1;
-
-  if (host.password)
-    {
-      if (host.password_encrypt)
-	XFREE (0, host.password_encrypt);
-      host.password_encrypt = XSTRDUP (0, zencrypt (host.password));
-    }
-  if (host.enable)
-    {
-      if (host.enable_encrypt)
-	XFREE (0, host.enable_encrypt);
-      host.enable_encrypt = XSTRDUP (0, zencrypt (host.enable));
-    }
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_service_password_encrypt,
-       no_service_password_encrypt_cmd,
-       "no service password-encryption",
-       NO_STR
-       "Set up miscellaneous service\n"
-       "Enable encrypted passwords\n")
-{
-  if (! host.encrypt)
-    return CMD_SUCCESS;
-
-  host.encrypt = 0;
-
-  if (host.password_encrypt)
-    XFREE (0, host.password_encrypt);
-  host.password_encrypt = NULL;
-
-  if (host.enable_encrypt)
-    XFREE (0, host.enable_encrypt);
-  host.enable_encrypt = NULL;
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_terminal_length, config_terminal_length_cmd,
-       "terminal length <0-512>",
-       "Set terminal line parameters\n"
-       "Set number of lines on a screen\n"
-       "Number of lines on screen (0 for no pausing)\n")
-{
-  int lines;
-  char *endptr = NULL;
-
-  lines = strtol (argv[0], &endptr, 10);
-  if (lines < 0 || lines > 512 || *endptr != '\0')
-    {
-      vty_out (vty, "length is malformed%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  vty->lines = lines;
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_terminal_no_length, config_terminal_no_length_cmd,
-       "terminal no length",
-       "Set terminal line parameters\n"
-       NO_STR
-       "Set number of lines on a screen\n")
-{
-  vty->lines = -1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (service_terminal_length, service_terminal_length_cmd,
-       "service terminal-length <0-512>",
-       "Set up miscellaneous service\n"
-       "System wide terminal length configuration\n"
-       "Number of lines of VTY (0 means no line control)\n")
-{
-  int lines;
-  char *endptr = NULL;
-
-  lines = strtol (argv[0], &endptr, 10);
-  if (lines < 0 || lines > 512 || *endptr != '\0')
-    {
-      vty_out (vty, "length is malformed%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  host.lines = lines;
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_service_terminal_length, no_service_terminal_length_cmd,
-       "no service terminal-length [<0-512>]",
-       NO_STR
-       "Set up miscellaneous service\n"
-       "System wide terminal length configuration\n"
-       "Number of lines of VTY (0 means no line control)\n")
-{
-  host.lines = -1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_log_stdout,
-       config_log_stdout_cmd,
-       "log stdout",
-       "Logging control\n"
-       "Logging goes to stdout\n")
-{
-  zlog_set_flag (NULL, ZLOG_STDOUT);
-  host.log_stdout = 1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_config_log_stdout,
-       no_config_log_stdout_cmd,
-       "no log stdout",
-       NO_STR
-       "Logging control\n"
-       "Cancel logging to stdout\n")
-{
-  zlog_reset_flag (NULL, ZLOG_STDOUT);
-  host.log_stdout = 0;
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_log_file,
-       config_log_file_cmd,
-       "log file FILENAME",
-       "Logging control\n"
-       "Logging to file\n"
-       "Logging filename\n")
-{
-  int ret;
-  char *cwd;
-  char *fullpath;
-
-  /* Path detection. */
-  if (! IS_DIRECTORY_SEP (*argv[0]))
-    {
-      cwd = getcwd (NULL, MAXPATHLEN);
-      fullpath = XMALLOC (MTYPE_TMP,
-			  strlen (cwd) + strlen (argv[0]) + 2);
-      sprintf (fullpath, "%s/%s", cwd, argv[0]);
-    }
-  else
-    fullpath = argv[0];
-
-  ret = zlog_set_file (NULL, ZLOG_FILE, fullpath);
-
-  if (!ret)
-    {
-      vty_out (vty, "can't open logfile %s\n", argv[0]);
-      return CMD_WARNING;
-    }
-
-  if (host.logfile)
-    XFREE (MTYPE_TMP, host.logfile);
-
-  host.logfile = strdup (argv[0]);
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_config_log_file,
-       no_config_log_file_cmd,
-       "no log file [FILENAME]",
-       NO_STR
-       "Logging control\n"
-       "Cancel logging to file\n"
-       "Logging file name\n")
-{
-  zlog_reset_file (NULL);
-
-  if (host.logfile)
-    XFREE (MTYPE_TMP, host.logfile);
-
-  host.logfile = NULL;
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_log_syslog,
-       config_log_syslog_cmd,
-       "log syslog",
-       "Logging control\n"
-       "Logging goes to syslog\n")
-{
-  zlog_set_flag (NULL, ZLOG_SYSLOG);
-  host.log_syslog = 1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_config_log_syslog,
-       no_config_log_syslog_cmd,
-       "no log syslog",
-       NO_STR
-       "Logging control\n"
-       "Cancel logging to syslog\n")
-{
-  zlog_reset_flag (NULL, ZLOG_SYSLOG);
-  host.log_syslog = 0;
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_log_trap,
-       config_log_trap_cmd,
-       "log trap (emergencies|alerts|critical|errors|warnings|notifications|informational|debugging)",
-       "Logging control\n"
-       "Limit logging to specifed level\n")
-{
-  int new_level ;
-  
-  for ( new_level = 0 ; zlog_priority [new_level] != NULL ; new_level ++ )
-    {
-    if ( strcmp ( argv[0], zlog_priority [new_level] ) == 0 )
-      /* found new logging level */
-      {
-      zlog_default->maskpri = new_level;
-      return CMD_SUCCESS;
-      }
-    }
-  return CMD_ERR_NO_MATCH;
-}
-
-DEFUN (no_config_log_trap,
-       no_config_log_trap_cmd,
-       "no log trap",
-       NO_STR
-       "Logging control\n"
-       "Permit all logging information\n")
-{
-  zlog_default->maskpri = LOG_DEBUG;
-  return CMD_SUCCESS;
-}
-
-DEFUN (config_log_record_priority,
-       config_log_record_priority_cmd,
-       "log record-priority",
-       "Logging control\n"
-       "Log the priority of the message within the message\n")
-{
-  zlog_default->record_priority = 1 ;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_config_log_record_priority,
-       no_config_log_record_priority_cmd,
-       "no log record-priority",
-       NO_STR
-       "Logging control\n"
-       "Do not log the priority of the message within the message\n")
-{
-  zlog_default->record_priority = 0 ;
-  return CMD_SUCCESS;
-}
-
-
-DEFUN (banner_motd_default,
-       banner_motd_default_cmd,
-       "banner motd default",
-       "Set banner string\n"
-       "Strings for motd\n"
-       "Default string\n")
-{
-  host.motd = default_motd;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_banner_motd,
-       no_banner_motd_cmd,
-       "no banner motd",
-       NO_STR
-       "Set banner string\n"
-       "Strings for motd\n")
-{
-  host.motd = NULL;
-  return CMD_SUCCESS;
-}
-
-/* Set config filename.  Called from vty.c */
-void
-host_config_set (char *filename)
-{
-  host.config = strdup (filename);
-}
-
-void
-install_default (enum node_type node)
-{
-  install_element (node, &config_exit_cmd);
-  install_element (node, &config_quit_cmd);
-  install_element (node, &config_end_cmd);
-  install_element (node, &config_help_cmd);
-  install_element (node, &config_list_cmd);
-
-  install_element (node, &config_write_terminal_cmd);
-  install_element (node, &config_write_file_cmd);
-  install_element (node, &config_write_memory_cmd);
-  install_element (node, &config_write_cmd);
-}
-
-/* Initialize command interface. Install basic nodes and commands. */
-void
-cmd_init (int terminal)
-{
-  /* Allocate initial top vector of commands. */
-  cmdvec = vector_init (VECTOR_MIN_SIZE);
-
-  /* Default host value settings. */
-  host.name = NULL;
-  host.password = NULL;
-  host.enable = NULL;
-  host.logfile = NULL;
-  host.config = NULL;
-  host.lines = -1;
-  host.motd = default_motd;
-
-  /* Install top nodes. */
-  install_node (&view_node, NULL);
-  install_node (&enable_node, NULL);
-  install_node (&auth_node, NULL);
-  install_node (&auth_enable_node, NULL);
-  install_node (&config_node, config_write_host);
-
-  /* Each node's basic commands. */
-  install_element (VIEW_NODE, &show_version_cmd);
-  if (terminal)
-    {
-      install_element (VIEW_NODE, &config_list_cmd);
-      install_element (VIEW_NODE, &config_exit_cmd);
-      install_element (VIEW_NODE, &config_quit_cmd);
-      install_element (VIEW_NODE, &config_help_cmd);
-      install_element (VIEW_NODE, &config_enable_cmd);
-      install_element (VIEW_NODE, &config_terminal_length_cmd);
-      install_element (VIEW_NODE, &config_terminal_no_length_cmd);
-    }
-
-  if (terminal)
-    {
-      install_default (ENABLE_NODE);
-      install_element (ENABLE_NODE, &config_disable_cmd);
-      install_element (ENABLE_NODE, &config_terminal_cmd);
-      install_element (ENABLE_NODE, &show_running_config_cmd);
-      install_element (ENABLE_NODE, &copy_runningconfig_startupconfig_cmd);
-    }
-  install_element (ENABLE_NODE, &show_startup_config_cmd);
-  install_element (ENABLE_NODE, &show_version_cmd);
-  install_element (ENABLE_NODE, &config_terminal_length_cmd);
-  install_element (ENABLE_NODE, &config_terminal_no_length_cmd);
-
-  if (terminal)
-    install_default (CONFIG_NODE);
-  install_element (CONFIG_NODE, &hostname_cmd);
-  install_element (CONFIG_NODE, &no_hostname_cmd);
-  install_element (CONFIG_NODE, &password_cmd);
-  install_element (CONFIG_NODE, &password_text_cmd);
-  install_element (CONFIG_NODE, &enable_password_cmd);
-  install_element (CONFIG_NODE, &enable_password_text_cmd);
-  install_element (CONFIG_NODE, &no_enable_password_cmd);
-  if (terminal)
-    {
-      install_element (CONFIG_NODE, &config_log_stdout_cmd);
-      install_element (CONFIG_NODE, &no_config_log_stdout_cmd);
-      install_element (CONFIG_NODE, &config_log_file_cmd);
-      install_element (CONFIG_NODE, &no_config_log_file_cmd);
-      install_element (CONFIG_NODE, &config_log_syslog_cmd);
-      install_element (CONFIG_NODE, &no_config_log_syslog_cmd);
-      install_element (CONFIG_NODE, &config_log_trap_cmd);
-      install_element (CONFIG_NODE, &no_config_log_trap_cmd);
-      install_element (CONFIG_NODE, &config_log_record_priority_cmd);
-      install_element (CONFIG_NODE, &no_config_log_record_priority_cmd);
-      install_element (CONFIG_NODE, &service_password_encrypt_cmd);
-      install_element (CONFIG_NODE, &no_service_password_encrypt_cmd);
-      install_element (CONFIG_NODE, &banner_motd_default_cmd);
-      install_element (CONFIG_NODE, &no_banner_motd_cmd);
-      install_element (CONFIG_NODE, &service_terminal_length_cmd);
-      install_element (CONFIG_NODE, &no_service_terminal_length_cmd);
-    }
-
-  srand(time(NULL));
-}
diff --git a/isisd/modified/command.h b/isisd/modified/command.h
deleted file mode 100644
index d407c5a..0000000
--- a/isisd/modified/command.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Zebra configuration command interface routine
- * Copyright (C) 1997, 98 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.
- */
-
-#ifndef _ZEBRA_COMMAND_H
-#define _ZEBRA_COMMAND_H
-
-#include "vector.h"
-#include "vty.h"
-
-/* Host configuration variable */
-struct host
-{
-  /* Host name of this router. */
-  char *name;
-
-  /* Password for vty interface. */
-  char *password;
-  char *password_encrypt;
-
-  /* Enable password */
-  char *enable;
-  char *enable_encrypt;
-
-  /* System wide terminal lines. */
-  int lines;
-
-  /* Log filename. */
-  char *logfile;
-
-  /* Log stdout. */
-  u_char log_stdout;
-
-  /* Log syslog. */
-  u_char log_syslog;
-  
-  /* config file name of this host */
-  char *config;
-
-  /* Flags for services */
-  int advanced;
-  int encrypt;
-
-  /* Banner configuration. */
-  char *motd;
-};
-
-/* There are some command levels which called from command node. */
-enum node_type 
-{
-  AUTH_NODE,			/* Authentication mode of vty interface. */
-  VIEW_NODE,			/* View node. Default mode of vty interface. */
-  AUTH_ENABLE_NODE,		/* Authentication mode for change enable. */
-  ENABLE_NODE,			/* Enable node. */
-  CONFIG_NODE,			/* Config node. Default mode of config file. */
-  DEBUG_NODE,			/* Debug node. */
-  AAA_NODE,			/* AAA node. */
-  KEYCHAIN_NODE,		/* Key-chain node. */
-  KEYCHAIN_KEY_NODE,		/* Key-chain key node. */
-  INTERFACE_NODE,		/* Interface mode node. */
-  ZEBRA_NODE,			/* zebra connection node. */
-  TABLE_NODE,			/* rtm_table selection node. */
-  RIP_NODE,			/* RIP protocol mode node. */ 
-  RIPNG_NODE,			/* RIPng protocol mode node. */
-  BGP_NODE,			/* BGP protocol mode which includes BGP4+ */
-  BGP_VPNV4_NODE,		/* BGP MPLS-VPN PE exchange. */
-  BGP_IPV4_NODE,		/* BGP IPv4 unicast address family.  */
-  BGP_IPV4M_NODE,		/* BGP IPv4 multicast address family.  */
-  BGP_IPV6_NODE,		/* BGP IPv6 address family */
-  OSPF_NODE,			/* OSPF protocol mode */
-  OSPF6_NODE,			/* OSPF protocol for IPv6 mode */
-  ISIS_NODE,                    /* IS-IS protocol mode */
-  MASC_NODE,			/* MASC for multicast.  */
-  IRDP_NODE,			/* ICMP Router Discovery Protocol mode. */ 
-  IP_NODE,			/* Static ip route node. */
-  ACCESS_NODE,			/* Access list node. */
-  PREFIX_NODE,			/* Prefix list node. */
-  ACCESS_IPV6_NODE,		/* Access list node. */
-  PREFIX_IPV6_NODE,		/* Prefix list node. */
-  AS_LIST_NODE,			/* AS list node. */
-  COMMUNITY_LIST_NODE,		/* Community list node. */
-  RMAP_NODE,			/* Route map node. */
-  SMUX_NODE,			/* SNMP configuration node. */
-  DUMP_NODE,			/* Packet dump node. */
-  FORWARDING_NODE,		/* IP forwarding node. */
-  VTY_NODE			/* Vty node. */
-};
-
-/* Node which has some commands and prompt string and configuration
-   function pointer . */
-struct cmd_node 
-{
-  /* Node index. */
-  enum node_type node;		
-
-  /* Prompt character at vty interface. */
-  char *prompt;			
-
-  /* Is this node's configuration goes to vtysh ? */
-  int vtysh;
-  
-  /* Node's configuration write function */
-  int (*func) (struct vty *);
-
-  /* Vector of this node's command list. */
-  vector cmd_vector;	
-};
-
-/* Structure of command element. */
-struct cmd_element 
-{
-  char *string;			/* Command specification by string. */
-  int (*func) (struct cmd_element *, struct vty *, int, char **);
-  char *doc;			/* Documentation of this command. */
-  int daemon;                   /* Daemon to which this command belong. */
-  vector strvec;		/* Pointing out each description vector. */
-  int cmdsize;			/* Command index count. */
-  char *config;			/* Configuration string */
-  vector subconfig;		/* Sub configuration string */
-};
-
-/* Command description structure. */
-struct desc
-{
-  char *cmd;			/* Command string. */
-  char *str;			/* Command's description. */
-};
-
-/* Return value of the commands. */
-#define CMD_SUCCESS              0
-#define CMD_WARNING              1
-#define CMD_ERR_NO_MATCH         2
-#define CMD_ERR_AMBIGUOUS        3
-#define CMD_ERR_INCOMPLETE       4
-#define CMD_ERR_EXEED_ARGC_MAX   5
-#define CMD_ERR_NOTHING_TODO     6
-#define CMD_COMPLETE_FULL_MATCH  7
-#define CMD_COMPLETE_MATCH       8
-#define CMD_COMPLETE_LIST_MATCH  9
-#define CMD_SUCCESS_DAEMON      10
-
-/* Argc max counts. */
-#define CMD_ARGC_MAX   25
-
-/* Turn off these macros when uisng cpp with extract.pl */
-#ifndef VTYSH_EXTRACT_PL  
-
-/* DEFUN for vty command interafce. Little bit hacky ;-). */
-#define DEFUN(funcname, cmdname, cmdstr, helpstr) \
-  int funcname (struct cmd_element *, struct vty *, int, char **); \
-  struct cmd_element cmdname = \
-  { \
-    cmdstr, \
-    funcname, \
-    helpstr \
-  }; \
-  int funcname \
-  (struct cmd_element *self, struct vty *vty, int argc, char **argv)
-
-/* DEFUN_NOSH for commands that vtysh should ignore */
-#define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr) \
-  DEFUN(funcname, cmdname, cmdstr, helpstr)
-
-/* DEFSH for vtysh. */
-#define DEFSH(daemon, cmdname, cmdstr, helpstr) \
-  struct cmd_element cmdname = \
-  { \
-    cmdstr, \
-    NULL, \
-    helpstr, \
-    daemon \
-  }; \
-
-/* DEFUN + DEFSH */
-#define DEFUNSH(daemon, funcname, cmdname, cmdstr, helpstr) \
-  int funcname (struct cmd_element *, struct vty *, int, char **); \
-  struct cmd_element cmdname = \
-  { \
-    cmdstr, \
-    funcname, \
-    helpstr, \
-    daemon \
-  }; \
-  int funcname \
-  (struct cmd_element *self, struct vty *vty, int argc, char **argv)
-
-/* ALIAS macro which define existing command's alias. */
-#define ALIAS(funcname, cmdname, cmdstr, helpstr) \
-  struct cmd_element cmdname = \
-  { \
-    cmdstr, \
-    funcname, \
-    helpstr \
-  };
-
-#endif /* VTYSH_EXTRACT_PL */
-
-/* Some macroes */
-#define CMD_OPTION(S)   ((S[0]) == '[')
-#define CMD_VARIABLE(S) (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<'))
-#define CMD_VARARG(S)   ((S[0]) == '.')
-#define CMD_RANGE(S)	((S[0] == '<'))
-
-#define CMD_IPV4(S)	   ((strcmp ((S), "A.B.C.D") == 0))
-#define CMD_IPV4_PREFIX(S) ((strcmp ((S), "A.B.C.D/M") == 0))
-#define CMD_IPV6(S)        ((strcmp ((S), "X:X::X:X") == 0))
-#define CMD_IPV6_PREFIX(S) ((strcmp ((S), "X:X::X:X/M") == 0))
-
-/* Common descriptions. */
-#define SHOW_STR "Show running system information\n"
-#define IP_STR "IP information\n"
-#define IPV6_STR "IPv6 information\n"
-#define NO_STR "Negate a command or set its defaults\n"
-#define CLEAR_STR "Reset functions\n"
-#define RIP_STR "RIP information\n"
-#define BGP_STR "BGP information\n"
-#define OSPF_STR "OSPF information\n"
-#define NEIGHBOR_STR "Specify neighbor router\n"
-#define DEBUG_STR "Debugging functions (see also 'undebug')\n"
-#define UNDEBUG_STR "Disable debugging functions (see also 'debug')\n"
-#define ROUTER_STR "Enable a routing process\n"
-#define AS_STR "AS number\n"
-#define MBGP_STR "MBGP information\n"
-#define MATCH_STR "Match values from routing table\n"
-#define SET_STR "Set values in destination routing protocol\n"
-#define OUT_STR "Filter outgoing routing updates\n"
-#define IN_STR  "Filter incoming routing updates\n"
-#define V4NOTATION_STR "specify by IPv4 address notation(e.g. 0.0.0.0)\n"
-#define OSPF6_NUMBER_STR "Specify by number\n"
-#define INTERFACE_STR "Interface infomation\n"
-#define IFNAME_STR "Interface name(e.g. ep0)\n"
-#define IP6_STR "IPv6 Information\n"
-#define OSPF6_STR "Open Shortest Path First (OSPF) for IPv6\n"
-#define OSPF6_ROUTER_STR "Enable a routing process\n"
-#define OSPF6_INSTANCE_STR "<1-65535> Instance ID\n"
-#define SECONDS_STR "<1-65535> Seconds\n"
-#define ROUTE_STR "Routing Table\n"
-#define PREFIX_LIST_STR "Build a prefix list\n"
-#define OSPF6_DUMP_TYPE_LIST \
-"(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)"
-#define ISIS_STR "IS-IS information\n"
-#define AREA_TAG_STR "[area tag]\n"
-
-#define CONF_BACKUP_EXT ".sav"
-
-/* IPv4 only machine should not accept IPv6 address for peer's IP
-   address.  So we replace VTY command string like below. */
-#ifdef HAVE_IPV6
-#define NEIGHBOR_CMD       "neighbor (A.B.C.D|X:X::X:X) "
-#define NO_NEIGHBOR_CMD    "no neighbor (A.B.C.D|X:X::X:X) "
-#define NEIGHBOR_ADDR_STR  "Neighbor address\nIPv6 address\n"
-#define NEIGHBOR_CMD2      "neighbor (A.B.C.D|X:X::X:X|WORD) "
-#define NO_NEIGHBOR_CMD2   "no neighbor (A.B.C.D|X:X::X:X|WORD) "
-#define NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-#else
-#define NEIGHBOR_CMD       "neighbor A.B.C.D "
-#define NO_NEIGHBOR_CMD    "no neighbor A.B.C.D "
-#define NEIGHBOR_ADDR_STR  "Neighbor address\n"
-#define NEIGHBOR_CMD2      "neighbor (A.B.C.D|WORD) "
-#define NO_NEIGHBOR_CMD2   "no neighbor (A.B.C.D|WORD) "
-#define NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor tag\n"
-#endif /* HAVE_IPV6 */
-
-/* Prototypes. */
-void install_node (struct cmd_node *, int (*) (struct vty *));
-void install_default (enum node_type);
-void install_element (enum node_type, struct cmd_element *);
-void sort_node ();
-
-char *argv_concat (char **, int, int);
-vector cmd_make_strvec (char *);
-void cmd_free_strvec (vector);
-vector cmd_describe_command ();
-char **cmd_complete_command ();
-char *cmd_prompt (enum node_type);
-int config_from_file (struct vty *, FILE *);
-int cmd_execute_command (vector, struct vty *, struct cmd_element **);
-int cmd_execute_command_strict (vector, struct vty *, struct cmd_element **);
-void config_replace_string (struct cmd_element *, char *, ...);
-void cmd_init (int);
-
-/* Export typical functions. */
-extern struct cmd_element config_end_cmd;
-extern struct cmd_element config_exit_cmd;
-extern struct cmd_element config_quit_cmd;
-extern struct cmd_element config_help_cmd;
-extern struct cmd_element config_list_cmd;
-int config_exit (struct cmd_element *, struct vty *, int, char **);
-int config_help (struct cmd_element *, struct vty *, int, char **);
-char *host_config_file ();
-void host_config_set (char *);
-
-#endif /* _ZEBRA_COMMAND_H */
diff --git a/isisd/modified/config.h.in b/isisd/modified/config.h.in
deleted file mode 100644
index c06839e..0000000
--- a/isisd/modified/config.h.in
+++ /dev/null
@@ -1,368 +0,0 @@
-/* config.h.in.  Generated from configure.in by autoheader.  */
-/* accconfig.h -- `autoheader' will generate config.h.in for zebra.
-   Copyright (C) 1998, 1999 Kunihiro Ishiguro <kunihiro@zebra.org> */
-
-/* Version of GNU Zebra */
-#undef VERSION
-
-/* Solaris on x86. */
-#undef SOLARIS_X86
-
-/* Package name of GNU Zebra */
-#undef PACKAGE
-
-/* Define if host is GNU/Linux */
-#undef GNU_LINUX
-
-/* Define if you have the AF_ROUTE socket.  */
-#undef HAVE_AF_ROUTE
-
-/* Define if you have the inet_aton function.  */
-#undef HAVE_INET_ATON
-
-/* Define if you have the inet_ntop function.  */
-#undef HAVE_INET_NTOP
-
-/* Define if you have the inet_pton function.  */
-#undef HAVE_INET_PTON
-
-/* Define if you have the setproctitle function.  */
-#undef HAVE_SETPROCTITLE
-
-/* Define if you have ipv6 stack.  */
-#undef HAVE_IPV6
-
-/* Define if you wish to support ipv6 router advertisment.  */
-/* #undef HAVE_RTADV */
-
-/* whether system has GNU regex */
-#undef HAVE_GNU_REGEX
-
-/* whether system has SNMP library */
-#undef HAVE_SNMP
-
-/* whether sockaddr has a sa_len field */
-#undef HAVE_SA_LEN
-
-/* whether sockaddr_in has a sin_len field */
-#undef HAVE_SIN_LEN
-
-/* whether sockaddr_un has a sun_len field */
-#undef HAVE_SUN_LEN
-
-/* whether sockaddr_in6 has a sin6_scope_id field */
-#undef HAVE_SIN6_SCOPE_ID
-
-/* Define if there is socklen_t. */
-#undef HAVE_SOCKLEN_T
-
-/* Define if there is sockaddr_dl structure. */
-#undef HAVE_SOCKADDR_DL
-
-/* Define if there is ifaliasreq structure. */
-#undef HAVE_IFALIASREQ
-
-/* Define if there is in6_aliasreq structure. */
-#undef HAVE_IN6_ALIASREQ
-
-/* Define if there is rt_addrinfo structure. */
-#undef HAVE_RT_ADDRINFO
-
-/* Define if there is in_pktinfo structure. */
-#undef HAVE_INPKTINFO
-
-/* Define if you have the getrusage function. */
-#undef HAVE_RUSAGE
-
-/* Define if /proc/net/dev exists. */
-#undef HAVE_PROC_NET_DEV
-
-/* Define if /proc/net/if_inet6 exists. */
-#undef HAVE_PROC_NET_IF_INET6
-
-/* Define if NET_RT_IFLIST exists in sys/socket.h. */
-#undef HAVE_NET_RT_IFLIST
-
-/* Define if you have INRIA ipv6 stack.  */
-#undef INRIA_IPV6
-
-/* Define if you have KAME project ipv6 stack.  */
-#undef KAME
-
-/* Define if you have Linux ipv6 stack.  */
-#undef LINUX_IPV6
-
-/* Define if you have NRL ipv6 stack.  */
-#undef NRL
-
-/* Define if you have BSDI NRL IPv6 stack. */
-#undef BSDI_NRL
-
-/* Define if one-vty option is specified. */
-#undef VTYSH
-
-/* Define if interface aliases don't have distinct indeces */
-#undef HAVE_BROKEN_ALIASES
-
-/* Define if disable-bgp-announce option is specified. */
-#undef DISABLE_BGP_ANNOUNCE
-
-/* PAM support */
-#undef USE_PAM
-
-/* TCP/IP communication between zebra and protocol daemon. */
-#undef HAVE_TCP_ZEBRA
-
-/* The OSPF NSSA option (RFC1587). */
-#undef HAVE_NSSA
-
-/* The OSPF Opaque LSA option (RFC2370). */
-#undef HAVE_OPAQUE_LSA
-
-/* Traffic Engineering Extension to OSPF
-   (draft-katz-yeung-ospf-traffic-06.txt). */
-#undef HAVE_OSPF_TE
-
-/* Linux netlink. */
-#undef HAVE_NETLINK
-
-/* PATHS */
-#undef PATH_ZEBRA_PID
-#undef PATH_RIPD_PID
-#undef PATH_RIPNGD_PID
-#undef PATH_BGPD_PID
-#undef PATH_OSPFD_PID
-#undef PATH_OSPF6D_PID
-#undef PATH_ISISD_PID
-
-/* Define if Solaris */
-#undef SUNOS_5
-
-/* Define if FreeBSD 3.2 */
-#undef FREEBSD_32
-
-/* Define if OpenBSD */
-#undef OPEN_BSD
-
-#ifdef HAVE_IPV6
-#ifdef KAME
-#ifndef INET6
-#define INET6
-#endif /* INET6 */
-#endif /* KAME */
-#endif /* HAVE_IPV6 */
-
-#ifdef SUNOS_5
-typedef unsigned int u_int32_t; 
-typedef unsigned short u_int16_t; 
-typedef unsigned short u_int8_t; 
-#endif /* SUNOS_5 */
-
-#ifndef HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif /* HAVE_SOCKLEN_T */
-
-/* Define to 1 if you have the <asm/types.h> header file. */
-#undef HAVE_ASM_TYPES_H
-
-/* Define to 1 if you have the `bcopy' function. */
-#undef HAVE_BCOPY
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the `daemon' function. */
-#undef HAVE_DAEMON
-
-/* Define to 1 if you have the `getaddrinfo' function. */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the `getifaddrs' function. */
-#undef HAVE_GETIFADDRS
-
-/* Define to 1 if you have the `if_indextoname' function. */
-#undef HAVE_IF_INDEXTONAME
-
-/* Define to 1 if you have the `if_nametoindex' function. */
-#undef HAVE_IF_NAMETOINDEX
-
-/* Define to 1 if you have the `inet_aton' function. */
-#undef HAVE_INET_ATON
-
-/* Define to 1 if you have the <inet/nd.h> header file. */
-#undef HAVE_INET_ND_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <kvm.h> header file. */
-#undef HAVE_KVM_H
-
-/* Define to 1 if you have the `crypt' library (-lcrypt). */
-#undef HAVE_LIBCRYPT
-
-/* Define to 1 if you have the `kvm' library (-lkvm). */
-#undef HAVE_LIBKVM
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `ncurses' library (-lncurses). */
-#undef HAVE_LIBNCURSES
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `readline' library (-lreadline). */
-#undef HAVE_LIBREADLINE
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to 1 if you have the `tinfo' library (-ltinfo). */
-#undef HAVE_LIBTINFO
-
-/* Define to 1 if you have the <libutil.h> header file. */
-#undef HAVE_LIBUTIL_H
-
-/* Define to 1 if you have the `xnet' library (-lxnet). */
-#undef HAVE_LIBXNET
-
-/* Define to 1 if you have the <linux/version.h> header file. */
-#undef HAVE_LINUX_VERSION_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet6/nd6.h> header file. */
-#undef HAVE_NETINET6_ND6_H
-
-/* Define to 1 if you have the <netinet/icmp6.h> header file. */
-#undef HAVE_NETINET_ICMP6_H
-
-/* Define to 1 if you have the <netinet/in6.h> header file. */
-#undef HAVE_NETINET_IN6_H
-
-/* Define to 1 if you have the <netinet/in6_var.h> header file. */
-#undef HAVE_NETINET_IN6_VAR_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <netinet/in_var.h> header file. */
-#undef HAVE_NETINET_IN_VAR_H
-
-/* Define to 1 if you have the <net/if_dl.h> header file. */
-#undef HAVE_NET_IF_DL_H
-
-/* Define to 1 if you have the <net/if_var.h> header file. */
-#undef HAVE_NET_IF_VAR_H
-
-/* Define to 1 if you have the <net/netopt.h> header file. */
-#undef HAVE_NET_NETOPT_H
-
-/* Define to 1 if you have the `setproctitle' function. */
-#undef HAVE_SETPROCTITLE
-
-/* Define to 1 if you have the `snprintf' function. */
-#undef HAVE_SNPRINTF
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the <stropts.h> header file. */
-#undef HAVE_STROPTS_H
-
-/* Define to 1 if you have the <sys/conf.h> header file. */
-#undef HAVE_SYS_CONF_H
-
-/* Define to 1 if you have the <sys/ksym.h> header file. */
-#undef HAVE_SYS_KSYM_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/sockio.h> header file. */
-#undef HAVE_SYS_SOCKIO_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/times.h> header file. */
-#undef HAVE_SYS_TIMES_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to 1 if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
diff --git a/isisd/modified/configure b/isisd/modified/configure
deleted file mode 100755
index e4bf6d4..0000000
--- a/isisd/modified/configure
+++ /dev/null
@@ -1,8277 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53.
-#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conftest.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="lib/zebra.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-dependency-tracking Speeds up one-time builds
-  --enable-dependency-tracking  Do not reject slow dependency extractors
-  --enable-vtysh,       Make integrated VTY version of zebra
-  --disable-ipv6          turn off IPv6 related features and daemons
-  --disable-zebra         do not build zebra daemon
-  --disable-bgpd          do not build bgpd
-  --disable-ripd          do not build ripd
-  --disable-ripngd        do not build ripngd
-  --disable-ospfd         do not build ospfd
-  --disable-ospf6d        do not build ospf6d
-  --disable-isisd         do not build isisd
-  --disable-bgp-announce, turn off BGP route announcement
-  --enable-netlink        force to use Linux netlink interface
-  --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X
-  --enable-snmp           enable SNMP support
-  --enable-tcp-zebra      enable TCP/IP socket connection between zebra and protocol daemon
-  --enable-nssa           enable OSPF NSSA option
-  --enable-opaque-lsa     enable OSPF Opaque-LSA support (RFC2370)
-  --enable-ospf-te        enable Traffic Engineering Extension to OSPF
-  --enable-multipath=ARG  enable multipath function, ARG must be digit
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-cflags           Set CFLAGS for use in compilation.
-  --with-libpam           use libpam for PAM support in vtysh
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell meta-characters.
-ac_configure_args=
-ac_sep=
-for ac_arg
-do
-  case $ac_arg in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n ) continue ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    continue ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  case " $ac_configure_args " in
-    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-       ac_sep=" " ;;
-  esac
-  # Get rid of the leading space.
-done
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core core.* *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-am__api_version="1.6"
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
-      done
-    done
-    ;;
-esac
-done
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
-  fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
-   fi
-
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $.  echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
-else
-  am_missing_run=
-  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AWK+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AWK="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.make <<\_ACEOF
-all:
-	@echo 'ac_maketemp="${MAKE}"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-  SET_MAKE=
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
- # test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# Define the identity of the package.
- PACKAGE=zebra
- VERSION=0.93
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  STRIP=$ac_ct_STRIP
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
-
-
-
-# Add the stamp file to the list of files AC keeps track of,
-# along with our hook.
-ac_config_headers="$ac_config_headers config.h"
-
-
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-
-
-# Check whether --with-cflags or --without-cflags was given.
-if test "${with_cflags+set}" = set; then
-  withval="$with_cflags"
-
-fi;
-if test "x$with_cflags" != "x" ; then
-  CFLAGS="$with_cflags" ; cflags_specified=yes ;
-elif test -n "$CFLAGS" ; then
-  cflags_specified=yes ;
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    set dummy "$as_dir/$ac_word" ${1+"$@"}
-    shift
-    ac_cv_prog_CC="$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
-                ls a.out conftest 2>/dev/null;
-                ls a.* conftest.* 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
-    a.out ) # We found the default executable, but exeext='' is most
-            # certainly right.
-            break;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
-          export ac_cv_exeext
-          break;;
-    * ) break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_compiler_gnu=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-$ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-continue
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-rm -f .deps 2>/dev/null
-mkdir .deps 2>/dev/null
-if test -d .deps; then
-  DEPDIR=.deps
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  DEPDIR=_deps
-fi
-rmdir .deps 2>/dev/null
-
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-doit:
-	@echo done
-END
-# If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
-fi
-
-
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
-  enableval="$enable_dependency_tracking"
-
-fi;
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
-fi
-
-
-
-
-depcc="$CC"   am_compiler_list=
-
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-
-  am_cv_CC_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  for depmode in $am_compiler_list; do
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    echo '#include "conftest.h"' > conftest.c
-    echo 'int i;' > conftest.h
-    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
-
-    case $depmode in
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    none) break ;;
-    esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
-    if depmode=$depmode \
-       source=conftest.c object=conftest.o \
-       depfile=conftest.Po tmpdepfile=conftest.TPo \
-       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
-       grep conftest.h conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      am_cv_CC_dependencies_compiler_type=$depmode
-      break
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-
-if test "x$cflags_specified" = "x" ; then
-  CFLAGS="$CFLAGS -Wall"
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
-      done
-    done
-    ;;
-esac
-done
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
-  fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.make <<\_ACEOF
-all:
-	@echo 'ac_maketemp="${MAKE}"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-  SET_MAKE=
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  AR=$ac_ct_AR
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  RANLIB=$ac_ct_RANLIB
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-
-
-
-echo "$as_me:$LINENO: checking for AIX" >&5
-echo $ECHO_N "checking for AIX... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#ifdef _AIX
-  yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-
-# Check whether --enable-vtysh or --disable-vtysh was given.
-if test "${enable_vtysh+set}" = set; then
-  enableval="$enable_vtysh"
-
-fi;
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
-  enableval="$enable_ipv6"
-
-fi;
-# Check whether --enable-zebra or --disable-zebra was given.
-if test "${enable_zebra+set}" = set; then
-  enableval="$enable_zebra"
-
-fi;
-# Check whether --enable-bgpd or --disable-bgpd was given.
-if test "${enable_bgpd+set}" = set; then
-  enableval="$enable_bgpd"
-
-fi;
-# Check whether --enable-ripd or --disable-ripd was given.
-if test "${enable_ripd+set}" = set; then
-  enableval="$enable_ripd"
-
-fi;
-# Check whether --enable-ripngd or --disable-ripngd was given.
-if test "${enable_ripngd+set}" = set; then
-  enableval="$enable_ripngd"
-
-fi;
-# Check whether --enable-ospfd or --disable-ospfd was given.
-if test "${enable_ospfd+set}" = set; then
-  enableval="$enable_ospfd"
-
-fi;
-# Check whether --enable-ospf6d or --disable-ospf6d was given.
-if test "${enable_ospf6d+set}" = set; then
-  enableval="$enable_ospf6d"
-
-fi;
-# Check whether --enable-isisd or --disable-isisd was given.
-if test "${enable_isisd+set}" = set; then
-  enableval="$enable_isisd"
-
-fi;
-# Check whether --enable-bgp-announce or --disable-bgp-announce was given.
-if test "${enable_bgp_announce+set}" = set; then
-  enableval="$enable_bgp_announce"
-
-fi;
-# Check whether --enable-netlink or --disable-netlink was given.
-if test "${enable_netlink+set}" = set; then
-  enableval="$enable_netlink"
-
-fi;
-# Check whether --enable-broken-aliases or --disable-broken-aliases was given.
-if test "${enable_broken_aliases+set}" = set; then
-  enableval="$enable_broken_aliases"
-
-fi;
-# Check whether --enable-snmp or --disable-snmp was given.
-if test "${enable_snmp+set}" = set; then
-  enableval="$enable_snmp"
-
-fi;
-
-# Check whether --with-libpam or --without-libpam was given.
-if test "${with_libpam+set}" = set; then
-  withval="$with_libpam"
-
-fi;
-# Check whether --enable-tcpsock or --disable-tcpsock was given.
-if test "${enable_tcpsock+set}" = set; then
-  enableval="$enable_tcpsock"
-
-fi;
-# Check whether --enable-nssa or --disable-nssa was given.
-if test "${enable_nssa+set}" = set; then
-  enableval="$enable_nssa"
-
-fi;
-# Check whether --enable-opaque-lsa or --disable-opaque-lsa was given.
-if test "${enable_opaque_lsa+set}" = set; then
-  enableval="$enable_opaque_lsa"
-
-fi;
-# Check whether --enable-ospf-te or --disable-ospf-te was given.
-if test "${enable_ospf_te+set}" = set; then
-  enableval="$enable_ospf_te"
-
-fi;
-# Check whether --enable-multipath or --disable-multipath was given.
-if test "${enable_multipath+set}" = set; then
-  enableval="$enable_multipath"
-
-fi;
-
-
-if test "${enable_broken_aliases}" = "yes"; then
-  if test "${enable_netlink}" = "yes"
-  then
-    echo "Sorry, you can't use netlink with broken aliases"
-    exit 1
-  fi
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_BROKEN_ALIASES 1
-_ACEOF
-
-  enable_netlink=no
-fi
-
-if test "${enable_tcp_zebra}" = "yes"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_TCP_ZEBRA 1
-_ACEOF
-
-fi
-
-if test "${enable_nssa}" = "yes"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_NSSA 1
-_ACEOF
-
-fi
-
-if test "${enable_opaque_lsa}" = "yes"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_OPAQUE_LSA 1
-_ACEOF
-
-fi
-
-if test "${enable_ospf_te}" = "yes"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_OPAQUE_LSA 1
-_ACEOF
-
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_OSPF_TE 1
-_ACEOF
-
-fi
-
-
-
-MULTIPATH_NUM=1
-
-case "${enable_multipath}" in
-  [0-9]|[1-9][0-9])
-    MULTIPATH_NUM="${enable_multipath}"
-    ;;
-  "")
-    ;;
-  *)
-    echo "Please specify digit to --enable-multipath ARG."
-    exit 1
-    ;;
-esac
-
-
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in string.h stropts.h sys/conf.h sys/ksym.h sys/time.h sys/times.h sys/select.h sys/sysctl.h sys/sockio.h sys/types.h net/if_dl.h net/if_var.h linux/version.h kvm.h netdb.h netinet/in.h net/netopt.h netinet/in_var.h netinet/in6_var.h netinet/in6.h inet/nd.h asm/types.h netinet/icmp6.h netinet6/nd6.h libutil.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset x;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *ccp;
-  char **p;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  ccp = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++ccp;
-  p = (char**) ccp;
-  ccp = (char const *const *) p;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-  }
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_const=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_const=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
-if test "${ac_cv_type_signal+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-int i;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_signal=void
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signal=int
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-
-case "$host" in
-  *-sunos5.6* | *-solaris2.6*)
-      opsys=sol2-6
-      cat >>confdefs.h <<\_ACEOF
-#define SUNOS_5 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for main in -lxnet" >&5
-echo $ECHO_N "checking for main in -lxnet... $ECHO_C" >&6
-if test "${ac_cv_lib_xnet_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lxnet  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_xnet_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_xnet_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_main" >&5
-echo "${ECHO_T}$ac_cv_lib_xnet_main" >&6
-if test $ac_cv_lib_xnet_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBXNET 1
-_ACEOF
-
-  LIBS="-lxnet $LIBS"
-
-fi
-
-      CURSES=-lcurses
-  ;;
-  *-sunos5* | *-solaris2*)
-      cat >>confdefs.h <<\_ACEOF
-#define SUNOS_5 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for main in -lsocket" >&5
-echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_socket_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_socket_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_main" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_main" >&6
-if test $ac_cv_lib_socket_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for main in -lnsl" >&5
-echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6
-if test "${ac_cv_lib_nsl_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_nsl_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_nsl_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6
-if test $ac_cv_lib_nsl_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-      CURSES=-lcurses
-  ;;
-  *-linux-*)
-      opsys=gnu-linux
-      cat >>confdefs.h <<\_ACEOF
-#define GNU_LINUX 1
-_ACEOF
-
-  ;;
-  *-nec-sysv4*)
-
-echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gethostbyname ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_nsl_gethostbyname=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
-if test $ac_cv_lib_nsl_gethostbyname = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char socket ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_socket_socket=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_socket_socket=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
-if test $ac_cv_lib_socket_socket = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-  ;;
-  *-freebsd3.2)
-      cat >>confdefs.h <<\_ACEOF
-#define FREEBSD_32 1
-_ACEOF
-
-  ;;
-  *-openbsd*)
-      opsys=openbsd
-      cat >>confdefs.h <<\_ACEOF
-#define OPEN_BSD 1
-_ACEOF
-
-  ;;
-  *-bsdi*)
-      opsys=bsdi
-      OTHER_METHOD="mtu_kvm.o"
-
-echo "$as_me:$LINENO: checking for main in -lkvm" >&5
-echo $ECHO_N "checking for main in -lkvm... $ECHO_C" >&6
-if test "${ac_cv_lib_kvm_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lkvm  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_kvm_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_kvm_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_main" >&5
-echo "${ECHO_T}$ac_cv_lib_kvm_main" >&6
-if test $ac_cv_lib_kvm_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBKVM 1
-_ACEOF
-
-  LIBS="-lkvm $LIBS"
-
-fi
-
-  ;;
-esac
-
-case "${host_cpu}-${host_os}" in
-  i?86-solaris*)
-    cat >>confdefs.h <<\_ACEOF
-#define SOLARIS_X86 1
-_ACEOF
-
-  ;;
-esac
-
-case "${enable_vtysh}" in
-  "yes") VTYSH="vtysh";
-         cat >>confdefs.h <<\_ACEOF
-#define VTYSH 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for tputs in -ltinfo" >&5
-echo $ECHO_N "checking for tputs in -ltinfo... $ECHO_C" >&6
-if test "${ac_cv_lib_tinfo_tputs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltinfo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char tputs ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-tputs ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_tinfo_tputs=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_tinfo_tputs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tputs" >&5
-echo "${ECHO_T}$ac_cv_lib_tinfo_tputs" >&6
-if test $ac_cv_lib_tinfo_tputs = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBTINFO 1
-_ACEOF
-
-  LIBS="-ltinfo $LIBS"
-
-else
-
-echo "$as_me:$LINENO: checking for tputs in -lncurses" >&5
-echo $ECHO_N "checking for tputs in -lncurses... $ECHO_C" >&6
-if test "${ac_cv_lib_ncurses_tputs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lncurses  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char tputs ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-tputs ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_ncurses_tputs=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_ncurses_tputs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tputs" >&5
-echo "${ECHO_T}$ac_cv_lib_ncurses_tputs" >&6
-if test $ac_cv_lib_ncurses_tputs = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNCURSES 1
-_ACEOF
-
-  LIBS="-lncurses $LIBS"
-
-fi
-
-fi
-
-
-echo "$as_me:$LINENO: checking for main in -lreadline" >&5
-echo $ECHO_N "checking for main in -lreadline... $ECHO_C" >&6
-if test "${ac_cv_lib_readline_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_readline_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_readline_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_readline_main" >&5
-echo "${ECHO_T}$ac_cv_lib_readline_main" >&6
-if test $ac_cv_lib_readline_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBREADLINE 1
-_ACEOF
-
-  LIBS="-lreadline $LIBS"
-
-fi
-
-         if test $ac_cv_lib_readline_main = no; then
-           { { echo "$as_me:$LINENO: error: vtysh needs libreadline but was not found on your system." >&5
-echo "$as_me: error: vtysh needs libreadline but was not found on your system." >&2;}
-   { (exit 1); exit 1; }; }
-         fi
-	 if test "${ac_cv_header_readline_history_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for readline/history.h" >&5
-echo $ECHO_N "checking for readline/history.h... $ECHO_C" >&6
-if test "${ac_cv_header_readline_history_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_readline_history_h" >&5
-echo "${ECHO_T}$ac_cv_header_readline_history_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking readline/history.h usability" >&5
-echo $ECHO_N "checking readline/history.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <readline/history.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_header_compiler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking readline/history.h presence" >&5
-echo $ECHO_N "checking readline/history.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <readline/history.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
-    { echo "$as_me:$LINENO: WARNING: readline/history.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: readline/history.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: readline/history.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: readline/history.h: proceeding with the preprocessor's result" >&2;};;
-  no:yes )
-    { echo "$as_me:$LINENO: WARNING: readline/history.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: readline/history.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: readline/history.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: readline/history.h: check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: readline/history.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: readline/history.h: proceeding with the preprocessor's result" >&2;};;
-esac
-echo "$as_me:$LINENO: checking for readline/history.h" >&5
-echo $ECHO_N "checking for readline/history.h... $ECHO_C" >&6
-if test "${ac_cv_header_readline_history_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_readline_history_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_readline_history_h" >&5
-echo "${ECHO_T}$ac_cv_header_readline_history_h" >&6
-
-fi
-
-
-	 if test $ac_cv_header_readline_history_h = no;then
-           { { echo "$as_me:$LINENO: error: readline is too old to have readline/history.h, please update to the latest readline library." >&5
-echo "$as_me: error: readline is too old to have readline/history.h, please update to the latest readline library." >&2;}
-   { (exit 1); exit 1; }; }
-	 fi
-         ;;
-  "no" ) VTYSH="";;
-  *    ) ;;
-esac
-
-if test "$with_libpam" = "yes"; then
-echo "$as_me:$LINENO: checking for pam_start in -lpam" >&5
-echo $ECHO_N "checking for pam_start in -lpam... $ECHO_C" >&6
-if test "${ac_cv_lib_pam_pam_start+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpam  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char pam_start ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-pam_start ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_pam_pam_start=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_pam_start=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_start" >&5
-echo "${ECHO_T}$ac_cv_lib_pam_pam_start" >&6
-if test $ac_cv_lib_pam_pam_start = yes; then
-  echo "$as_me:$LINENO: checking for misc_conv in -lpam" >&5
-echo $ECHO_N "checking for misc_conv in -lpam... $ECHO_C" >&6
-if test "${ac_cv_lib_pam_misc_conv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpam  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char misc_conv ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-misc_conv ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_pam_misc_conv=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_misc_conv=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_pam_misc_conv" >&5
-echo "${ECHO_T}$ac_cv_lib_pam_misc_conv" >&6
-if test $ac_cv_lib_pam_misc_conv = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define USE_PAM 1
-_ACEOF
-
-     LIBPAM="-lpam"
-else
-  cat >>confdefs.h <<\_ACEOF
-#define USE_PAM 1
-_ACEOF
-
-     LIBPAM="-lpam -lpam_misc"
-
-fi
-
-
-else
-  echo "$as_me:$LINENO: checking for pam_end in -lpam" >&5
-echo $ECHO_N "checking for pam_end in -lpam... $ECHO_C" >&6
-if test "${ac_cv_lib_pam_pam_end+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpam -ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char pam_end ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-pam_end ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_pam_pam_end=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_pam_end=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_end" >&5
-echo "${ECHO_T}$ac_cv_lib_pam_pam_end" >&6
-if test $ac_cv_lib_pam_pam_end = yes; then
-  echo "$as_me:$LINENO: checking for misc_conv in -lpam" >&5
-echo $ECHO_N "checking for misc_conv in -lpam... $ECHO_C" >&6
-if test "${ac_cv_lib_pam_misc_conv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpam  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char misc_conv ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-misc_conv ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_pam_misc_conv=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_misc_conv=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_pam_misc_conv" >&5
-echo "${ECHO_T}$ac_cv_lib_pam_misc_conv" >&6
-if test $ac_cv_lib_pam_misc_conv = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define USE_PAM 1
-_ACEOF
-
-       LIBPAM="-lpam -ldl"
-else
-  cat >>confdefs.h <<\_ACEOF
-#define USE_PAM 1
-_ACEOF
-
-       LIBPAM="-lpam -ldl -lpam_misc"
-
-fi
-
-
-else
-  { echo "$as_me:$LINENO: WARNING: *** pam support will not be built ***" >&5
-echo "$as_me: WARNING: *** pam support will not be built ***" >&2;}
-fi
-
-
-
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in bcopy bzero strerror inet_aton daemon snprintf vsnprintf strlcat strlcpy if_nametoindex if_indextoname getifaddrs
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in setproctitle
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: checking for setproctitle in -lutil" >&5
-echo $ECHO_N "checking for setproctitle in -lutil... $ECHO_C" >&6
-if test "${ac_cv_lib_util_setproctitle+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lutil  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char setproctitle ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-setproctitle ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_util_setproctitle=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_util_setproctitle=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_util_setproctitle" >&5
-echo "${ECHO_T}$ac_cv_lib_util_setproctitle" >&6
-if test $ac_cv_lib_util_setproctitle = yes; then
-  LIBS="$LIBS -lutil"; cat >>confdefs.h <<\_ACEOF
-#define HAVE_SETPROCTITLE 1
-_ACEOF
-
-fi
-
-fi
-done
-
-
-echo "$as_me:$LINENO: checking zebra between kernel interface method" >&5
-echo $ECHO_N "checking zebra between kernel interface method... $ECHO_C" >&6
-if test x"$opsys" = x"gnu-linux"; then
-  if test "${enable_netlink}" = "yes";then
-    echo "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
-    RT_METHOD=rt_netlink.o
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_NETLINK 1
-_ACEOF
-
-    netlink=yes
-  elif test "${enable_netlink}" = "no"; then
-    echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
-    RT_METHOD=rt_ioctl.o
-    netlink=no
-  else
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <linux/autoconf.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE > 131328  /* 2.1.0 or later */
-#ifdef CONFIG_RTNETLINK
-  yes
-#endif
-#endif
-#if LINUX_VERSION_CODE > 132112  /* 2.4.17 or later */
-  yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
-    RT_METHOD=rt_netlink.o
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_NETLINK 1
-_ACEOF
-
-    netlink=yes
-else
-  echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
-    RT_METHOD=rt_ioctl.o
-fi
-rm -f conftest*
-
-  fi
-else
-  if test "$opsys" = "sol2-6";then
-    echo "$as_me:$LINENO: result: solaris" >&5
-echo "${ECHO_T}solaris" >&6
-    KERNEL_METHOD="kernel_socket.o"
-    RT_METHOD="rt_socket.o"
-  else
-    if test "$cross_compiling" = yes; then
-  KERNEL_METHOD=kernel_socket.o
-   RT_METHOD=rt_socket.o
-   echo "$as_me:$LINENO: result: socket" >&5
-echo "${ECHO_T}socket" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-main ()
-{
-  int ac_sock;
-
-  ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
-  if (ac_sock < 0 && errno == EINVAL)
-    exit (1);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_AF_ROUTE 1
-_ACEOF
-
-   KERNEL_METHOD=kernel_socket.o
-   RT_METHOD=rt_socket.o
-   echo "$as_me:$LINENO: result: socket" >&5
-echo "${ECHO_T}socket" >&6
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-RT_METHOD=rt_ioctl.o
-   echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-  fi
-fi
-
-
-
-
-echo "$as_me:$LINENO: checking route read method check" >&5
-echo $ECHO_N "checking route read method check... $ECHO_C" >&6
-if test "${zebra_rtread+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$netlink" = yes; then
-  RTREAD_METHOD="rtread_netlink.o"
-  zebra_rtread="netlink"
-else
-for zebra_rtread in /proc/net/route /dev/ip /dev/null;
-do
-  test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
-done
-case $zebra_rtread in
-  "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
-                     zebra_rtread="proc";;
-  "/dev/ip")         RTREAD_METHOD="rtread_getmsg.o"
-                     zebra_rtread="getmsg";;
-  *)                 RTREAD_METHOD="rtread_sysctl.o"
-                     zebra_rtread="sysctl";;
-esac
-fi
-fi
-echo "$as_me:$LINENO: result: $zebra_rtread" >&5
-echo "${ECHO_T}$zebra_rtread" >&6
-
-
-echo "$as_me:$LINENO: checking interface looking up method" >&5
-echo $ECHO_N "checking interface looking up method... $ECHO_C" >&6
-if test "$netlink" = yes; then
-  echo "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
-  IF_METHOD=if_netlink.o
-else
-  if test "$opsys" = "sol2-6";then
-    echo "$as_me:$LINENO: result: solaris" >&5
-echo "${ECHO_T}solaris" >&6
-    IF_METHOD=if_ioctl.o
-  elif test "$opsys" = "openbsd";then
-    echo "$as_me:$LINENO: result: openbsd" >&5
-echo "${ECHO_T}openbsd" >&6
-    IF_METHOD=if_ioctl.o
-  elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
-    echo "$as_me:$LINENO: result: sysctl" >&5
-echo "${ECHO_T}sysctl" >&6
-    IF_METHOD=if_sysctl.o
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_NET_RT_IFLIST 1
-_ACEOF
-
-  else
-    echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
-    IF_METHOD=if_ioctl.o
-  fi
-fi
-
-
-if test -r /proc/net/dev; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_PROC_NET_DEV 1
-_ACEOF
-
-  IF_PROC=if_proc.o
-fi
-
-if test -r /proc/net/if_inet6; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_PROC_NET_IF_INET6 1
-_ACEOF
-
-  IF_PROC=if_proc.o
-fi
-
-
-echo "$as_me:$LINENO: checking ipforward method check" >&5
-echo $ECHO_N "checking ipforward method check... $ECHO_C" >&6
-if test "${zebra_ipforward_path+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
-do
-  test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
-done
-case $zebra_ipforward_path in
-  "/proc/net/snmp")  IPFORWARD=ipforward_proc.o
-                     zebra_ipforward_path="proc";;
-  "/dev/ip")
-                     case "$host" in
-                       *-nec-sysv4*)  IPFORWARD=ipforward_ews.o
-                                      zebra_ipforward_path="ews";;
-                       *)             IPFORWARD=ipforward_solaris.o
-                                      zebra_ipforward_path="solaris";;
-                     esac;;
-  *)                 IPFORWARD=ipforward_sysctl.o
-                     zebra_ipforward_path="sysctl";;
-esac
-fi
-echo "$as_me:$LINENO: result: $zebra_ipforward_path" >&5
-echo "${ECHO_T}$zebra_ipforward_path" >&6
-
-
-
-for ac_func in getaddrinfo
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- have_getaddrinfo=yes
-else
-  have_getaddrinfo=no
-fi
-done
-
-
-echo "$as_me:$LINENO: checking whether does this OS have IPv6 stack" >&5
-echo $ECHO_N "checking whether does this OS have IPv6 stack... $ECHO_C" >&6
-if test "${enable_ipv6}" = "no"; then
-  echo "$as_me:$LINENO: result: disabled" >&5
-echo "${ECHO_T}disabled" >&6
-else
-if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6 1
-_ACEOF
-
-   cat >>confdefs.h <<\_ACEOF
-#define INRIA_IPV6 1
-_ACEOF
-
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   LIB_IPV6=""
-   echo "$as_me:$LINENO: result: INRIA IPv6" >&5
-echo "${ECHO_T}INRIA IPv6" >&6
-fi
-if grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6 1
-_ACEOF
-
-   cat >>confdefs.h <<\_ACEOF
-#define KAME 1
-_ACEOF
-
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
-      LIB_IPV6="-L/usr/local/v6/lib -linet6"
-   fi
-   echo "$as_me:$LINENO: result: KAME" >&5
-echo "${ECHO_T}KAME" >&6
-fi
-if grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6 1
-_ACEOF
-
-   cat >>confdefs.h <<\_ACEOF
-#define NRL 1
-_ACEOF
-
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test x"$opsys" = x"bsdi";then
-      cat >>confdefs.h <<\_ACEOF
-#define BSDI_NRL 1
-_ACEOF
-
-      echo "$as_me:$LINENO: result: BSDI_NRL" >&5
-echo "${ECHO_T}BSDI_NRL" >&6
-   else
-      echo "$as_me:$LINENO: result: NRL" >&5
-echo "${ECHO_T}NRL" >&6
-   fi
-fi
-
-if test "${enable_ipv6}" = "yes"; then
-   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-   #include <linux/version.h>
-   /* 2.1.128 or later */
-   #if LINUX_VERSION_CODE >= 0x020180
-   yes
-   #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  zebra_cv_ipv6=yes; zebra_cv_linux_ipv6=yes;echo "$as_me:$LINENO: result: Linux IPv6" >&5
-echo "${ECHO_T}Linux IPv6" >&6
-fi
-rm -f conftest*
-
-else
-   if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
-   then
-      zebra_cv_ipv6=yes
-      zebra_cv_linux_ipv6=yes
-      echo "$as_me:$LINENO: result: Linux IPv6" >&5
-echo "${ECHO_T}Linux IPv6" >&6
-   fi
-fi
-
-if test "$zebra_cv_linux_ipv6" = "yes";then
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6 1
-_ACEOF
-
-   echo "$as_me:$LINENO: checking for GNU libc 2.1" >&5
-echo $ECHO_N "checking for GNU libc 2.1... $ECHO_C" >&6
-   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#include <features.h>
-#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
-  yes
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  glibc=yes; echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-   cat >>confdefs.h <<\_ACEOF
-#define LINUX_IPV6 1
-_ACEOF
-
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test "$glibc" != "yes"; then
-      INCLUDES="-I/usr/inet6/include"
-      if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
-         LIB_IPV6="-L/usr/inet6/lib -linet6"
-      fi
-   fi
-fi
-
-LIBS="$LIB_IPV6 $LIBS"
-
-
-if test x"$RIPNGD" = x""; then
-  echo "$as_me:$LINENO: result: IPv4 only" >&5
-echo "${ECHO_T}IPv4 only" >&6
-fi
-fi
-
-if test "${enable_zebra}" = "no";then
-  ZEBRA=""
-else
-  ZEBRA="zebra"
-fi
-
-if test "${enable_bgpd}" = "no";then
-  BGPD=""
-else
-  BGPD="bgpd"
-fi
-
-if test "${enable_ripd}" = "no";then
-  RIPD=""
-else
-  RIPD="ripd"
-fi
-
-if test "${enable_ospfd}" = "no";then
-  OSPFD=""
-else
-  OSPFD="ospfd"
-fi
-
-case "${enable_ripngd}" in
-  "yes") RIPNGD="ripngd";;
-  "no" ) RIPNGD="";;
-  *    ) ;;
-esac
-
-case "${enable_ospf6d}" in
-  "yes") OSPF6D="ospf6d";;
-  "no" ) OSPF6D="";;
-  *    ) ;;
-esac
-
-case "${enable_isisd}" in
-  "yes") ISISD="isisd";;
-  "no" ) ISISD="";;
-  *    ) ;;
-esac
-
-if test "${enable_bgp_announce}" = "no";then
-  cat >>confdefs.h <<\_ACEOF
-#define DISABLE_BGP_ANNOUNCE 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-echo "$as_me:$LINENO: checking for inet_ntop in -lc" >&5
-echo $ECHO_N "checking for inet_ntop in -lc... $ECHO_C" >&6
-if test "${ac_cv_lib_c_inet_ntop+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char inet_ntop ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-inet_ntop ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_c_inet_ntop=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_inet_ntop=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_inet_ntop" >&5
-echo "${ECHO_T}$ac_cv_lib_c_inet_ntop" >&6
-if test $ac_cv_lib_c_inet_ntop = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_INET_NTOP 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for inet_pton in -lc" >&5
-echo $ECHO_N "checking for inet_pton in -lc... $ECHO_C" >&6
-if test "${ac_cv_lib_c_inet_pton+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char inet_pton ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-inet_pton ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_c_inet_pton=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_inet_pton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_inet_pton" >&5
-echo "${ECHO_T}$ac_cv_lib_c_inet_pton" >&6
-if test $ac_cv_lib_c_inet_pton = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_INET_PTON 1
-_ACEOF
-
-fi
-
-
-echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
-if test "${ac_cv_lib_crypt_crypt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypt  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char crypt ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-crypt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crypt_crypt=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_crypt_crypt=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
-if test $ac_cv_lib_crypt_crypt = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBCRYPT 1
-_ACEOF
-
-  LIBS="-lcrypt $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for res_init in -lresolv" >&5
-echo $ECHO_N "checking for res_init in -lresolv... $ECHO_C" >&6
-if test "${ac_cv_lib_resolv_res_init+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char res_init ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-res_init ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_resolv_res_init=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_resolv_res_init=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_init" >&5
-echo "${ECHO_T}$ac_cv_lib_resolv_res_init" >&6
-if test $ac_cv_lib_resolv_res_init = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for main in -lm" >&5
-echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6
-if test "${ac_cv_lib_m_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_m_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_m_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5
-echo "${ECHO_T}$ac_cv_lib_m_main" >&6
-if test $ac_cv_lib_m_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
-  LIBS="-lm $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for __inet_ntop" >&5
-echo $ECHO_N "checking for __inet_ntop... $ECHO_C" >&6
-if test "${ac_cv_func___inet_ntop+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_ntop (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char __inet_ntop ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub___inet_ntop) || defined (__stub_____inet_ntop)
-choke me
-#else
-f = __inet_ntop;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func___inet_ntop=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_ntop=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func___inet_ntop" >&5
-echo "${ECHO_T}$ac_cv_func___inet_ntop" >&6
-if test $ac_cv_func___inet_ntop = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_INET_NTOP 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for __inet_pton" >&5
-echo $ECHO_N "checking for __inet_pton... $ECHO_C" >&6
-if test "${ac_cv_func___inet_pton+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_pton (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char __inet_pton ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub___inet_pton) || defined (__stub_____inet_pton)
-choke me
-#else
-f = __inet_pton;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func___inet_pton=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_pton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func___inet_pton" >&5
-echo "${ECHO_T}$ac_cv_func___inet_pton" >&6
-if test $ac_cv_func___inet_pton = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_INET_PTON 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for __inet_aton" >&5
-echo $ECHO_N "checking for __inet_aton... $ECHO_C" >&6
-if test "${ac_cv_func___inet_aton+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_aton (); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char __inet_aton ();
-char (*f) ();
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub___inet_aton) || defined (__stub_____inet_aton)
-choke me
-#else
-f = __inet_aton;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func___inet_aton=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_aton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func___inet_aton" >&5
-echo "${ECHO_T}$ac_cv_func___inet_aton" >&6
-if test $ac_cv_func___inet_aton = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_INET_ATON 1
-_ACEOF
-
-fi
-
-
-echo "$as_me:$LINENO: checking for regexec in -lc" >&5
-echo $ECHO_N "checking for regexec in -lc... $ECHO_C" >&6
-if test "${ac_cv_lib_c_regexec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char regexec ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-regexec ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_c_regexec=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_regexec=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_c_regexec" >&5
-echo "${ECHO_T}$ac_cv_lib_c_regexec" >&6
-if test $ac_cv_lib_c_regexec = yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_REGEX 1
-_ACEOF
-
- LIB_REGEX=""
-else
-  LIB_REGEX="regex.o"
-fi
-
-
-
-
-if test "${enable_snmp}" = "yes";then
-  old_libs="${LIBS}"
-  LIBS="-L/usr/local/lib"
-  unset ac_cv_lib_snmp_asn_parse_int
-  echo "$as_me:$LINENO: checking for asn_parse_int in -lsnmp" >&5
-echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
-if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsnmp  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char asn_parse_int ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-asn_parse_int ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_snmp_asn_parse_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_snmp_asn_parse_int=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_snmp_asn_parse_int" >&5
-echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
-if test $ac_cv_lib_snmp_asn_parse_int = yes; then
-  HAVE_SNMP=yes
-fi
-
-  if test "${HAVE_SNMP}" = ""; then
-    unset ac_cv_lib_snmp_asn_parse_int
-    echo "$as_me:$LINENO: checking for main in -lcrypto" >&5
-echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6
-if test "${ac_cv_lib_crypto_main+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypto  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-main ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_crypto_main=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_crypto_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_main" >&5
-echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6
-if test $ac_cv_lib_crypto_main = yes; then
-  NEED_CRYPTO=yes
-fi
-
-	if test "${NEED_CRYPTO}" = ""; then
-		echo "$as_me:$LINENO: checking for asn_parse_int in -lsnmp" >&5
-echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
-if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsnmp  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char asn_parse_int ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-asn_parse_int ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_snmp_asn_parse_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_snmp_asn_parse_int=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_snmp_asn_parse_int" >&5
-echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
-if test $ac_cv_lib_snmp_asn_parse_int = yes; then
-  HAVE_SNMP=yes; NEED_CRYPTO=yes
-fi
-
-	else
-	    echo "$as_me:$LINENO: checking for asn_parse_int in -lsnmp" >&5
-echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
-if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsnmp "-lcrypto" $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char asn_parse_int ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-asn_parse_int ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_snmp_asn_parse_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_snmp_asn_parse_int=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_snmp_asn_parse_int" >&5
-echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
-if test $ac_cv_lib_snmp_asn_parse_int = yes; then
-  HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto"
-fi
-
-	fi
-  fi
-  LIBS="${old_libs}"
-
-  if test "${HAVE_SNMP}" = ""; then
-	old_libs="${LIBS}"
-	LIBS="-L/usr/local/lib"
-	echo "$as_me:$LINENO: checking for asn_parse_int in -lsnmp" >&5
-echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
-if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsnmp  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char asn_parse_int ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-asn_parse_int ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_snmp_asn_parse_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_snmp_asn_parse_int=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_snmp_asn_parse_int" >&5
-echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
-if test $ac_cv_lib_snmp_asn_parse_int = yes; then
-  HAVE_SNMP=yes
-fi
-
-	LIBS="${old_libs}"
-  fi
-  if test "${HAVE_SNMP}" = "yes"; then
-    for ac_snmp in /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
-    do
-      test -f "${ac_snmp}" && break
-    done
-    case ${ac_snmp} in
-      /usr/include/ucd-snmp/*)
-                  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SNMP 1
-_ACEOF
-
-                  CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
-    		  LIBS="${LIBS} -lsnmp"
-                  ;;
-      /usr/local/include/ucd-snmp/*)
-                  cat >>confdefs.h <<\_ACEOF
-#define HAVE_SNMP 1
-_ACEOF
-
-  	          CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
-  		  LIBS="${LIBS} -L/usr/local/lib -lsnmp"
-                  ;;
-    esac
-    if test "${NEED_CRYPTO}" = "yes"; then
-      LIBS="${LIBS} -lcrypto"
-    fi
-  fi
-fi
-
-echo "$as_me:$LINENO: checking whether struct sockaddr has a sa_len field" >&5
-echo $ECHO_N "checking whether struct sockaddr has a sa_len field... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SA_LEN 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking whether struct sockaddr_in has a sin_len field" >&5
-echo $ECHO_N "checking whether struct sockaddr_in has a sin_len field... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIN_LEN 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking whether struct sockaddr_un has a sun_len field" >&5
-echo $ECHO_N "checking whether struct sockaddr_un has a sun_len field... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/un.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SUN_LEN 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-if test "$zebra_cv_ipv6" = yes; then
-  echo "$as_me:$LINENO: checking whether struct sockaddr_in6 has a sin6_scope_id field" >&5
-echo $ECHO_N "checking whether struct sockaddr_in6 has a sin6_scope_id field... $ECHO_C" >&6
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIN6_SCOPE_ID 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: checking whther socklen_t is defined" >&5
-echo $ECHO_N "checking whther socklen_t is defined... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-socklen_t ac_x;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKLEN_T 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking whether struct sockaddr_dl exist" >&5
-echo $ECHO_N "checking whether struct sockaddr_dl exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <net/if_dl.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "sockaddr_dl" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKADDR_DL 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: checking whether struct ifaliasreq exist" >&5
-echo $ECHO_N "checking whether struct ifaliasreq exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <net/if.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "ifaliasreq" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_IFALIASREQ 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: checking whether struct if6_aliasreq exist" >&5
-echo $ECHO_N "checking whether struct if6_aliasreq exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <netinet6/in6_var.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "in6_aliasreq" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_IN6_ALIASREQ 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: checking whether struct rt_addrinfo exist" >&5
-echo $ECHO_N "checking whether struct rt_addrinfo exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <net/route.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "rt_addrinfo" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_RT_ADDRINFO 1
-_ACEOF
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: checking whether struct in_pktinfo exist" >&5
-echo $ECHO_N "checking whether struct in_pktinfo exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <netinet/in.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-struct in_pktinfo ac_x;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_INPKTINFO 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking whether getrusage is available" >&5
-echo $ECHO_N "checking whether getrusage is available... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/resource.h>
-
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_RUSAGE 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-file="${srcdir}/lib/version.h"
-VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
-
-
-echo "$as_me:$LINENO: checking pid file directory" >&5
-echo $ECHO_N "checking pid file directory... $ECHO_C" >&6
-if test "${ac_piddir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  for ZEBRA_PID_DIR in /var/run	                   /var/adm	                   /etc		                   /dev/null;
-do
-  test -d $ZEBRA_PID_DIR && break
-done
-ac_piddir=$ZEBRA_PID_DIR
-if test $ZEBRA_PID_DIR = "/dev/null"; then
-  echo "PID DIRECTORY NOT FOUND!"
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_piddir" >&5
-echo "${ECHO_T}$ac_piddir" >&6
-cat >>confdefs.h <<_ACEOF
-#define PATH_ZEBRA_PID "$ac_piddir/zebra.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_RIPD_PID "$ac_piddir/ripd.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_RIPNGD_PID "$ac_piddir/ripngd.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_BGPD_PID "$ac_piddir/bgpd.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_OSPFD_PID "$ac_piddir/ospfd.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_OSPF6D_PID "$ac_piddir/ospf6d.pid"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_ISISD_PID "$ac_piddir/isisd.pid"
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for working htonl" >&5
-echo $ECHO_N "checking for working htonl... $ECHO_C" >&6
-if test "${ac_cv_htonl_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-htonl (0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_htonl_works=yes
-else
-  echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_htonl_works=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $ac_cv_htonl_works" >&5
-echo "${ECHO_T}$ac_cv_htonl_works" >&6
-
-ac_config_files="$ac_config_files Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile"
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-        "s/'/'\\\\''/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if cmp -s $cache_file confcache; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ 	]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ 	]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conftest.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.53,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    shift
-    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
-    shift
-    ;;
-  -*);;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_need_defaults=false;;
-  esac
-
-  case $1 in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
-    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="$CONFIG_FILES $1"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $1"
-    ac_need_defaults=false;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
-  "zebra/Makefile" ) CONFIG_FILES="$CONFIG_FILES zebra/Makefile" ;;
-  "ripd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ripd/Makefile" ;;
-  "ripngd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ripngd/Makefile" ;;
-  "bgpd/Makefile" ) CONFIG_FILES="$CONFIG_FILES bgpd/Makefile" ;;
-  "ospfd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ospfd/Makefile" ;;
-  "ospf6d/Makefile" ) CONFIG_FILES="$CONFIG_FILES ospf6d/Makefile" ;;
-  "isisd/Makefile" ) CONFIG_FILES="$CONFIG_FILES isisd/Makefile" ;;
-  "vtysh/Makefile" ) CONFIG_FILES="$CONFIG_FILES vtysh/Makefile" ;;
-  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=$TMPDIR/cs$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@PACKAGE@,$PACKAGE,;t t
-s,@VERSION@,$VERSION,;t t
-s,@ACLOCAL@,$ACLOCAL,;t t
-s,@AUTOCONF@,$AUTOCONF,;t t
-s,@AUTOMAKE@,$AUTOMAKE,;t t
-s,@AUTOHEADER@,$AUTOHEADER,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@AMTAR@,$AMTAR,;t t
-s,@install_sh@,$install_sh,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s,@CCDEPMODE@,$CCDEPMODE,;t t
-s,@CPP@,$CPP,;t t
-s,@AR@,$AR,;t t
-s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@MULTIPATH_NUM@,$MULTIPATH_NUM,;t t
-s,@LIBPAM@,$LIBPAM,;t t
-s,@RT_METHOD@,$RT_METHOD,;t t
-s,@KERNEL_METHOD@,$KERNEL_METHOD,;t t
-s,@OTHER_METHOD@,$OTHER_METHOD,;t t
-s,@RTREAD_METHOD@,$RTREAD_METHOD,;t t
-s,@IF_METHOD@,$IF_METHOD,;t t
-s,@IF_PROC@,$IF_PROC,;t t
-s,@IPFORWARD@,$IPFORWARD,;t t
-s,@LIB_IPV6@,$LIB_IPV6,;t t
-s,@ZEBRA@,$ZEBRA,;t t
-s,@BGPD@,$BGPD,;t t
-s,@RIPD@,$RIPD,;t t
-s,@RIPNGD@,$RIPNGD,;t t
-s,@OSPFD@,$OSPFD,;t t
-s,@OSPF6D@,$OSPF6D,;t t
-s,@ISISD@,$ISISD,;t t
-s,@VTYSH@,$VTYSH,;t t
-s,@INCLUDES@,$INCLUDES,;t t
-s,@CURSES@,$CURSES,;t t
-s,@LIB_REGEX@,$LIB_REGEX,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-  esac
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='[ 	].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
-    fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
-  fi
-  # Run the commands associated with the file.
-  case $ac_file in
-    config.h ) # update the timestamp
-echo 'timestamp for config.h' >"./stamp-h1"
- ;;
-  esac
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_dest" : 'X\(//\)[^/]' \| \
-         X"$ac_dest" : 'X\(//\)$' \| \
-         X"$ac_dest" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$mf" : 'X\(//\)[^/]' \| \
-         X"$mf" : 'X\(//\)$' \| \
-         X"$mf" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  else
-    continue
-  fi
-  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
-  # Extract the definition of DEP_FILES from the Makefile without
-  # running `make'.
-  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n -e '/^U = / s///p' < "$mf"`
-  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
-  # We invoke sed twice because it is the simplest approach to
-  # changing $(DEPDIR) to its actual value in the expansion.
-  for file in `sed -n -e '
-    /^DEP_FILES = .*\\\\$/ {
-      s/^DEP_FILES = //
-      :loop
-	s/\\\\$//
-	p
-	n
-	/\\\\$/ b loop
-      p
-    }
-    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$file" : 'X\(//\)[^/]' \| \
-         X"$file" : 'X\(//\)$' \| \
-         X"$file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    { case $dirpart/$fdir in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy=$dirpart/$fdir
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create $dirpart/$fdir" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
-
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
-  done
-done
- ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-echo "
-zebra configuration
--------------------
-zebra version           : ${VERSION}
-host operationg system  : ${host_os}
-source code location    : ${srcdir}
-compiler                : ${CC}
-compiler flags          : ${CFLAGS}
-directory for pid files : ${ac_piddir}
-"
diff --git a/isisd/modified/configure.in b/isisd/modified/configure.in
deleted file mode 100755
index 49b508b..0000000
--- a/isisd/modified/configure.in
+++ /dev/null
@@ -1,882 +0,0 @@
-##
-## Configure template file for Zebra.
-## autoconf will generate configure script.
-##
-##  Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
-##
-AC_PREREQ(2.13)
-
-AC_INIT(lib/zebra.h)
-AM_INIT_AUTOMAKE(zebra, 0.93)
-AM_CONFIG_HEADER(config.h)
-
-dnl -----------------------------------
-dnl Get hostname and other information.
-dnl -----------------------------------
-AC_CANONICAL_HOST
-
-dnl ------------
-dnl Check CFLAGS
-dnl ------------
-AC_ARG_WITH(cflags,
-[  --with-cflags           Set CFLAGS for use in compilation.])
-if test "x$with_cflags" != "x" ; then
-  CFLAGS="$with_cflags" ; cflags_specified=yes ;
-elif test -n "$CFLAGS" ; then
-  cflags_specified=yes ;
-fi
-
-dnl --------
-dnl Check CC
-dnl --------
-AC_PROG_CC
-
-dnl -----------------------------------------
-dnl If CLFAGS doesn\'t exist set default value
-dnl -----------------------------------------
-if test "x$cflags_specified" = "x" ; then
-  CFLAGS="$CFLAGS -Wall"
-fi
-
-dnl --------------
-dnl Check programs
-dnl --------------
-AC_PROG_CPP
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-dnl ---------
-dnl AIX check
-dnl ---------
-AC_AIX
-
-dnl ----------------------
-dnl Packages configuration
-dnl ----------------------
-AC_ARG_ENABLE(vtysh,
-[  --enable-vtysh,       Make integrated VTY version of zebra])
-AC_ARG_ENABLE(ipv6,
-[  --disable-ipv6          turn off IPv6 related features and daemons])
-AC_ARG_ENABLE(zebra,
-[  --disable-zebra         do not build zebra daemon])
-AC_ARG_ENABLE(bgpd,
-[  --disable-bgpd          do not build bgpd])
-AC_ARG_ENABLE(ripd,
-[  --disable-ripd          do not build ripd])
-AC_ARG_ENABLE(ripngd,
-[  --disable-ripngd        do not build ripngd])
-AC_ARG_ENABLE(ospfd,
-[  --disable-ospfd         do not build ospfd])
-AC_ARG_ENABLE(ospf6d,
-[  --disable-ospf6d        do not build ospf6d])
-AC_ARG_ENABLE(isisd,
-[  --disable-isisd         do not build isisd])
-AC_ARG_ENABLE(bgp-announce,
-[  --disable-bgp-announce, turn off BGP route announcement])
-AC_ARG_ENABLE(netlink,
-[  --enable-netlink        force to use Linux netlink interface])
-AC_ARG_ENABLE(broken-aliases,
-[  --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
-AC_ARG_ENABLE(snmp,
-[  --enable-snmp           enable SNMP support])
-AC_ARG_WITH(libpam,
-[  --with-libpam           use libpam for PAM support in vtysh])
-AC_ARG_ENABLE(tcpsock,
-[  --enable-tcp-zebra      enable TCP/IP socket connection between zebra and protocol daemon])
-dnl Temporary option until OSPF NSSA implementation complete
-AC_ARG_ENABLE(nssa,
-[  --enable-nssa           enable OSPF NSSA option])
-AC_ARG_ENABLE(opaque-lsa,
-[  --enable-opaque-lsa     enable OSPF Opaque-LSA support (RFC2370)])
-AC_ARG_ENABLE(ospf-te,
-[  --enable-ospf-te        enable Traffic Engineering Extension to OSPF])
-AC_ARG_ENABLE(multipath,
-[  --enable-multipath=ARG  enable multipath function, ARG must be digit])
-
-dnl AC_ARG_ENABLE(rtadv,
-dnl [  --enable-rtadv          enable IPV6 router advertisment option])
-
-if test "${enable_broken_aliases}" = "yes"; then
-  if test "${enable_netlink}" = "yes"
-  then
-    echo "Sorry, you can't use netlink with broken aliases"
-    exit 1
-  fi
-  AC_DEFINE(HAVE_BROKEN_ALIASES)
-  enable_netlink=no
-fi
-
-if test "${enable_tcp_zebra}" = "yes"; then
-  AC_DEFINE(HAVE_TCP_ZEBRA)
-fi
-
-if test "${enable_nssa}" = "yes"; then
-  AC_DEFINE(HAVE_NSSA)
-fi
-
-if test "${enable_opaque_lsa}" = "yes"; then
-  AC_DEFINE(HAVE_OPAQUE_LSA)
-fi
-
-if test "${enable_ospf_te}" = "yes"; then
-  AC_DEFINE(HAVE_OPAQUE_LSA)
-  AC_DEFINE(HAVE_OSPF_TE)
-fi
-
-dnl if test "${enable_rtadv}" = "yes"; then
-dnl   AC_DEFINE(HAVE_RTADV)
-dnl fi
-
-changequote(, )dnl
-
-MULTIPATH_NUM=1
-
-case "${enable_multipath}" in
-  [0-9]|[1-9][0-9])
-    MULTIPATH_NUM="${enable_multipath}"
-    ;;
-  "")
-    ;;
-  *)           
-    echo "Please specify digit to --enable-multipath ARG."
-    exit 1
-    ;;
-esac
-
-changequote([, ])dnl
-
-AC_SUBST(MULTIPATH_NUM)
-
-dnl -------------------
-dnl Check header files.
-dnl -------------------
-AC_STDC_HEADERS
-AC_CHECK_HEADERS(string.h stropts.h sys/conf.h sys/ksym.h sys/time.h sys/times.h sys/select.h sys/sysctl.h sys/sockio.h sys/types.h net/if_dl.h net/if_var.h linux/version.h kvm.h netdb.h netinet/in.h net/netopt.h netinet/in_var.h netinet/in6_var.h netinet/in6.h inet/nd.h asm/types.h netinet/icmp6.h netinet6/nd6.h libutil.h)
-
-dnl check some types
-AC_C_CONST
-dnl AC_TYPE_PID_T
-AC_TYPE_SIGNAL
-
-dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
-case "$host" in
-  *-sunos5.6* | *-solaris2.6*)
-      opsys=sol2-6
-      AC_DEFINE(SUNOS_5)
-      AC_CHECK_LIB(xnet, main)
-      CURSES=-lcurses
-  ;;
-  *-sunos5* | *-solaris2*)
-      AC_DEFINE(SUNOS_5)
-      AC_CHECK_LIB(socket, main)
-      AC_CHECK_LIB(nsl, main)
-      CURSES=-lcurses
-  ;;
-  *-linux-*)
-      opsys=gnu-linux
-      AC_DEFINE(GNU_LINUX)
-  ;;
-  *-nec-sysv4*)
-      AC_CHECK_LIB(nsl, gethostbyname)
-      AC_CHECK_LIB(socket, socket)
-  ;;
-  *-freebsd3.2)
-      AC_DEFINE(FREEBSD_32)
-  ;;
-  *-openbsd*)
-      opsys=openbsd
-      AC_DEFINE(OPEN_BSD)
-  ;;
-  *-bsdi*)
-      opsys=bsdi
-      OTHER_METHOD="mtu_kvm.o"
-      AC_CHECK_LIB(kvm, main)
-  ;;
-esac
-
-case "${host_cpu}-${host_os}" in
-  i?86-solaris*)
-    AC_DEFINE(SOLARIS_X86)
-  ;;
-esac
-
-dnl ---------------------
-dnl Integrated VTY option
-dnl ---------------------
-case "${enable_vtysh}" in
-  "yes") VTYSH="vtysh";
-         AC_DEFINE(VTYSH)
-	 AC_CHECK_LIB(tinfo, tputs, , AC_CHECK_LIB(ncurses, tputs))
-         AC_CHECK_LIB(readline, main)
-         if test $ac_cv_lib_readline_main = no; then
-           AC_MSG_ERROR([vtysh needs libreadline but was not found on your system.])
-         fi
-	 AC_CHECK_HEADER(readline/history.h)
-	 if test $ac_cv_header_readline_history_h = no;then
-           AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
-	 fi
-         ;;
-  "no" ) VTYSH="";;
-  *    ) ;;
-esac
-
-dnl ----------
-dnl PAM module
-dnl ----------
-if test "$with_libpam" = "yes"; then
-dnl took this test from proftpd's configure.in and suited to our needs
-dnl -------------------------------------------------------------------------
-dnl
-dnl This next check looks funky due to a linker problem with some versions
-dnl of the PAM library.  Prior to 0.72 release, the Linux PAM shared library
-dnl omitted requiring libdl linking information. PAM-0.72 or better ships
-dnl with RedHat 6.2 and Debian 2.2 or better.
-AC_CHECK_LIB(pam, pam_start,
-  [AC_CHECK_LIB(pam, misc_conv,
-    [AC_DEFINE(USE_PAM)
-     LIBPAM="-lpam"],
-    [AC_DEFINE(USE_PAM)
-     LIBPAM="-lpam -lpam_misc"]
-    )
-  ],
-
-  [AC_CHECK_LIB(pam, pam_end,
-    [AC_CHECK_LIB(pam, misc_conv,
-      [AC_DEFINE(USE_PAM)
-       LIBPAM="-lpam -ldl"],
-      [AC_DEFINE(USE_PAM)
-       LIBPAM="-lpam -ldl -lpam_misc"]
-     )
-  ],AC_MSG_WARN([*** pam support will not be built ***]),
-  [-ldl])
-  ]
-)
-fi
-AC_SUBST(LIBPAM)
-
-dnl -------------------------------
-dnl Endian-ness check
-dnl -------------------------------
-AC_DEFUN(ZEBRA_AC_C_BIGENDIAN,
-[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
-[ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
-if test $ac_cv_c_bigendian = unknown; then
-AC_TRY_RUN([main () {
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)
-fi])
-if test $ac_cv_c_bigendian = yes; then
-  AC_DEFINE(WORDS_BIGENDIAN,1,Big endian words)
-fi
-])
-
-dnl -------------------------------
-dnl check the size in byte of the C
-dnl -------------------------------
-dnl AC_CHECK_SIZEOF(char)
-dnl AC_CHECK_SIZEOF(int)
-dnl AC_CHECK_SIZEOF(short)
-dnl AC_CHECK_SIZEOF(long)
-
-dnl ----------------------------
-dnl check existance of functions
-dnl ----------------------------
-AC_CHECK_FUNCS(bcopy bzero strerror inet_aton daemon snprintf vsnprintf strlcat strlcpy if_nametoindex if_indextoname getifaddrs)
-AC_CHECK_FUNCS(setproctitle, ,[AC_CHECK_LIB(util, setproctitle, [LIBS="$LIBS -lutil"; AC_DEFINE(HAVE_SETPROCTITLE)])])
-
-dnl ------------------------------------
-dnl Determine routing get and set method
-dnl ------------------------------------
-AC_MSG_CHECKING(zebra between kernel interface method)
-if test x"$opsys" = x"gnu-linux"; then
-  if test "${enable_netlink}" = "yes";then
-    AC_MSG_RESULT(netlink)
-    RT_METHOD=rt_netlink.o
-    AC_DEFINE(HAVE_NETLINK)
-    netlink=yes
-  elif test "${enable_netlink}" = "no"; then
-    AC_MSG_RESULT(ioctl)
-    RT_METHOD=rt_ioctl.o
-    netlink=no
-  else
-    AC_EGREP_CPP(yes,
-    [#include <linux/autoconf.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE > 131328  /* 2.1.0 or later */
-#ifdef CONFIG_RTNETLINK
-  yes
-#endif
-#endif
-#if LINUX_VERSION_CODE > 132112  /* 2.4.17 or later */
-  yes
-#endif
-    ],
-   [AC_MSG_RESULT(netlink)
-    RT_METHOD=rt_netlink.o
-    AC_DEFINE(HAVE_NETLINK)
-    netlink=yes],
-   [AC_MSG_RESULT(ioctl)
-    RT_METHOD=rt_ioctl.o])
-  fi
-else
-  if test "$opsys" = "sol2-6";then
-    AC_MSG_RESULT(solaris)
-    KERNEL_METHOD="kernel_socket.o"
-    RT_METHOD="rt_socket.o"
-  else
-    AC_TRY_RUN([#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-main ()
-{
-  int ac_sock;
-
-  ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
-  if (ac_sock < 0 && errno == EINVAL)
-    exit (1);
-  exit (0);
-}],
-  [AC_DEFINE(HAVE_AF_ROUTE)
-   KERNEL_METHOD=kernel_socket.o
-   RT_METHOD=rt_socket.o
-   AC_MSG_RESULT(socket)],
-  [RT_METHOD=rt_ioctl.o
-   AC_MSG_RESULT(ioctl)],
-  [KERNEL_METHOD=kernel_socket.o
-   RT_METHOD=rt_socket.o
-   AC_MSG_RESULT(socket)])
-  fi
-fi
-AC_SUBST(RT_METHOD)
-AC_SUBST(KERNEL_METHOD)
-AC_SUBST(OTHER_METHOD)
-
-dnl ------------------------------
-dnl check kernel route read method
-dnl ------------------------------
-AC_CACHE_CHECK(route read method check, zebra_rtread,
-[if test "$netlink" = yes; then
-  RTREAD_METHOD="rtread_netlink.o"
-  zebra_rtread="netlink"
-else
-for zebra_rtread in /proc/net/route /dev/ip /dev/null;
-do
-  test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
-done
-case $zebra_rtread in
-  "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
-                     zebra_rtread="proc";;
-  "/dev/ip")         RTREAD_METHOD="rtread_getmsg.o"
-                     zebra_rtread="getmsg";;
-  *)                 RTREAD_METHOD="rtread_sysctl.o"
-                     zebra_rtread="sysctl";;
-esac
-fi])
-AC_SUBST(RTREAD_METHOD)
-
-dnl -----------------------------
-dnl check interface lookup method
-dnl -----------------------------
-AC_MSG_CHECKING(interface looking up method)
-if test "$netlink" = yes; then
-  AC_MSG_RESULT(netlink)
-  IF_METHOD=if_netlink.o
-else
-  if test "$opsys" = "sol2-6";then
-    AC_MSG_RESULT(solaris)
-    IF_METHOD=if_ioctl.o
-  elif test "$opsys" = "openbsd";then
-    AC_MSG_RESULT(openbsd)
-    IF_METHOD=if_ioctl.o
-  elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
-    AC_MSG_RESULT(sysctl)
-    IF_METHOD=if_sysctl.o
-    AC_DEFINE(HAVE_NET_RT_IFLIST)
-  else
-    AC_MSG_RESULT(ioctl)
-    IF_METHOD=if_ioctl.o
-  fi
-fi
-AC_SUBST(IF_METHOD)
-
-dnl -----------------------
-dnl check proc file system.
-dnl -----------------------
-if test -r /proc/net/dev; then
-  AC_DEFINE(HAVE_PROC_NET_DEV)
-  IF_PROC=if_proc.o
-fi
-
-if test -r /proc/net/if_inet6; then
-  AC_DEFINE(HAVE_PROC_NET_IF_INET6)
-  IF_PROC=if_proc.o
-fi
-AC_SUBST(IF_PROC)
-
-dnl -----------------------------
-dnl check ipforward detect method
-dnl -----------------------------
-AC_CACHE_CHECK(ipforward method check, zebra_ipforward_path,
-[for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
-do
-  test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
-done
-case $zebra_ipforward_path in
-  "/proc/net/snmp")  IPFORWARD=ipforward_proc.o
-                     zebra_ipforward_path="proc";;
-  "/dev/ip")         
-                     case "$host" in
-                       *-nec-sysv4*)  IPFORWARD=ipforward_ews.o
-                                      zebra_ipforward_path="ews";;
-                       *)             IPFORWARD=ipforward_solaris.o
-                                      zebra_ipforward_path="solaris";;
-                     esac;;
-  *)                 IPFORWARD=ipforward_sysctl.o
-                     zebra_ipforward_path="sysctl";;
-esac])
-AC_SUBST(IPFORWARD)
-
-AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
-
-dnl ----------
-dnl IPv6 check
-dnl ----------
-AC_MSG_CHECKING(whether does this OS have IPv6 stack)
-if test "${enable_ipv6}" = "no"; then
-  AC_MSG_RESULT(disabled)
-else
-dnl ----------
-dnl INRIA IPv6
-dnl ----------
-if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(INRIA_IPV6)
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   LIB_IPV6=""
-   AC_MSG_RESULT(INRIA IPv6)
-fi
-dnl ---------
-dnl KAME IPv6
-dnl ---------
-if grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(KAME)
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
-      LIB_IPV6="-L/usr/local/v6/lib -linet6"
-   fi
-   AC_MSG_RESULT(KAME)
-fi
-dnl ---------
-dnl NRL check
-dnl ---------
-if grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
-   zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(NRL)
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test x"$opsys" = x"bsdi";then
-      AC_DEFINE(BSDI_NRL)
-      AC_MSG_RESULT(BSDI_NRL)
-   else
-      AC_MSG_RESULT(NRL)
-   fi
-fi
-
-dnl ----------
-dnl Linux IPv6
-dnl ----------
-if test "${enable_ipv6}" = "yes"; then
-   AC_EGREP_CPP(yes, [
-   #include <linux/version.h>
-   /* 2.1.128 or later */
-   #if LINUX_VERSION_CODE >= 0x020180
-   yes
-   #endif],
-   [zebra_cv_ipv6=yes; zebra_cv_linux_ipv6=yes;AC_MSG_RESULT(Linux IPv6)])
-else
-   if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
-   then
-      zebra_cv_ipv6=yes
-      zebra_cv_linux_ipv6=yes
-      AC_MSG_RESULT(Linux IPv6)
-   fi
-fi
-
-if test "$zebra_cv_linux_ipv6" = "yes";then
-   AC_DEFINE(HAVE_IPV6)
-   AC_MSG_CHECKING(for GNU libc 2.1)
-   AC_EGREP_CPP(yes, [
-#include <features.h>
-#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
-  yes
-#endif], [glibc=yes; AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
-   AC_DEFINE(LINUX_IPV6)   
-   RIPNGD="ripngd"
-   OSPF6D="ospf6d"
-   if test "$glibc" != "yes"; then
-      INCLUDES="-I/usr/inet6/include"
-      if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
-         LIB_IPV6="-L/usr/inet6/lib -linet6"
-      fi
-   fi
-fi
-
-dnl -----------------------
-dnl Set IPv6 related values
-dnl -----------------------
-LIBS="$LIB_IPV6 $LIBS"
-AC_SUBST(LIB_IPV6)
-
-if test x"$RIPNGD" = x""; then
-  AC_MSG_RESULT(IPv4 only)
-fi
-fi
-
-dnl --------------------
-dnl Daemon disable check
-dnl --------------------
-if test "${enable_zebra}" = "no";then
-  ZEBRA=""
-else
-  ZEBRA="zebra"
-fi
-
-if test "${enable_bgpd}" = "no";then
-  BGPD=""
-else
-  BGPD="bgpd"
-fi
-
-if test "${enable_ripd}" = "no";then
-  RIPD=""
-else
-  RIPD="ripd"
-fi
-
-if test "${enable_ospfd}" = "no";then
-  OSPFD=""
-else
-  OSPFD="ospfd"
-fi
-
-case "${enable_ripngd}" in
-  "yes") RIPNGD="ripngd";;
-  "no" ) RIPNGD="";;
-  *    ) ;;
-esac
-
-case "${enable_ospf6d}" in
-  "yes") OSPF6D="ospf6d";;
-  "no" ) OSPF6D="";;
-  *    ) ;;
-esac
-
-case "${enable_isisd}" in
-  "yes") ISISD="isisd";;
-  "no" ) ISISD="";;
-  *    ) ;;
-esac
-
-if test "${enable_bgp_announce}" = "no";then
-  AC_DEFINE(DISABLE_BGP_ANNOUNCE)
-fi
-
-AC_SUBST(ZEBRA)
-AC_SUBST(BGPD)
-AC_SUBST(RIPD)
-AC_SUBST(RIPNGD)
-AC_SUBST(OSPFD)
-AC_SUBST(OSPF6D)
-AC_SUBST(ISISD)
-AC_SUBST(VTYSH)
-AC_SUBST(INCLUDES)
-AC_SUBST(CURSES)
-AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
-AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
-AC_CHECK_LIB(crypt, crypt)
-AC_CHECK_LIB(resolv, res_init)
-AC_CHECK_LIB(m, main)
-
-dnl ---------------------------------------------------
-dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
-dnl ---------------------------------------------------
-AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP))
-AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON))
-AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON))
-
-dnl ---------------------------
-dnl check system has GNU regexp
-dnl ---------------------------
-dnl AC_MSG_CHECKING(whether system has GNU regex)
-AC_CHECK_LIB(c, regexec,
-[AC_DEFINE(HAVE_GNU_REGEX)
- LIB_REGEX=""],
-[LIB_REGEX="regex.o"])
-AC_SUBST(LIB_REGEX)
-
-dnl AC_MSG_CHECKING(whether system has GNU regex)
-dnl if grep RE_NO_GNU_OPS /usr/include/regex.h >/dev/null 2>&1; then
-dnl   AC_MSG_RESULT(yes)
-dnl   AC_DEFINE(HAVE_GNU_REGEX)
-dnl   LIB_REGEX=""
-dnl else
-dnl   AC_MSG_RESULT(no)
-dnl   LIB_REGEX="regex.o"
-dnl fi
-dnl AC_SUBST(LIB_REGEX)
-
-dnl ------------------
-dnl check SNMP library
-dnl ------------------
-if test "${enable_snmp}" = "yes";then
-dnl  AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
-  old_libs="${LIBS}"
-  LIBS="-L/usr/local/lib"
-  unset ac_cv_lib_snmp_asn_parse_int
-  AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
-  if test "${HAVE_SNMP}" = ""; then
-    unset ac_cv_lib_snmp_asn_parse_int
-    AC_CHECK_LIB(crypto, main, [NEED_CRYPTO=yes ], )
-	if test "${NEED_CRYPTO}" = ""; then 
-		AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes ],)
-	else
-	    AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
-	fi
-  fi
-  LIBS="${old_libs}"
-
-  if test "${HAVE_SNMP}" = ""; then
-	old_libs="${LIBS}"
-	LIBS="-L/usr/local/lib"
-	AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
-	LIBS="${old_libs}"
-  fi
-  if test "${HAVE_SNMP}" = "yes"; then
-    for ac_snmp in /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
-    do
-      test -f "${ac_snmp}" && break
-    done
-    case ${ac_snmp} in
-      /usr/include/ucd-snmp/*) 
-                  AC_DEFINE(HAVE_SNMP)
-                  CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
-    		  LIBS="${LIBS} -lsnmp"
-                  ;;
-      /usr/local/include/ucd-snmp/*) 
-                  AC_DEFINE(HAVE_SNMP)
-  	          CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
-  		  LIBS="${LIBS} -L/usr/local/lib -lsnmp"
-                  ;;
-    esac
-    if test "${NEED_CRYPTO}" = "yes"; then
-      LIBS="${LIBS} -lcrypto"
-    fi
-  fi
-fi
-
-dnl ----------------------------
-dnl check sa_len of sockaddr
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr has a sa_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-],[static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SA_LEN)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check sin_len of sockaddr_in
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr_in has a sin_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-],[static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN_LEN)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check sun_len of sockaddr_un
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr_un has a sun_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/un.h>
-],[static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SUN_LEN)],
- AC_MSG_RESULT(no))
-
-dnl -----------------------------------
-dnl check sin6_scope_id of sockaddr_in6
-dnl -----------------------------------
-if test "$zebra_cv_ipv6" = yes; then
-  AC_MSG_CHECKING(whether struct sockaddr_in6 has a sin6_scope_id field)
-  AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-],[static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN6_SCOPE_ID)],
- AC_MSG_RESULT(no))
-fi
-
-dnl ----------------------------
-dnl check socklen_t exist or not
-dnl ----------------------------
-AC_MSG_CHECKING(whther socklen_t is defined)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-],[socklen_t ac_x;],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKLEN_T)],
- AC_MSG_RESULT(no))
-
-dnl ------------------------
-dnl check struct sockaddr_dl
-dnl ------------------------
-AC_MSG_CHECKING(whether struct sockaddr_dl exist)
-AC_EGREP_HEADER(sockaddr_dl,
-net/if_dl.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKADDR_DL)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------
-dnl check structure ifaliasreq
-dnl --------------------------
-AC_MSG_CHECKING(whether struct ifaliasreq exist)
-AC_EGREP_HEADER(ifaliasreq,
-net/if.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IFALIASREQ)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check structure in6_aliasreq
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct if6_aliasreq exist)
-AC_EGREP_HEADER(in6_aliasreq,
-netinet6/in6_var.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IN6_ALIASREQ)],
- AC_MSG_RESULT(no))
-
-dnl ---------------------------
-dnl check structure rt_addrinfo
-dnl ---------------------------
-AC_MSG_CHECKING(whether struct rt_addrinfo exist)
-AC_EGREP_HEADER(rt_addrinfo,
-net/route.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RT_ADDRINFO)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------
-dnl check structure in_pktinfo
-dnl --------------------------
-AC_MSG_CHECKING(whether struct in_pktinfo exist)
-AC_TRY_COMPILE([#include <netinet/in.h>
-],[struct in_pktinfo ac_x;],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_INPKTINFO)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------------------
-dnl checking for getrusage struct and call
-dnl --------------------------------------
-AC_MSG_CHECKING(whether getrusage is available)
-AC_TRY_COMPILE([#include <sys/resource.h>
-],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RUSAGE)],
- AC_MSG_RESULT(no))
-
-dnl -------------
-dnl check version
-dnl -------------
-file="${srcdir}/lib/version.h"
-VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
-AC_SUBST(VERSION)
-
-dnl ------------------------------
-dnl set paths for process id files
-dnl ------------------------------
-AC_CACHE_CHECK(pid file directory,ac_piddir,
-[for ZEBRA_PID_DIR in /var/run	dnl
-                   /var/adm	dnl
-                   /etc		dnl
-                   /dev/null;
-do
-  test -d $ZEBRA_PID_DIR && break
-done
-ac_piddir=$ZEBRA_PID_DIR
-if test $ZEBRA_PID_DIR = "/dev/null"; then
-  echo "PID DIRECTORY NOT FOUND!"
-fi])
-AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$ac_piddir/zebra.pid")
-AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$ac_piddir/ripd.pid")
-AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$ac_piddir/ripngd.pid")
-AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$ac_piddir/bgpd.pid")
-AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$ac_piddir/ospfd.pid")
-AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$ac_piddir/ospf6d.pid")
-AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$ac_piddir/isisd.pid")
-
-dnl ---------------------------
-dnl Check htonl works correctly
-dnl ---------------------------
-AC_MSG_CHECKING(for working htonl)
-AC_CACHE_VAL(ac_cv_htonl_works, [
-AC_TRY_LINK([#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif],
-[htonl (0);],
-ac_cv_htonl_works=yes,
-ac_cv_htonl_works=no)])
-AC_MSG_RESULT($ac_cv_htonl_works)
-
-AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile)
-
-echo "
-zebra configuration
--------------------
-zebra version           : ${VERSION}
-host operationg system  : ${host_os}
-source code location    : ${srcdir}
-compiler                : ${CC}
-compiler flags          : ${CFLAGS}
-directory for pid files : ${ac_piddir}
-"
diff --git a/isisd/modified/log.c b/isisd/modified/log.c
deleted file mode 100644
index 385fb38..0000000
--- a/isisd/modified/log.c
+++ /dev/null
@@ -1,484 +0,0 @@
-/* Logging of zebra
- * Copyright (C) 1997, 1998, 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 "log.h"
-#include "memory.h"
-#include "command.h"
-
-struct zlog *zlog_default = NULL;
-
-const char *zlog_proto_names[] = 
-{
-  "NONE",
-  "DEFAULT",
-  "ZEBRA",
-  "RIP",
-  "BGP",
-  "OSPF",
-  "RIPNG",
-  "OSPF6",
-  "ISIS",
-  "MASC",
-  NULL,
-};
-
-const char *zlog_priority[] =
-{
-  "emergencies",
-  "alerts",
-  "critical",
-  "errors",
-  "warnings",
-  "notifications",
-  "informational",
-  "debugging",
-  NULL,
-};
-  
-
-
-/* For time string format. */
-#define TIME_BUF 27
-
-/* Utility routine for current time printing. */
-static void
-time_print (FILE *fp)
-{
-  int ret;
-  char buf [TIME_BUF];
-  time_t clock;
-  struct tm *tm;
-  
-  time (&clock);
-  tm = localtime (&clock);
-
-  ret = strftime (buf, TIME_BUF, "%Y/%m/%d %H:%M:%S", tm);
-  if (ret == 0) {
-    zlog_warn ("strftime error");
-  }
-
-  fprintf (fp, "%s ", buf);
-}
-
-/* va_list version of zlog. */
-void
-vzlog (struct zlog *zl, int priority, const char *format, va_list *args)
-{
-  /* If zlog is not specified, use default one. */
-  if (zl == NULL)
-    zl = zlog_default;
-
-  /* When zlog_default is also NULL, use stderr for logging. */
-  if (zl == NULL)
-    {
-      time_print (stderr);
-      fprintf (stderr, "%s: ", "unknown");
-      vfprintf (stderr, format, args[ZLOG_NOLOG_INDEX]);
-      fprintf (stderr, "\n");
-      fflush (stderr);
-
-      /* In this case we return at here. */
-      return;
-    }
-
-  /* only log this information if it has not been masked out */
-  if ( priority > zl->maskpri )
-    return ;
-		
-  /* Syslog output */
-  if (zl->flags & ZLOG_SYSLOG)
-    vsyslog (priority, format, args[ZLOG_SYSLOG_INDEX]);
-
-  /* File output. */
-  if (zl->flags & ZLOG_FILE)
-    {
-      time_print (zl->fp);
-      if (zl->record_priority) fprintf (zl->fp, "%s: ", zlog_priority[priority]);
-      fprintf (zl->fp, "%s: ", zlog_proto_names[zl->protocol]);
-      vfprintf (zl->fp, format, args[ZLOG_FILE_INDEX]);
-      fprintf (zl->fp, "\n");
-      fflush (zl->fp);
-    }
-
-  /* stdout output. */
-  if (zl->flags & ZLOG_STDOUT)
-    {
-      time_print (stdout);
-      if (zl->record_priority) fprintf (stdout, "%s: ", zlog_priority[priority]);
-      fprintf (stdout, "%s: ", zlog_proto_names[zl->protocol]);
-      vfprintf (stdout, format, args[ZLOG_STDOUT_INDEX]);
-      fprintf (stdout, "\n");
-      fflush (stdout);
-    }
-
-  /* stderr output. */
-  if (zl->flags & ZLOG_STDERR)
-    {
-      time_print (stderr);
-      if (zl->record_priority) fprintf (stderr, "%s: ", zlog_priority[priority]);
-      fprintf (stderr, "%s: ", zlog_proto_names[zl->protocol]);
-      vfprintf (stderr, format, args[ZLOG_STDERR_INDEX]);
-      fprintf (stderr, "\n");
-      fflush (stderr);
-    }
-
-  /* Terminal monitor. */
-  vty_log (zlog_proto_names[zl->protocol], format, args[ZLOG_NOLOG_INDEX]);
-}
-
-void
-zlog (struct zlog *zl, int priority, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, priority, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-zlog_err (const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (NULL, LOG_ERR, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-zlog_warn (const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (NULL, LOG_WARNING, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-zlog_info (const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (NULL, LOG_INFO, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-zlog_notice (const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (NULL, LOG_NOTICE, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-zlog_debug (const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (NULL, LOG_DEBUG, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-plog_err (struct zlog *zl, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, LOG_ERR, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-plog_warn (struct zlog *zl, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, LOG_WARNING, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-plog_info (struct zlog *zl, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, LOG_INFO, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-plog_notice (struct zlog *zl, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, LOG_NOTICE, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-void
-plog_debug (struct zlog *zl, const char *format, ...)
-{
-  va_list args[ZLOG_MAX_INDEX];
-  int index;
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_start(args[index], format);
-
-  vzlog (zl, LOG_DEBUG, format, args);
-
-  for (index = 0; index < ZLOG_MAX_INDEX; index++)
-    va_end (args[index]);
-}
-
-
-/* Open log stream */
-struct zlog *
-openzlog (const char *progname, int flags, zlog_proto_t protocol,
-	  int syslog_flags, int syslog_facility)
-{
-  struct zlog *zl;
-
-  zl = XMALLOC(MTYPE_ZLOG, sizeof (struct zlog));
-  memset (zl, 0, sizeof (struct zlog));
-
-  zl->ident = progname;
-  zl->flags = flags;
-  zl->protocol = protocol;
-  zl->facility = syslog_facility;
-  zl->maskpri = LOG_DEBUG;
-  zl->record_priority = 0;
-
-  openlog (progname, syslog_flags, zl->facility);
-  
-  return zl;
-}
-
-void
-closezlog (struct zlog *zl)
-{
-  closelog();
-  fclose (zl->fp);
-
-  XFREE (MTYPE_ZLOG, zl);
-}
-
-/* Called from command.c. */
-void
-zlog_set_flag (struct zlog *zl, int flags)
-{
-  if (zl == NULL)
-    zl = zlog_default;
-
-  zl->flags |= flags;
-}
-
-void
-zlog_reset_flag (struct zlog *zl, int flags)
-{
-  if (zl == NULL)
-    zl = zlog_default;
-
-  zl->flags &= ~flags;
-}
-
-int
-zlog_set_file (struct zlog *zl, int flags, char *filename)
-{
-  FILE *fp;
-
-  /* There is opend file.  */
-  zlog_reset_file (zl);
-
-  /* Set default zl. */
-  if (zl == NULL)
-    zl = zlog_default;
-
-  /* Open file. */
-  fp = fopen (filename, "a");
-  if (fp == NULL)
-    return 0;
-
-  /* Set flags. */
-  zl->filename = strdup (filename);
-  zl->flags |= ZLOG_FILE;
-  zl->fp = fp;
-
-  return 1;
-}
-
-/* Reset opend file. */
-int
-zlog_reset_file (struct zlog *zl)
-{
-  if (zl == NULL)
-    zl = zlog_default;
-
-  zl->flags &= ~ZLOG_FILE;
-
-  if (zl->fp)
-    fclose (zl->fp);
-  zl->fp = NULL;
-
-  if (zl->filename)
-    free (zl->filename);
-  zl->filename = NULL;
-
-  return 1;
-}
-
-/* Reopen log file. */
-int
-zlog_rotate (struct zlog *zl)
-{
-  FILE *fp;
-
-  if (zl == NULL)
-    zl = zlog_default;
-
-  if (zl->fp)
-    fclose (zl->fp);
-  zl->fp = NULL;
-
-  if (zl->filename)
-    {
-      fp = fopen (zl->filename, "a");
-      if (fp == NULL)
-	return -1;
-      zl->fp = fp;
-    }
-
-  return 1;
-}
-
-static char *zlog_cwd = NULL;
-
-void
-zlog_save_cwd ()
-{
-  char *cwd;
-
-  cwd = getcwd (NULL, MAXPATHLEN);
-
-  zlog_cwd = XMALLOC (MTYPE_TMP, strlen (cwd) + 1);
-  strcpy (zlog_cwd, cwd);
-}
-
-char *
-zlog_get_cwd ()
-{
-  return zlog_cwd;
-}
-
-void
-zlog_free_cwd ()
-{
-  if (zlog_cwd)
-    XFREE (MTYPE_TMP, zlog_cwd);
-}
-
-/* Message lookup function. */
-char *
-lookup (struct message *mes, int key)
-{
-  struct message *pnt;
-
-  for (pnt = mes; pnt->key != 0; pnt++) 
-    if (pnt->key == key) 
-      return pnt->str;
-
-  return "";
-}
-
-/* Very old hacky version of message lookup function.  Still partly
-   used in bgpd and ospfd. */
-char *
-mes_lookup (struct message *meslist, int max, int index)
-{
-  if (index < 0 || index >= max) 
-    {
-      zlog_err ("message index out of bound: %d", max);
-      return NULL;
-    }
-  return meslist[index].str;
-}
diff --git a/isisd/modified/log.h b/isisd/modified/log.h
deleted file mode 100644
index 8948ea0..0000000
--- a/isisd/modified/log.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Zebra logging funcions.
- * Copyright (C) 1997, 1998, 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.  
- */
-
-#ifndef _ZEBRA_LOG_H
-#define _ZEBRA_LOG_H
-
-#include <syslog.h>
-
-#define ZLOG_NOLOG              0x00
-#define ZLOG_FILE		0x01
-#define ZLOG_SYSLOG		0x02
-#define ZLOG_STDOUT             0x04
-#define ZLOG_STDERR             0x08
-
-#define ZLOG_NOLOG_INDEX        0
-#define ZLOG_FILE_INDEX         1
-#define ZLOG_SYSLOG_INDEX       2
-#define ZLOG_STDOUT_INDEX       3
-#define ZLOG_STDERR_INDEX       4
-#define ZLOG_MAX_INDEX          5
-
-typedef enum 
-{
-  ZLOG_NONE,
-  ZLOG_DEFAULT,
-  ZLOG_ZEBRA,
-  ZLOG_RIP,
-  ZLOG_BGP,
-  ZLOG_OSPF,
-  ZLOG_RIPNG,  
-  ZLOG_OSPF6,
-  ZLOG_ISIS,
-  ZLOG_MASC
-} zlog_proto_t;
-
-struct zlog 
-{
-  const char *ident;
-  zlog_proto_t protocol;
-  int flags;
-  FILE *fp;
-  char *filename;
-  int syslog;
-  int stat;
-  int connected;
-  int maskpri;		/* as per syslog setlogmask */
-  int priority;		/* as per syslog priority */
-  int facility;		/* as per syslog facility */
-  int record_priority;
-};
-
-/* Message structure. */
-struct message
-{
-  int key;
-  char *str;
-};
-
-/* Default logging strucutre. */
-extern struct zlog *zlog_default;
-
-/* Open zlog function */
-struct zlog *openzlog (const char *, int, zlog_proto_t, int, int);
-
-/* Close zlog function. */
-void closezlog (struct zlog *zl);
-
-/* GCC have printf type attribute check.  */
-#ifdef __GNUC__
-#define PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b)))
-#else
-#define PRINTF_ATTRIBUTE(a,b)
-#endif /* __GNUC__ */
-
-/* Generic function for zlog. */
-void zlog (struct zlog *zl, int priority, const char *format, ...) PRINTF_ATTRIBUTE(3, 4);
-
-/* Handy zlog functions. */
-void zlog_err (const char *format, ...) PRINTF_ATTRIBUTE(1, 2);
-void zlog_warn (const char *format, ...) PRINTF_ATTRIBUTE(1, 2);
-void zlog_info (const char *format, ...) PRINTF_ATTRIBUTE(1, 2);
-void zlog_notice (const char *format, ...) PRINTF_ATTRIBUTE(1, 2);
-void zlog_debug (const char *format, ...) PRINTF_ATTRIBUTE(1, 2);
-
-/* For bgpd's peer oriented log. */
-void plog_err (struct zlog *, const char *format, ...);
-void plog_warn (struct zlog *, const char *format, ...);
-void plog_info (struct zlog *, const char *format, ...);
-void plog_notice (struct zlog *, const char *format, ...);
-void plog_debug (struct zlog *, const char *format, ...);
-
-/* Set zlog flags. */
-void zlog_set_flag (struct zlog *zl, int flags);
-void zlog_reset_flag (struct zlog *zl, int flags);
-
-/* Set zlog filename. */
-int zlog_set_file (struct zlog *zl, int flags, char *filename);
-int zlog_reset_file (struct zlog *zl);
-
-/* Rotate log. */
-int zlog_rotate ();
-
-/* For hackey massage lookup and check */
-#define LOOKUP(x, y) mes_lookup(x, x ## _max, y)
-
-char *lookup (struct message *, int);
-char *mes_lookup (struct message *meslist, int max, int index);
-
-extern const char *zlog_priority[];
-
-#endif /* _ZEBRA_LOG_H */
diff --git a/isisd/modified/memory.c b/isisd/modified/memory.c
deleted file mode 100644
index 49ff321..0000000
--- a/isisd/modified/memory.c
+++ /dev/null
@@ -1,527 +0,0 @@
-/*
- * Memory management routine
- * Copyright (C) 1998 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 "log.h"
-#include "memory.h"
-
-void alloc_inc (int);
-void alloc_dec (int);
-
-struct message mstr [] =
-{
-  { MTYPE_THREAD, "thread" },
-  { MTYPE_THREAD_MASTER, "thread_master" },
-  { MTYPE_VECTOR, "vector" },
-  { MTYPE_VECTOR_INDEX, "vector_index" },
-  { MTYPE_IF, "interface" },
-  { 0, NULL },
-};
-
-/* Fatal memory allocation error occured. */
-static void
-zerror (const char *fname, int type, size_t size)
-{
-  fprintf (stderr, "%s : can't allocate memory for `%s' size %d\n", 
-	   fname, lookup (mstr, type), (int) size);
-  exit (1);
-}
-
-/* Memory allocation. */
-void *
-zmalloc (int type, size_t size)
-{
-  void *memory;
-
-  memory = malloc (size);
-
-  if (memory == NULL)
-    zerror ("malloc", type, size);
-
-  alloc_inc (type);
-
-  return memory;
-}
-
-/* Memory allocation with num * size with cleared. */
-void *
-zcalloc (int type, size_t size)
-{
-  void *memory;
-
-  memory = calloc (1, size);
-
-  if (memory == NULL)
-    zerror ("calloc", type, size);
-
-  alloc_inc (type);
-
-  return memory;
-}
-
-/* Memory reallocation. */
-void *
-zrealloc (int type, void *ptr, size_t size)
-{
-  void *memory;
-
-  memory = realloc (ptr, size);
-  if (memory == NULL)
-    zerror ("realloc", type, size);
-  return memory;
-}
-
-/* Memory free. */
-void
-zfree (int type, void *ptr)
-{
-  alloc_dec (type);
-  free (ptr);
-}
-
-/* String duplication. */
-char *
-zstrdup (int type, char *str)
-{
-  void *dup;
-
-  dup = strdup (str);
-  if (dup == NULL)
-    zerror ("strdup", type, strlen (str));
-  alloc_inc (type);
-  return dup;
-}
-
-#ifdef MEMORY_LOG
-struct 
-{
-  char *name;
-  unsigned long alloc;
-  unsigned long t_malloc;
-  unsigned long c_malloc;
-  unsigned long t_calloc;
-  unsigned long c_calloc;
-  unsigned long t_realloc;
-  unsigned long t_free;
-  unsigned long c_strdup;
-} mstat [MTYPE_MAX];
-
-void
-mtype_log (char *func, void *memory, const char *file, int line, int type)
-{
-  zlog_info ("%s: %s %p %s %d", func, lookup (mstr, type), memory, file, line);
-}
-
-void *
-mtype_zmalloc (const char *file, int line, int type, size_t size)
-{
-  void *memory;
-
-  mstat[type].c_malloc++;
-  mstat[type].t_malloc++;
-
-  memory = zmalloc (type, size);
-  mtype_log ("zmalloc", memory, file, line, type);
-
-  return memory;
-}
-
-void *
-mtype_zcalloc (const char *file, int line, int type, size_t size)
-{
-  void *memory;
-
-  mstat[type].c_calloc++;
-  mstat[type].t_calloc++;
-
-  memory = zcalloc (type, size);
-  mtype_log ("xcalloc", memory, file, line, type);
-
-  return memory;
-}
-
-void *
-mtype_zrealloc (const char *file, int line, int type, void *ptr, size_t size)
-{
-  void *memory;
-
-  /* Realloc need before allocated pointer. */
-  mstat[type].t_realloc++;
-
-  memory = zrealloc (type, ptr, size);
-
-  mtype_log ("xrealloc", memory, file, line, type);
-
-  return memory;
-}
-
-/* Important function. */
-void 
-mtype_zfree (const char *file, int line, int type, void *ptr)
-{
-  mstat[type].t_free++;
-
-  mtype_log ("xfree", ptr, file, line, type);
-
-  zfree (type, ptr);
-}
-
-char *
-mtype_zstrdup (const char *file, int line, int type, char *str)
-{
-  char *memory;
-
-  mstat[type].c_strdup++;
-
-  memory = zstrdup (type, str);
-  
-  mtype_log ("xstrdup", memory, file, line, type);
-
-  return memory;
-}
-#else
-struct 
-{
-  char *name;
-  unsigned long alloc;
-} mstat [MTYPE_MAX];
-#endif /* MTPYE_LOG */
-
-/* Increment allocation counter. */
-void
-alloc_inc (int type)
-{
-  mstat[type].alloc++;
-}
-
-/* Decrement allocation counter. */
-void
-alloc_dec (int type)
-{
-  mstat[type].alloc--;
-}
-
-/* Looking up memory status from vty interface. */
-#include "vector.h"
-#include "vty.h"
-#include "command.h"
-
-/* For pretty printng of memory allocate information. */
-struct memory_list
-{
-  int index;
-  char *format;
-};
-
-struct memory_list memory_list_lib[] =
-{
-  { MTYPE_TMP,                "Temporary memory" },
-  { MTYPE_ROUTE_TABLE,        "Route table     " },
-  { MTYPE_ROUTE_NODE,         "Route node      " },
-  { MTYPE_RIB,                "RIB             " },
-  { MTYPE_NEXTHOP,            "Nexthop         " },
-  { MTYPE_LINK_LIST,          "Link List       " },
-  { MTYPE_LINK_NODE,          "Link Node       " },
-  { MTYPE_HASH,               "Hash            " },
-  { MTYPE_HASH_BACKET,        "Hash Bucket     " },
-  { MTYPE_ACCESS_LIST,        "Access List     " },
-  { MTYPE_ACCESS_LIST_STR,    "Access List Str " },
-  { MTYPE_ACCESS_FILTER,      "Access Filter   " },
-  { MTYPE_PREFIX_LIST,        "Prefix List     " },
-  { MTYPE_PREFIX_LIST_STR,    "Prefix List Str " },
-  { MTYPE_PREFIX_LIST_ENTRY,  "Prefix List Entry "},
-  { MTYPE_ROUTE_MAP,          "Route map       " },
-  { MTYPE_ROUTE_MAP_NAME,     "Route map name  " },
-  { MTYPE_ROUTE_MAP_INDEX,    "Route map index " },
-  { MTYPE_ROUTE_MAP_RULE,     "Route map rule  " },
-  { MTYPE_ROUTE_MAP_RULE_STR, "Route map rule str" },
-  { MTYPE_DESC,               "Command desc    " },
-  { MTYPE_BUFFER,             "Buffer          " },
-  { MTYPE_BUFFER_DATA,        "Buffer data     " },
-  { MTYPE_STREAM,             "Stream          " },
-  { MTYPE_KEYCHAIN,           "Key chain       " },
-  { MTYPE_KEY,                "Key             " },
-  { MTYPE_VTY,                "VTY             " },
-  { -1, NULL }
-};
-
-struct memory_list memory_list_bgp[] =
-{
-  { MTYPE_BGP_PEER,               "BGP peer" },
-  { MTYPE_ATTR,                   "BGP attribute" },
-  { MTYPE_AS_PATH,                "BGP aspath" },
-  { MTYPE_AS_SEG,                 "BGP aspath seg" },
-  { MTYPE_AS_STR,                 "BGP aspath str" },
-  { 0, NULL },
-  { MTYPE_BGP_TABLE,              "BGP table" },
-  { MTYPE_BGP_NODE,               "BGP node" },
-  { MTYPE_BGP_ADVERTISE_ATTR,     "BGP adv attr" },
-  { MTYPE_BGP_ADVERTISE,          "BGP adv" },
-  { MTYPE_BGP_ADJ_IN,             "BGP adj in" },
-  { MTYPE_BGP_ADJ_OUT,            "BGP adj out" },
-  { 0, NULL },
-  { MTYPE_AS_LIST,                "BGP AS list" },
-  { MTYPE_AS_FILTER,              "BGP AS filter" },
-  { MTYPE_AS_FILTER_STR,          "BGP AS filter str" },
-  { 0, NULL },
-  { MTYPE_COMMUNITY,              "community" },
-  { MTYPE_COMMUNITY_VAL,          "community val" },
-  { MTYPE_COMMUNITY_STR,          "community str" },
-  { 0, NULL },
-  { MTYPE_ECOMMUNITY,             "extcommunity" },
-  { MTYPE_ECOMMUNITY_VAL,         "extcommunity val" },
-  { MTYPE_ECOMMUNITY_STR,         "extcommunity str" },
-  { 0, NULL },
-  { MTYPE_COMMUNITY_LIST,         "community-list" },
-  { MTYPE_COMMUNITY_LIST_NAME,    "community-list name" },
-  { MTYPE_COMMUNITY_LIST_ENTRY,   "community-list entry" },
-  { MTYPE_COMMUNITY_LIST_CONFIG,  "community-list config" },
-  { 0, NULL },
-  { MTYPE_CLUSTER,                "Cluster list" },
-  { MTYPE_CLUSTER_VAL,            "Cluster list val" },
-  { 0, NULL },
-  { MTYPE_TRANSIT,                "BGP transit attr" },
-  { MTYPE_TRANSIT_VAL,            "BGP transit val" },
-  { 0, NULL },
-  { MTYPE_BGP_DISTANCE,           "BGP distance" },
-  { MTYPE_BGP_NEXTHOP_CACHE,      "BGP nexthop" },
-  { MTYPE_BGP_CONFED_LIST,        "BGP confed list" },
-  { MTYPE_PEER_UPDATE_SOURCE,     "peer update if" },
-  { MTYPE_BGP_DAMP_INFO,          "Dampening info" },
-  { MTYPE_BGP_REGEXP,             "BGP regexp" },
-  { -1, NULL }
-};
-
-struct memory_list memory_list_rip[] =
-{
-  { MTYPE_RIP,                "RIP structure   " },
-  { MTYPE_RIP_INFO,           "RIP route info  " },
-  { MTYPE_RIP_INTERFACE,      "RIP interface   " },
-  { MTYPE_RIP_PEER,           "RIP peer        " },
-  { MTYPE_RIP_OFFSET_LIST,    "RIP offset list " },
-  { MTYPE_RIP_DISTANCE,       "RIP distance    " },
-  { -1, NULL }
-};
-
-struct memory_list memory_list_ospf[] =
-{
-  { MTYPE_OSPF_TOP,           "OSPF top        " },
-  { MTYPE_OSPF_AREA,          "OSPF area       " },
-  { MTYPE_OSPF_AREA_RANGE,    "OSPF area range " },
-  { MTYPE_OSPF_NETWORK,       "OSPF network    " },
-#ifdef NBMA_ENABLE
-  { MTYPE_OSPF_NEIGHBOR_STATIC,"OSPF static nbr " },
-#endif  /* NBMA_ENABLE */
-  { MTYPE_OSPF_IF,            "OSPF interface  " },
-  { MTYPE_OSPF_NEIGHBOR,      "OSPF neighbor   " },
-  { MTYPE_OSPF_ROUTE,         "OSPF route      " },
-  { MTYPE_OSPF_TMP,           "OSPF tmp mem    " },
-  { MTYPE_OSPF_LSA,           "OSPF LSA        " },
-  { MTYPE_OSPF_LSA_DATA,      "OSPF LSA data   " },
-  { MTYPE_OSPF_LSDB,          "OSPF LSDB       " },
-  { MTYPE_OSPF_PACKET,        "OSPF packet     " },
-  { MTYPE_OSPF_FIFO,          "OSPF FIFO queue " },
-  { MTYPE_OSPF_VERTEX,        "OSPF vertex     " },
-  { MTYPE_OSPF_NEXTHOP,       "OSPF nexthop    " },
-  { MTYPE_OSPF_PATH,	      "OSPF path       " },
-  { MTYPE_OSPF_VL_DATA,       "OSPF VL data    " },
-  { MTYPE_OSPF_CRYPT_KEY,     "OSPF crypt key  " },
-  { MTYPE_OSPF_EXTERNAL_INFO, "OSPF ext. info  " },
-  { MTYPE_OSPF_DISTANCE,      "OSPF distance   " },
-  { MTYPE_OSPF_IF_INFO,       "OSPF if info    " },
-  { MTYPE_OSPF_IF_PARAMS,     "OSPF if params  " },
-  { -1, NULL },
-};
-
-struct memory_list memory_list_ospf6[] =
-{
-  { MTYPE_OSPF6_TOP,          "OSPF6 top         " },
-  { MTYPE_OSPF6_AREA,         "OSPF6 area        " },
-  { MTYPE_OSPF6_IF,           "OSPF6 interface   " },
-  { MTYPE_OSPF6_NEIGHBOR,     "OSPF6 neighbor    " },
-  { MTYPE_OSPF6_ROUTE,        "OSPF6 route       " },
-  { MTYPE_OSPF6_PREFIX,       "OSPF6 prefix      " },
-  { MTYPE_OSPF6_MESSAGE,      "OSPF6 message     " },
-  { MTYPE_OSPF6_LSA,          "OSPF6 LSA         " },
-  { MTYPE_OSPF6_LSA_SUMMARY,  "OSPF6 LSA summary " },
-  { MTYPE_OSPF6_LSDB,         "OSPF6 LSA database" },
-  { MTYPE_OSPF6_VERTEX,       "OSPF6 vertex      " },
-  { MTYPE_OSPF6_SPFTREE,      "OSPF6 SPF tree    " },
-  { MTYPE_OSPF6_NEXTHOP,      "OSPF6 nexthop     " },
-  { MTYPE_OSPF6_EXTERNAL_INFO,"OSPF6 ext. info   " },
-  { MTYPE_OSPF6_OTHER,        "OSPF6 other       " },
-  { -1, NULL },
-};
-
-
-struct memory_list memory_list_isis[] =
-{
-  { MTYPE_ISIS,               "ISIS             : %ld\r\n" },
-  { MTYPE_ISIS_TMP,           "ISIS TMP         : %ld\r\n" },
-  { MTYPE_ISIS_CIRCUIT,       "ISIS circuit     : %ld\r\n" },
-  { MTYPE_ISIS_LSP,           "ISIS LSP         : %ld\r\n" },
-  { MTYPE_ISIS_ADJACENCY,     "ISIS adjacency   : %ld\r\n" },
-  { MTYPE_ISIS_AREA,          "ISIS area        : %ld\r\n" },
-  { MTYPE_ISIS_AREA_ADDR,     "ISIS area address: %ld\r\n" },
-  { MTYPE_ISIS_TLV,           "ISIS TLV         : %ld\r\n" },
-  { MTYPE_ISIS_DYNHN,         "ISIS dyn hostname: %ld\r\n" },
-  { MTYPE_ISIS_SPFTREE,       "ISIS SPFtree     : %ld\r\n" },
-  { MTYPE_ISIS_VERTEX,        "ISIS vertex      : %ld\r\n" },
-  { MTYPE_ISIS_ROUTE_INFO,    "ISIS route info  : %ld\r\n" },
-  { MTYPE_ISIS_NEXTHOP,       "ISIS nexthop     : %ld\r\n" },
-  { MTYPE_ISIS_NEXTHOP6,      "ISIS nexthop6    : %ld\r\n" },
-  { -1, NULL },
-};
-
-struct memory_list memory_list_separator[] =
-{
-  { 0, NULL},
-  {-1, NULL}
-};
-
-void
-show_memory_vty (struct vty *vty, struct memory_list *list)
-{
-  struct memory_list *m;
-
-  for (m = list; m->index >= 0; m++)
-    if (m->index == 0)
-      vty_out (vty, "-----------------------------\r\n");
-    else
-      vty_out (vty, "%-22s: %5ld\r\n", m->format, mstat[m->index].alloc);
-}
-
-DEFUN (show_memory_all,
-       show_memory_all_cmd,
-       "show memory all",
-       "Show running system information\n"
-       "Memory statistics\n"
-       "All memory statistics\n")
-{
-  show_memory_vty (vty, memory_list_lib);
-  show_memory_vty (vty, memory_list_separator);
-  show_memory_vty (vty, memory_list_rip);
-  show_memory_vty (vty, memory_list_separator);
-  show_memory_vty (vty, memory_list_ospf);
-  show_memory_vty (vty, memory_list_separator);
-  show_memory_vty (vty, memory_list_ospf6);
-  show_memory_vty (vty, memory_list_separator);
-  show_memory_vty (vty, memory_list_bgp);
-
-  return CMD_SUCCESS;
-}
-
-ALIAS (show_memory_all,
-       show_memory_cmd,
-       "show memory",
-       "Show running system information\n"
-       "Memory statistics\n")
-
-DEFUN (show_memory_lib,
-       show_memory_lib_cmd,
-       "show memory lib",
-       SHOW_STR
-       "Memory statistics\n"
-       "Library memory\n")
-{
-  show_memory_vty (vty, memory_list_lib);
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_memory_rip,
-       show_memory_rip_cmd,
-       "show memory rip",
-       SHOW_STR
-       "Memory statistics\n"
-       "RIP memory\n")
-{
-  show_memory_vty (vty, memory_list_rip);
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_memory_bgp,
-       show_memory_bgp_cmd,
-       "show memory bgp",
-       SHOW_STR
-       "Memory statistics\n"
-       "BGP memory\n")
-{
-  show_memory_vty (vty, memory_list_bgp);
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_memory_ospf,
-       show_memory_ospf_cmd,
-       "show memory ospf",
-       SHOW_STR
-       "Memory statistics\n"
-       "OSPF memory\n")
-{
-  show_memory_vty (vty, memory_list_ospf);
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_memory_ospf6,
-       show_memory_ospf6_cmd,
-       "show memory ospf6",
-       SHOW_STR
-       "Memory statistics\n"
-       "OSPF6 memory\n")
-{
-  show_memory_vty (vty, memory_list_ospf6);
-  return CMD_SUCCESS;
-}
-
-
-DEFUN (show_memory_isis,
-       show_memory_isis_cmd,
-       "show memory isis",
-       SHOW_STR
-       "Memory statistics\n"
-       "ISIS memory\n")
-{
-  show_memory_vty (vty, memory_list_isis);
-  return CMD_SUCCESS;
-}
-
-void
-memory_init ()
-{
-  install_element (VIEW_NODE, &show_memory_cmd);
-  install_element (VIEW_NODE, &show_memory_all_cmd);
-  install_element (VIEW_NODE, &show_memory_lib_cmd);
-  install_element (VIEW_NODE, &show_memory_rip_cmd);
-  install_element (VIEW_NODE, &show_memory_bgp_cmd);
-  install_element (VIEW_NODE, &show_memory_ospf_cmd);
-  install_element (VIEW_NODE, &show_memory_ospf6_cmd);
-  install_element (VIEW_NODE, &show_memory_isis_cmd);
-
-  install_element (ENABLE_NODE, &show_memory_cmd);
-  install_element (ENABLE_NODE, &show_memory_all_cmd);
-  install_element (ENABLE_NODE, &show_memory_lib_cmd);
-  install_element (ENABLE_NODE, &show_memory_rip_cmd);
-  install_element (ENABLE_NODE, &show_memory_bgp_cmd);
-  install_element (ENABLE_NODE, &show_memory_ospf_cmd);
-  install_element (ENABLE_NODE, &show_memory_ospf6_cmd);
-  install_element (ENABLE_NODE, &show_memory_isis_cmd);
-}
diff --git a/isisd/modified/memory.h b/isisd/modified/memory.h
deleted file mode 100644
index d80cdf5..0000000
--- a/isisd/modified/memory.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/* Memory management routine
-   Copyright (C) 1998 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.  */
-
-#ifndef _ZEBRA_MEMORY_H
-#define _ZEBRA_MEMORY_H
-
-/* #define MEMORY_LOG */
-
-/* For tagging memory, below is the type of the memory. */
-enum
-{
-  MTYPE_TMP = 1,
-  MTYPE_STRVEC,
-  MTYPE_VECTOR,
-  MTYPE_VECTOR_INDEX,
-  MTYPE_LINK_LIST,
-  MTYPE_LINK_NODE,
-  MTYPE_THREAD,
-  MTYPE_THREAD_MASTER,
-  MTYPE_VTY,
-  MTYPE_VTY_HIST,
-  MTYPE_VTY_OUT_BUF,
-  MTYPE_IF,
-  MTYPE_CONNECTED,
-  MTYPE_AS_SEG,
-  MTYPE_AS_STR,
-  MTYPE_AS_PATH,
-  MTYPE_CLUSTER,
-  MTYPE_CLUSTER_VAL,
-  MTYPE_ATTR,
-  MTYPE_TRANSIT,
-  MTYPE_TRANSIT_VAL,
-  MTYPE_BUFFER,
-  MTYPE_BUFFER_DATA,
-  MTYPE_STREAM,
-  MTYPE_STREAM_DATA,
-  MTYPE_STREAM_FIFO,
-  MTYPE_PREFIX,
-  MTYPE_PREFIX_IPV4,
-  MTYPE_PREFIX_IPV6,
-  MTYPE_HASH,
-  MTYPE_HASH_INDEX,
-  MTYPE_HASH_BACKET,
-  MTYPE_RIPNG_ROUTE,
-  MTYPE_RIPNG_AGGREGATE,
-  MTYPE_ROUTE_TABLE,
-  MTYPE_ROUTE_NODE,
-  MTYPE_ACCESS_LIST,
-  MTYPE_ACCESS_LIST_STR,
-  MTYPE_ACCESS_FILTER,
-  MTYPE_PREFIX_LIST,
-  MTYPE_PREFIX_LIST_STR,
-  MTYPE_PREFIX_LIST_ENTRY,
-  MTYPE_ROUTE_MAP,
-  MTYPE_ROUTE_MAP_NAME,
-  MTYPE_ROUTE_MAP_INDEX,
-  MTYPE_ROUTE_MAP_RULE,
-  MTYPE_ROUTE_MAP_RULE_STR,
-  MTYPE_ROUTE_MAP_COMPILED,
-
-  MTYPE_RIB,
-  MTYPE_DISTRIBUTE,
-  MTYPE_ZLOG,
-  MTYPE_ZCLIENT,
-  MTYPE_NEXTHOP,
-  MTYPE_RTADV_PREFIX,
-  MTYPE_IF_RMAP,
-  MTYPE_SOCKUNION,
-  MTYPE_STATIC_IPV4,
-  MTYPE_STATIC_IPV6,
-
-  MTYPE_DESC,
-  MTYPE_OSPF_TOP,
-  MTYPE_OSPF_AREA,
-  MTYPE_OSPF_AREA_RANGE,
-  MTYPE_OSPF_NETWORK,
-  MTYPE_OSPF_NEIGHBOR_STATIC,
-  MTYPE_OSPF_IF,
-  MTYPE_OSPF_NEIGHBOR,
-  MTYPE_OSPF_ROUTE,
-  MTYPE_OSPF_TMP,
-  MTYPE_OSPF_LSA,
-  MTYPE_OSPF_LSA_DATA,
-  MTYPE_OSPF_LSDB,
-  MTYPE_OSPF_PACKET,
-  MTYPE_OSPF_FIFO,
-  MTYPE_OSPF_VERTEX,
-  MTYPE_OSPF_NEXTHOP,
-  MTYPE_OSPF_PATH,
-  MTYPE_OSPF_VL_DATA,
-  MTYPE_OSPF_CRYPT_KEY,
-  MTYPE_OSPF_EXTERNAL_INFO,
-  MTYPE_OSPF_MESSAGE,
-  MTYPE_OSPF_DISTANCE,
-  MTYPE_OSPF_IF_INFO,
-  MTYPE_OSPF_IF_PARAMS,
-
-  MTYPE_OSPF6_TOP,
-  MTYPE_OSPF6_AREA,
-  MTYPE_OSPF6_IF,
-  MTYPE_OSPF6_NEIGHBOR,
-  MTYPE_OSPF6_ROUTE,
-  MTYPE_OSPF6_PREFIX,
-  MTYPE_OSPF6_MESSAGE,
-  MTYPE_OSPF6_LSA,
-  MTYPE_OSPF6_LSA_SUMMARY,
-  MTYPE_OSPF6_LSDB,
-  MTYPE_OSPF6_VERTEX,
-  MTYPE_OSPF6_SPFTREE,
-  MTYPE_OSPF6_NEXTHOP,
-  MTYPE_OSPF6_EXTERNAL_INFO,
-  MTYPE_OSPF6_OTHER,
-  
-  MTYPE_ISIS,
-  MTYPE_ISIS_TMP,
-  MTYPE_ISIS_CIRCUIT,
-  MTYPE_ISIS_LSP,
-  MTYPE_ISIS_ADJACENCY,
-  MTYPE_ISIS_AREA,
-  MTYPE_ISIS_AREA_ADDR,
-  MTYPE_ISIS_TLV,
-  MTYPE_ISIS_DYNHN,
-  MTYPE_ISIS_SPFTREE,
-  MTYPE_ISIS_VERTEX,
-  MTYPE_ISIS_ROUTE_INFO,
-  MTYPE_ISIS_NEXTHOP,
-  MTYPE_ISIS_NEXTHOP6,
-
-  MTYPE_BGP,
-  MTYPE_BGP_PEER,
-  MTYPE_PEER_GROUP,
-  MTYPE_PEER_DESC,
-  MTYPE_PEER_UPDATE_SOURCE,
-  MTYPE_BGP_STATIC,
-  MTYPE_BGP_AGGREGATE,
-  MTYPE_BGP_CONFED_LIST,
-  MTYPE_BGP_NEXTHOP_CACHE,
-  MTYPE_BGP_DAMP_INFO,
-  MTYPE_BGP_DAMP_ARRAY,
-  MTYPE_BGP_ANNOUNCE,
-  MTYPE_BGP_ATTR_QUEUE,
-  MTYPE_BGP_ROUTE_QUEUE,
-  MTYPE_BGP_DISTANCE,
-  MTYPE_BGP_ROUTE,
-  MTYPE_BGP_TABLE,
-  MTYPE_BGP_NODE,
-  MTYPE_BGP_ADVERTISE_ATTR,
-  MTYPE_BGP_ADVERTISE,
-  MTYPE_BGP_ADJ_IN,
-  MTYPE_BGP_ADJ_OUT,
-  MTYPE_BGP_REGEXP,
-  MTYPE_AS_FILTER,
-  MTYPE_AS_FILTER_STR,
-  MTYPE_AS_LIST,
-
-  MTYPE_COMMUNITY,
-  MTYPE_COMMUNITY_VAL,
-  MTYPE_COMMUNITY_STR,
-
-  MTYPE_ECOMMUNITY,
-  MTYPE_ECOMMUNITY_VAL,
-  MTYPE_ECOMMUNITY_STR,
-
-  /* community-list and extcommunity-list.  */
-  MTYPE_COMMUNITY_LIST_HANDLER,
-  MTYPE_COMMUNITY_LIST,
-  MTYPE_COMMUNITY_LIST_NAME,
-  MTYPE_COMMUNITY_LIST_ENTRY,
-  MTYPE_COMMUNITY_LIST_CONFIG,
-
-  MTYPE_RIP,
-  MTYPE_RIP_INTERFACE,
-  MTYPE_RIP_DISTANCE,
-  MTYPE_RIP_OFFSET_LIST,
-  MTYPE_RIP_INFO,
-  MTYPE_RIP_PEER,
-  MTYPE_KEYCHAIN,
-  MTYPE_KEY,
-
-  MTYPE_VTYSH_CONFIG,
-  MTYPE_VTYSH_CONFIG_LINE,
-
-  MTYPE_MAX
-};
-
-#ifdef MEMORY_LOG
-#define XMALLOC(mtype, size) \
-  mtype_zmalloc (__FILE__, __LINE__, (mtype), (size))
-#define XCALLOC(mtype, size) \
-  mtype_zcalloc (__FILE__, __LINE__, (mtype), (size))
-#define XREALLOC(mtype, ptr, size)  \
-  mtype_zrealloc (__FILE__, __LINE__, (mtype), (ptr), (size))
-#define XFREE(mtype, ptr) \
-  mtype_zfree (__FILE__, __LINE__, (mtype), (ptr))
-#define XSTRDUP(mtype, str) \
-  mtype_zstrdup (__FILE__, __LINE__, (mtype), (str))
-#else
-#define XMALLOC(mtype, size)       zmalloc ((mtype), (size))
-#define XCALLOC(mtype, size)       zcalloc ((mtype), (size))
-#define XREALLOC(mtype, ptr, size) zrealloc ((mtype), (ptr), (size))
-#define XFREE(mtype, ptr)          zfree ((mtype), (ptr))
-#define XSTRDUP(mtype, str)        zstrdup ((mtype), (str))
-#endif /* MEMORY_LOG */
-
-/* Prototypes of memory function. */
-void *zmalloc (int type, size_t size);
-void *zcalloc (int type, size_t size);
-void *zrealloc (int type, void *ptr, size_t size);
-void  zfree (int type, void *ptr);
-char *zstrdup (int type, char *str);
-
-void *mtype_zmalloc (const char *file,
-		     int line,
-		     int type,
-		     size_t size);
-
-void *mtype_zcalloc (const char *file,
-		     int line,
-		     int type,
-		     size_t num,
-		     size_t size);
-
-void *mtype_zrealloc (const char *file,
-		     int line,
-		     int type, 
-		     void *ptr,
-		     size_t size);
-
-void mtype_zfree (const char *file,
-		  int line,
-		  int type,
-		  void *ptr);
-
-char *mtype_zstrdup (const char *file,
-		     int line,
-		     int type,
-		     char *str);
-void memory_init ();
-
-#endif /* _ZEBRA_MEMORY_H */
diff --git a/isisd/modified/rib.c b/isisd/modified/rib.c
deleted file mode 100644
index 39a7690..0000000
--- a/isisd/modified/rib.c
+++ /dev/null
@@ -1,3321 +0,0 @@
-/* Routing Information Base.
- * Copyright (C) 1997, 98, 99, 2001 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 "prefix.h"
-#include "table.h"
-#include "memory.h"
-#include "vty.h"
-#include "str.h"
-#include "command.h"
-#include "linklist.h"
-#include "if.h"
-#include "log.h"
-#include "sockunion.h"
-
-#include "zebra/rib.h"
-#include "zebra/rt.h"
-#include "zebra/zserv.h"
-#include "zebra/redistribute.h"
-#include "zebra/debug.h"
-
-/* Routing information base and static table for IPv4. */
-struct route_table *rib_table_ipv4;
-struct route_table *static_table_ipv4;
-
-/* Routing information base and static table for IPv6. */
-#ifdef HAVE_IPV6
-struct route_table *rib_table_ipv6;
-struct route_table *static_table_ipv6;
-#endif /* HAVE_IPV6 */
-
-/* Default rtm_table for all clients */
-extern int rtm_table_default;
-
-/* Each route type's string and default distance value. */
-struct
-{  
-  int key;
-  char c;
-  char *str;
-  int distance;
-} route_info[] =
-{
-  {ZEBRA_ROUTE_SYSTEM,  'X', "system",      0},
-  {ZEBRA_ROUTE_KERNEL,  'K', "kernel",      0},
-  {ZEBRA_ROUTE_CONNECT, 'C', "connected",   0},
-  {ZEBRA_ROUTE_STATIC,  'S', "static",      1},
-  {ZEBRA_ROUTE_RIP,     'R', "rip",       120},
-  {ZEBRA_ROUTE_RIPNG,   'R', "ripng",     120},
-  {ZEBRA_ROUTE_OSPF,    'O', "ospf",      110},
-  {ZEBRA_ROUTE_OSPF6,   'O', "ospf6",     110},
-  {ZEBRA_ROUTE_ISIS,    'I', "isis",      115},
-  {ZEBRA_ROUTE_BGP,     'B', "bgp",        20  /* IBGP is 200. */}
-};
-
-/* Add nexthop to the end of the list.  */
-void
-nexthop_add (struct rib *rib, struct nexthop *nexthop)
-{
-  struct nexthop *last;
-
-  for (last = rib->nexthop; last && last->next; last = last->next)
-    ;
-  if (last)
-    last->next = nexthop;
-  else
-    rib->nexthop = nexthop;
-  nexthop->prev = last;
-
-  rib->nexthop_num++;
-}
-
-/* Delete specified nexthop from the list. */
-void
-nexthop_delete (struct rib *rib, struct nexthop *nexthop)
-{
-  if (nexthop->next)
-    nexthop->next->prev = nexthop->prev;
-  if (nexthop->prev)
-    nexthop->prev->next = nexthop->next;
-  else
-    rib->nexthop = nexthop->next;
-  rib->nexthop_num--;
-}
-
-/* Free nexthop. */
-void
-nexthop_free (struct nexthop *nexthop)
-{
-  if (nexthop->type == NEXTHOP_TYPE_IFNAME && nexthop->ifname)
-    free (nexthop->ifname);
-  XFREE (MTYPE_NEXTHOP, nexthop);
-}
-
-struct nexthop *
-nexthop_ifindex_add (struct rib *rib, unsigned int ifindex)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IFINDEX;
-  nexthop->ifindex = ifindex;
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-struct nexthop *
-nexthop_ifname_add (struct rib *rib, char *ifname)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IFNAME;
-  nexthop->ifname = strdup (ifname);
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-struct nexthop *
-nexthop_ipv4_add (struct rib *rib, struct in_addr *ipv4)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IPV4;
-  nexthop->gate.ipv4 = *ipv4;
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-struct nexthop *
-nexthop_ipv4_ifindex_add (struct rib *rib, struct in_addr *ipv4, 
-			  unsigned int ifindex)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IPV4_IFINDEX;
-  nexthop->gate.ipv4 = *ipv4;
-  nexthop->ifindex = ifindex;
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-#ifdef HAVE_IPV6
-struct nexthop *
-nexthop_ipv6_add (struct rib *rib, struct in6_addr *ipv6)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IPV6;
-  nexthop->gate.ipv6 = *ipv6;
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-struct nexthop *
-nexthop_ipv6_ifname_add (struct rib *rib, struct in6_addr *ipv6,
-			 char *ifname)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IPV6_IFNAME;
-  nexthop->gate.ipv6 = *ipv6;
-  nexthop->ifname = XSTRDUP (0, ifname);
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-
-struct nexthop *
-nexthop_ipv6_ifindex_add (struct rib *rib, struct in6_addr *ipv6,
-			  unsigned int ifindex)
-{
-  struct nexthop *nexthop;
-
-  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
-  memset (nexthop, 0, sizeof (struct nexthop));
-  nexthop->type = NEXTHOP_TYPE_IPV6_IFINDEX;
-  nexthop->gate.ipv6 = *ipv6;
-  nexthop->ifindex = ifindex;
-
-  nexthop_add (rib, nexthop);
-
-  return nexthop;
-}
-#endif /* HAVE_IPV6 */
-
-/* If force flag is not set, do not modify falgs at all for uninstall
-   the route from FIB. */
-int
-nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
-		     struct route_node *top)
-{
-  struct prefix_ipv4 p;
-  struct route_node *rn;
-  struct rib *match;
-  struct nexthop *newhop;
-
-  if (nexthop->type == NEXTHOP_TYPE_IPV4)
-    nexthop->ifindex = 0;
-
-  if (set)
-    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-
-  /* Make lookup prefix. */
-  memset (&p, 0, sizeof (struct prefix_ipv4));
-  p.family = AF_INET;
-  p.prefixlen = IPV4_MAX_PREFIXLEN;
-  p.prefix = nexthop->gate.ipv4;
-
-  rn = route_node_match (rib_table_ipv4, (struct prefix *) &p);
-  while (rn)
-    {
-      route_unlock_node (rn);
-      
-      /* If lookup self prefix return immidiately. */
-      if (rn == top)
-	return 0;
-
-      /* Pick up selected route. */
-      for (match = rn->info; match; match = match->next)
-	if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
-	  break;
-
-      /* If there is no selected route or matched route is EGP, go up
-         tree. */
-      if (! match 
-	  || match->type == ZEBRA_ROUTE_BGP)
-	{
-	  do {
-	    rn = rn->parent;
-	  } while (rn && rn->info == NULL);
-	  if (rn)
-	    route_lock_node (rn);
-	}
-      else
-	{
-	  if (match->type == ZEBRA_ROUTE_CONNECT)
-	    {
-	      /* Directly point connected route. */
-	      newhop = match->nexthop;
-	      if (newhop && nexthop->type == NEXTHOP_TYPE_IPV4)
-		nexthop->ifindex = newhop->ifindex;
-	      
-	      return 1;
-	    }
-	  else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
-	    {
-	      for (newhop = match->nexthop; newhop; newhop = newhop->next)
-		if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
-		    && ! CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_RECURSIVE))
-		  {
-		    if (set)
-		      {
-			SET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-			nexthop->rtype = newhop->type;
-			if (newhop->type == NEXTHOP_TYPE_IPV4 ||
-			    newhop->type == NEXTHOP_TYPE_IPV4_IFINDEX)
-			  nexthop->rgate.ipv4 = newhop->gate.ipv4;
-			if (newhop->type == NEXTHOP_TYPE_IFINDEX
-			    || newhop->type == NEXTHOP_TYPE_IFNAME
-			    || newhop->type == NEXTHOP_TYPE_IPV4_IFINDEX)
-			  nexthop->rifindex = newhop->ifindex;
-		      }
-		    return 1;
-		  }
-	      return 0;
-	    }
-	  else
-	    {
-	      return 0;
-	    }
-	}
-    }
-  return 0;
-}
-
-#ifdef HAVE_IPV6
-/* If force flag is not set, do not modify falgs at all for uninstall
-   the route from FIB. */
-int
-nexthop_active_ipv6 (struct rib *rib, struct nexthop *nexthop, int set,
-		     struct route_node *top)
-{
-  struct prefix_ipv6 p;
-  struct route_node *rn;
-  struct rib *match;
-  struct nexthop *newhop;
-
-  if (nexthop->type == NEXTHOP_TYPE_IPV6)
-    nexthop->ifindex = 0;
-
-  if (set)
-    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-
-  /* Make lookup prefix. */
-  memset (&p, 0, sizeof (struct prefix_ipv6));
-  p.family = AF_INET6;
-  p.prefixlen = IPV6_MAX_PREFIXLEN;
-  p.prefix = nexthop->gate.ipv6;
-
-  rn = route_node_match (rib_table_ipv6, (struct prefix *) &p);
-  while (rn)
-    {
-      route_unlock_node (rn);
-      
-      /* If lookup self prefix return immidiately. */
-      if (rn == top)
-	return 0;
-
-      /* Pick up selected route. */
-      for (match = rn->info; match; match = match->next)
-	if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
-	  break;
-
-      /* If there is no selected route or matched route is EGP, go up
-         tree. */
-      if (! match
-	  || match->type == ZEBRA_ROUTE_BGP)
-	{
-	  do {
-	    rn = rn->parent;
-	  } while (rn && rn->info == NULL);
-	  if (rn)
-	    route_lock_node (rn);
-	}
-      else
-	{
-	  if (match->type == ZEBRA_ROUTE_CONNECT)
-	    {
-	      /* Directly point connected route. */
-	      newhop = match->nexthop;
-
-	      if (newhop && nexthop->type == NEXTHOP_TYPE_IPV6)
-		nexthop->ifindex = newhop->ifindex;
-	      
-	      return 1;
-	    }
-	  else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
-	    {
-	      for (newhop = match->nexthop; newhop; newhop = newhop->next)
-		if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
-		    && ! CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_RECURSIVE))
-		  {
-		    if (set)
-		      {
-			SET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-			nexthop->rtype = newhop->type;
-			if (newhop->type == NEXTHOP_TYPE_IPV6
-			    || newhop->type == NEXTHOP_TYPE_IPV6_IFINDEX
-			    || newhop->type == NEXTHOP_TYPE_IPV6_IFNAME)
-			  nexthop->rgate.ipv6 = newhop->gate.ipv6;
-			if (newhop->type == NEXTHOP_TYPE_IFINDEX
-			    || newhop->type == NEXTHOP_TYPE_IFNAME
-			    || newhop->type == NEXTHOP_TYPE_IPV6_IFINDEX
-			    || newhop->type == NEXTHOP_TYPE_IPV6_IFNAME)
-			  nexthop->rifindex = newhop->ifindex;
-		      }
-		    return 1;
-		  }
-	      return 0;
-	    }
-	  else
-	    {
-	      return 0;
-	    }
-	}
-    }
-  return 0;
-}
-#endif /* HAVE_IPV6 */
-
-struct rib *
-rib_match_ipv4 (struct in_addr addr)
-{
-  struct prefix_ipv4 p;
-  struct route_node *rn;
-  struct rib *match;
-  struct nexthop *newhop;
-
-  memset (&p, 0, sizeof (struct prefix_ipv4));
-  p.family = AF_INET;
-  p.prefixlen = IPV4_MAX_PREFIXLEN;
-  p.prefix = addr;
-
-  rn = route_node_match (rib_table_ipv4, (struct prefix *) &p);
-
-  while (rn)
-    {
-      route_unlock_node (rn);
-      
-      /* Pick up selected route. */
-      for (match = rn->info; match; match = match->next)
-	if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
-	  break;
-
-      /* If there is no selected route or matched route is EGP, go up
-         tree. */
-      if (! match 
-	  || match->type == ZEBRA_ROUTE_BGP)
-	{
-	  do {
-	    rn = rn->parent;
-	  } while (rn && rn->info == NULL);
-	  if (rn)
-	    route_lock_node (rn);
-	}
-      else
-	{
-	  if (match->type == ZEBRA_ROUTE_CONNECT)
-	    /* Directly point connected route. */
-	    return match;
-	  else
-	    {
-	      for (newhop = match->nexthop; newhop; newhop = newhop->next)
-		if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB))
-		  return match;
-	      return NULL;
-	    }
-	}
-    }
-  return NULL;
-}
-
-struct rib *
-rib_lookup_ipv4 (struct prefix_ipv4 *p)
-{
-  struct route_node *rn;
-  struct rib *match;
-  struct nexthop *nexthop;
-
-  rn = route_node_lookup (rib_table_ipv4, (struct prefix *) p);
-
-  /* No route for this prefix. */
-  if (! rn)
-    return NULL;
-
-  /* Unlock node. */
-  route_unlock_node (rn);
-
-  /* Pick up selected route. */
-  for (match = rn->info; match; match = match->next)
-    if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
-      break;
-
-  if (! match || match->type == ZEBRA_ROUTE_BGP)
-    return NULL;
-
-  if (match->type == ZEBRA_ROUTE_CONNECT)
-    return match;
-  
-  for (nexthop = match->nexthop; nexthop; nexthop = nexthop->next)
-    if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
-      return match;
-
-  return NULL;
-}
-
-#ifdef HAVE_IPV6
-struct rib *
-rib_match_ipv6 (struct in6_addr *addr)
-{
-  struct prefix_ipv6 p;
-  struct route_node *rn;
-  struct rib *match;
-  struct nexthop *newhop;
-
-  memset (&p, 0, sizeof (struct prefix_ipv6));
-  p.family = AF_INET6;
-  p.prefixlen = IPV6_MAX_PREFIXLEN;
-  IPV6_ADDR_COPY (&p.prefix, addr);
-
-  rn = route_node_match (rib_table_ipv6, (struct prefix *) &p);
-
-  while (rn)
-    {
-      route_unlock_node (rn);
-      
-      /* Pick up selected route. */
-      for (match = rn->info; match; match = match->next)
-	if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
-	  break;
-
-      /* If there is no selected route or matched route is EGP, go up
-         tree. */
-      if (! match 
-	  || match->type == ZEBRA_ROUTE_BGP)
-	{
-	  do {
-	    rn = rn->parent;
-	  } while (rn && rn->info == NULL);
-	  if (rn)
-	    route_lock_node (rn);
-	}
-      else
-	{
-	  if (match->type == ZEBRA_ROUTE_CONNECT)
-	    /* Directly point connected route. */
-	    return match;
-	  else
-	    {
-	      for (newhop = match->nexthop; newhop; newhop = newhop->next)
-		if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB))
-		  return match;
-	      return NULL;
-	    }
-	}
-    }
-  return NULL;
-}
-#endif /* HAVE_IPV6 */
-
-int
-nexthop_active_check (struct route_node *rn, struct rib *rib,
-		      struct nexthop *nexthop, int set)
-{
-  struct interface *ifp;
-
-  switch (nexthop->type)
-    {
-    case NEXTHOP_TYPE_IFINDEX:
-      ifp = if_lookup_by_index (nexthop->ifindex);
-      if (ifp && if_is_up (ifp))
-	SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      else
-	UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      break;
-    case NEXTHOP_TYPE_IFNAME:
-    case NEXTHOP_TYPE_IPV6_IFNAME:
-      ifp = if_lookup_by_name (nexthop->ifname);
-      if (ifp && if_is_up (ifp))
-	{
-	  if (set)
-	    nexthop->ifindex = ifp->ifindex;
-	  SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	}
-      else
-	{
-	  if (set)
-	    nexthop->ifindex = 0;
-	  UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	}
-      break;
-    case NEXTHOP_TYPE_IPV4:
-    case NEXTHOP_TYPE_IPV4_IFINDEX:
-      if (nexthop_active_ipv4 (rib, nexthop, set, rn))
-	SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      else
-	UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      break;
-#ifdef HAVE_IPV6
-    case NEXTHOP_TYPE_IPV6:
-      if (nexthop_active_ipv6 (rib, nexthop, set, rn))
-	SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      else
-	UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      break;
-    case NEXTHOP_TYPE_IPV6_IFINDEX:
-      if (IN6_IS_ADDR_LINKLOCAL (&nexthop->gate.ipv6))
-	{
-	  ifp = if_lookup_by_index (nexthop->ifindex);
-	  if (ifp && if_is_up (ifp))
-	    SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	  else
-	    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	}
-      else
-	{
-	  if (nexthop_active_ipv6 (rib, nexthop, set, rn))
-	    SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	  else
-	    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-	}
-      break;
-#endif /* HAVE_IPV6 */
-    default:
-      break;
-    }
-  return CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-}
-
-int
-nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
-{
-  struct nexthop *nexthop;
-  int active;
-
-  rib->nexthop_active_num = 0;
-  UNSET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
-
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    {
-      active = CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
-      rib->nexthop_active_num += nexthop_active_check (rn, rib, nexthop, set);
-      if (active != CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
-	SET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
-    }
-  return rib->nexthop_active_num;
-}
-
-#define RIB_SYSTEM_ROUTE(R) \
-        ((R)->type == ZEBRA_ROUTE_KERNEL || (R)->type == ZEBRA_ROUTE_CONNECT)
-
-void
-newrib_free (struct rib *rib)
-{
-  struct nexthop *nexthop;
-  struct nexthop *next;
-
-  for (nexthop = rib->nexthop; nexthop; nexthop = next)
-    {
-      next = nexthop->next;
-      nexthop_free (nexthop);
-    }
-  XFREE (MTYPE_RIB, rib);
-}
-
-void
-rib_install_kernel (struct route_node *rn, struct rib *rib)
-{
-  int ret = 0;
-  struct nexthop *nexthop;
-
-  switch (PREFIX_FAMILY (&rn->p))
-    {
-    case AF_INET:
-      ret = kernel_add_ipv4 (&rn->p, rib);
-      break;
-#ifdef HAVE_IPV6
-    case AF_INET6:
-      ret = kernel_add_ipv6 (&rn->p, rib);
-      break;
-#endif /* HAVE_IPV6 */
-    }
-
-  if (ret < 0)
-    {
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-	UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-    }
-}
-
-/* Uninstall the route from kernel. */
-int
-rib_uninstall_kernel (struct route_node *rn, struct rib *rib)
-{
-  int ret = 0;
-  struct nexthop *nexthop;
-
-  switch (PREFIX_FAMILY (&rn->p))
-    {
-    case AF_INET:
-      ret = kernel_delete_ipv4 (&rn->p, rib);
-      break;
-#ifdef HAVE_IPV6
-    case AF_INET6:
-      ret = kernel_delete_ipv6 (&rn->p, rib);
-      break;
-#endif /* HAVE_IPV6 */
-    }
-
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-  return ret;
-}
-
-/* Uninstall the route from kernel. */
-void
-rib_uninstall (struct route_node *rn, struct rib *rib)
-{
-  if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-    {
-      redistribute_delete (&rn->p, rib);
-      if (! RIB_SYSTEM_ROUTE (rib))
-	rib_uninstall_kernel (rn, rib);
-      UNSET_FLAG (rib->flags, ZEBRA_FLAG_SELECTED);
-    }
-}
-
-/* Core function for processing routing information base. */
-void
-rib_process (struct route_node *rn, struct rib *del)
-{
-  struct rib *rib;
-  struct rib *next;
-  struct rib *fib = NULL;
-  struct rib *select = NULL;
-
-  for (rib = rn->info; rib; rib = next)
-    {
-      next = rib->next;
-
-      /* Currently installed rib. */
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	fib = rib;
-
-      /* Skip unreachable nexthop. */
-      if (! nexthop_active_update (rn, rib, 0))
-	continue;
-
-      /* Infinit distance. */
-      if (rib->distance == DISTANCE_INFINITY)
-	continue;
-
-      /* Newly selected rib. */
-      if (! select || rib->distance < select->distance 
-	  || rib->type == ZEBRA_ROUTE_CONNECT)
-	select = rib;
-    }
-
-  /* Deleted route check. */
-  if (del && CHECK_FLAG (del->flags, ZEBRA_FLAG_SELECTED))
-    fib = del;
-
-  /* Same route is selected. */
-  if (select && select == fib)
-    {
-      if (CHECK_FLAG (select->flags, ZEBRA_FLAG_CHANGED))
-	{
-	  redistribute_delete (&rn->p, select);
-	  if (! RIB_SYSTEM_ROUTE (select))
-	    rib_uninstall_kernel (rn, select);
-
-	  /* Set real nexthop. */
-	  nexthop_active_update (rn, select, 1);
-  
-	  if (! RIB_SYSTEM_ROUTE (select))
-	    rib_install_kernel (rn, select);
-	  redistribute_add (&rn->p, select);
-	}
-      return;
-    }
-
-  /* Uninstall old rib from forwarding table. */
-  if (fib)
-    {
-      redistribute_delete (&rn->p, fib);
-      if (! RIB_SYSTEM_ROUTE (fib))
-	rib_uninstall_kernel (rn, fib);
-      UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED);
-
-      /* Set real nexthop. */
-      nexthop_active_update (rn, fib, 1);
-    }
-
-  /* Install new rib into forwarding table. */
-  if (select)
-    {
-      /* Set real nexthop. */
-      nexthop_active_update (rn, select, 1);
-
-      if (! RIB_SYSTEM_ROUTE (select))
-	rib_install_kernel (rn, select);
-      SET_FLAG (select->flags, ZEBRA_FLAG_SELECTED);
-      redistribute_add (&rn->p, select);
-    }
-}
-
-/* Add RIB to head of the route node. */
-void
-rib_addnode (struct route_node *rn, struct rib *rib)
-{
-  struct rib *head;
-
-  head = rn->info;
-  if (head)
-    head->prev = rib;
-  rib->next = head;
-  rn->info = rib;
-}
-
-void
-rib_delnode (struct route_node *rn, struct rib *rib)
-{
-  if (rib->next)
-    rib->next->prev = rib->prev;
-  if (rib->prev)
-    rib->prev->next = rib->next;
-  else
-    rn->info = rib->next;
-}
-
-int
-rib_add_ipv4 (int type, int flags, struct prefix_ipv4 *p, 
-	      struct in_addr *gate, unsigned int ifindex, int table,
-	      u_int32_t metric, u_char distance)
-{
-  struct rib *rib;
-  struct rib *same = NULL;
-  struct route_node *rn;
-  struct nexthop *nexthop;
-
-  /* Make it sure prefixlen is applied to the prefix. */
-  apply_mask_ipv4 (p);
-
-  /* Set default distance by route type. */
-  if (distance == 0)
-    {
-      distance = route_info[type].distance;
-
-      /* iBGP distance is 200. */
-      if (type == ZEBRA_ROUTE_BGP && CHECK_FLAG (flags, ZEBRA_FLAG_IBGP))
-	distance = 200;
-    }
-
-  /* Lookup route node.*/
-  rn = route_node_get (rib_table_ipv4, (struct prefix *) p);
-
-  /* If same type of route are installed, treat it as a implicit
-     withdraw. */
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      if (rib->type == ZEBRA_ROUTE_CONNECT)
-	{
-	  nexthop = rib->nexthop;
-
-	  /* Duplicate connected route comes in. */
-	  if (rib->type == type
-	      && (! table || rib->table == table)
-	      && nexthop && nexthop->type == NEXTHOP_TYPE_IFINDEX
-	      && nexthop->ifindex == ifindex)
-	    {
-	      rib->refcnt++;
-	      return 0 ;
-	    }
-	}
-      else if (rib->type == type
-	       && (! table || rib->table == table))
-	{
-	  same = rib;
-	  rib_delnode (rn, same);
-	  route_unlock_node (rn);
-	  break;
-	}
-    }
-
-  /* Allocate new rib structure. */
-  rib = XMALLOC (MTYPE_RIB, sizeof (struct rib));
-  memset (rib, 0, sizeof (struct rib));
-  rib->type = type;
-  rib->distance = distance;
-  rib->flags = flags;
-  rib->metric = metric;
-  rib->table = table;
-  rib->nexthop_num = 0;
-  rib->uptime = time (NULL);
-
-  /* Nexthop settings. */
-  if (gate)
-    {
-      if (ifindex)
-	nexthop_ipv4_ifindex_add (rib, gate, ifindex);
-      else
-	nexthop_ipv4_add (rib, gate);
-    }
-  else
-    nexthop_ifindex_add (rib, ifindex);
-
-  /* If this route is kernel route, set FIB flag to the route. */
-  if (type == ZEBRA_ROUTE_KERNEL || type == ZEBRA_ROUTE_CONNECT)
-    for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-      SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-  /* Link new rib to node.*/
-  rib_addnode (rn, rib);
-
-  /* Process this route node. */
-  rib_process (rn, same);
-
-  /* Free implicit route.*/
-  if (same)
-    newrib_free (same);
-
-  return 0;
-}
-
-int
-rib_add_ipv4_multipath (struct prefix_ipv4 *p, struct rib *rib)
-{
-  struct route_node *rn;
-  struct rib *same;
-  struct nexthop *nexthop;
-
-  /* Make it sure prefixlen is applied to the prefix. */
-  apply_mask_ipv4 (p);
-
-  /* Set default distance by route type. */
-  if (rib->distance == 0)
-    {
-      rib->distance = route_info[rib->type].distance;
-
-      /* iBGP distance is 200. */
-      if (rib->type == ZEBRA_ROUTE_BGP 
-	  && CHECK_FLAG (rib->flags, ZEBRA_FLAG_IBGP))
-	rib->distance = 200;
-    }
-
-  /* Lookup route node.*/
-  rn = route_node_get (rib_table_ipv4, (struct prefix *) p);
-
-  /* If same type of route are installed, treat it as a implicit
-     withdraw. */
-  for (same = rn->info; same; same = same->next)
-    {
-      if (same->type == rib->type && same->table == rib->table
-	  && same->type != ZEBRA_ROUTE_CONNECT)
-	{
-	  rib_delnode (rn, same);
-	  route_unlock_node (rn);
-	  break;
-	}
-    }
-
-  /* If this route is kernel route, set FIB flag to the route. */
-  if (rib->type == ZEBRA_ROUTE_KERNEL || rib->type == ZEBRA_ROUTE_CONNECT)
-    for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-      SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-  /* Link new rib to node.*/
-  rib_addnode (rn, rib);
-
-  /* Process this route node. */
-  rib_process (rn, same);
-
-  /* Free implicit route.*/
-  if (same)
-    newrib_free (same);
-
-  return 0;
-}
-
-int
-rib_delete_ipv4 (int type, int flags, struct prefix_ipv4 *p,
-		 struct in_addr *gate, unsigned int ifindex, int table)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct rib *fib = NULL;
-  struct rib *same = NULL;
-  struct nexthop *nexthop;
-  char buf1[BUFSIZ];
-  char buf2[BUFSIZ];
-
-  /* Apply mask. */
-  apply_mask_ipv4 (p);
-
-  /* Lookup route node. */
-  rn = route_node_lookup (rib_table_ipv4, (struct prefix *) p);
-  if (! rn)
-    {
-      if (IS_ZEBRA_DEBUG_KERNEL)
-	{
-	  if (gate)
-	    zlog_info ("route %s/%d via %s ifindex %d doesn't exist in rib",
-		       inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ),
-		       p->prefixlen,
-		       inet_ntop (AF_INET, gate, buf2, BUFSIZ),
-		       ifindex);
-	  else
-	    zlog_info ("route %s/%d ifindex %d doesn't exist in rib",
-		       inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ),
-		       p->prefixlen,
-		       ifindex);
-	}
-      return ZEBRA_ERR_RTNOEXIST;
-    }
-
-  /* Lookup same type route. */
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	fib = rib;
-
-      if (rib->type == ZEBRA_ROUTE_CONNECT)
-	{
-	  nexthop = rib->nexthop;
-
-	  if (rib->type == type
-	      && (! table || rib->table == table)
-	      && nexthop && nexthop->type == NEXTHOP_TYPE_IFINDEX
-	      && nexthop->ifindex == ifindex)
-	    {
-	      if (rib->refcnt)
-		{
-		  rib->refcnt--;
-		  route_unlock_node (rn);
-		  route_unlock_node (rn);
-		  return 0;
-		}
-	      same = rib;
-	      break;
-	    }
-	}
-      else
-	{
-	  if (rib->type == type
-	      && (!table || rib->table == table))
-	    {
-	      same = rib;
-	      break;
-	    }
-	}
-    }
-
-  /* If same type of route can't be found and this message is from
-     kernel. */
-  if (! same)
-    {
-      if (fib && type == ZEBRA_ROUTE_KERNEL)
-	{
-	  /* Unset flags. */
-	  for (nexthop = fib->nexthop; nexthop; nexthop = nexthop->next)
-	    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-	  UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED);
-	}
-      else
-	{
-	  if (IS_ZEBRA_DEBUG_KERNEL)
-	    {
-	      if (gate)
-		zlog_info ("route %s/%d via %s ifindex %d type %d doesn't exist in rib",
-			   inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ),
-			   p->prefixlen,
-			   inet_ntop (AF_INET, gate, buf2, BUFSIZ),
-			   ifindex,
-			   type);
-	      else
-		zlog_info ("route %s/%d ifindex %d type %d doesn't exist in rib",
-			   inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ),
-			   p->prefixlen,
-			   ifindex,
-			   type);
-	    }
-	  route_unlock_node (rn);
-	  return ZEBRA_ERR_RTNOEXIST;
-	}
-    }
-
-  if (same)
-    rib_delnode (rn, same);
-
-  /* Process changes. */
-  rib_process (rn, same);
-
-  if (same)
-    {
-      newrib_free (same);
-      route_unlock_node (rn);
-    }
-
-  route_unlock_node (rn);
-
-  return 0;
-}
-
-/* Delete all added route and close rib. */
-void
-rib_close_ipv4 ()
-{
-  struct route_node *rn;
-  struct rib *rib;
-
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (! RIB_SYSTEM_ROUTE (rib)
-	  && CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	rib_uninstall_kernel (rn, rib);
-}
-
-/* Install static route into rib. */
-void
-static_ipv4_install (struct prefix_ipv4 *p, struct static_ipv4 *si)
-{
-  struct rib *rib;
-  struct route_node *rn;
-
-  /* Lookup existing route */
-  rn = route_node_get (rib_table_ipv4, (struct prefix *) p);
-  for (rib = rn->info; rib; rib = rib->next)
-    if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance)
-      break;
-
-  if (rib)
-    {
-      /* Same distance static route is there.  Update it with new
-         nexthop. */
-      rib_uninstall (rn, rib);
-      route_unlock_node (rn);
-
-      switch (si->type)
-	{
-	case STATIC_IPV4_GATEWAY:
-	  nexthop_ipv4_add (rib, &si->gate.ipv4);
-	  break;
-	case STATIC_IPV4_IFNAME:
-	  nexthop_ifname_add (rib, si->gate.ifname);
-	  break;
-	}
-      rib_process (rn, NULL);
-    }
-  else
-    {
-      /* This is new static route. */
-      rib = XMALLOC (MTYPE_RIB, sizeof (struct rib));
-      memset (rib, 0, sizeof (struct rib));
-
-      rib->type = ZEBRA_ROUTE_STATIC;
-      rib->distance = si->distance;
-      rib->metric = 0;
-      rib->nexthop_num = 0;
-
-      switch (si->type)
-	{
-	case STATIC_IPV4_GATEWAY:
-	  nexthop_ipv4_add (rib, &si->gate.ipv4);
-	  break;
-	case STATIC_IPV4_IFNAME:
-	  nexthop_ifname_add (rib, si->gate.ifname);
-	  break;
-	}
-
-      /* Link this rib to the tree. */
-      rib_addnode (rn, rib);
-
-      /* Process this prefix. */
-      rib_process (rn, NULL);
-    }
-}
-
-int
-static_ipv4_nexthop_same (struct nexthop *nexthop, struct static_ipv4 *si)
-{
-  if (nexthop->type == NEXTHOP_TYPE_IPV4
-      && si->type == STATIC_IPV4_GATEWAY
-      && IPV4_ADDR_SAME (&nexthop->gate.ipv4, &si->gate.ipv4))
-    return 1;
-  if (nexthop->type == NEXTHOP_TYPE_IFNAME
-      && si->type == STATIC_IPV4_IFNAME
-      && strcmp (nexthop->ifname, si->gate.ifname) == 0)
-    return 1;
-  return 0;;
-}
-
-/* Uninstall static route from RIB. */
-void
-static_ipv4_uninstall (struct prefix_ipv4 *p, struct static_ipv4 *si)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct nexthop *nexthop;
-
-  /* Lookup existing route with type and distance. */
-  rn = route_node_lookup (rib_table_ipv4, (struct prefix *) p);
-  if (! rn)
-    return;
-
-  for (rib = rn->info; rib; rib = rib->next)
-    if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance)
-      break;
-  if (! rib)
-    {
-      route_unlock_node (rn);
-      return;
-    }
-
-  /* Lookup nexthop. */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    if (static_ipv4_nexthop_same (nexthop, si))
-      break;
-
-  /* Can't find nexthop. */
-  if (! nexthop)
-    {
-      route_unlock_node (rn);
-      return;
-    }
-  
-  /* Check nexthop. */
-  if (rib->nexthop_num == 1)
-    {
-      rib_delnode (rn, rib);
-      rib_process (rn, rib);
-      newrib_free (rib);
-      route_unlock_node (rn);
-    }
-  else
-    {
-      rib_uninstall (rn, rib);
-      nexthop_delete (rib, nexthop);
-      nexthop_free (nexthop);
-      rib_process (rn, rib);
-    }
-
-  /* Unlock node. */
-  route_unlock_node (rn);
-}
-
-/* Add static route into static route configuration. */
-int
-static_ipv4_add (struct prefix_ipv4 *p, struct in_addr *gate, char *ifname,
-		 u_char distance, int table)
-{
-  u_char type = 0;
-  struct route_node *rn;
-  struct static_ipv4 *si;
-  struct static_ipv4 *pp;
-  struct static_ipv4 *cp;
-  
-  /* Lookup static route prefix. */
-  rn = route_node_get (static_table_ipv4, (struct prefix *) p);
-
-  /* Make flags. */
-  if (gate)
-    type = STATIC_IPV4_GATEWAY;
-  if (ifname)
-    type = STATIC_IPV4_IFNAME;
-
-  /* Do nothing if there is a same static route.  */
-  for (si = rn->info; si; si = si->next)
-    {
-      if (distance == si->distance 
-	  && type == si->type
-	  && (! gate || IPV4_ADDR_SAME (gate, &si->gate.ipv4))
-	  && (! ifname || strcmp (ifname, si->gate.ifname) == 0))
-	{
-	  route_unlock_node (rn);
-	  return 0;
-	}
-    }
-
-  /* Make new static route structure. */
-  si = XMALLOC (MTYPE_STATIC_IPV4, sizeof (struct static_ipv4));
-  memset (si, 0, sizeof (struct static_ipv4));
-
-  si->type = type;
-  si->distance = distance;
-
-  if (gate)
-    si->gate.ipv4 = *gate;
-  if (ifname)
-    si->gate.ifname = XSTRDUP (0, ifname);
-
-  /* Add new static route information to the tree with sort by
-     distance value and gateway address. */
-  for (pp = NULL, cp = rn->info; cp; pp = cp, cp = cp->next)
-    {
-      if (si->distance < cp->distance)
-	break;
-      if (si->distance > cp->distance)
-	continue;
-      if (si->type == STATIC_IPV4_GATEWAY && cp->type == STATIC_IPV4_GATEWAY)
-	{
-	  if (ntohl (si->gate.ipv4.s_addr) < ntohl (cp->gate.ipv4.s_addr))
-	    break;
-	  if (ntohl (si->gate.ipv4.s_addr) > ntohl (cp->gate.ipv4.s_addr))
-	    continue;
-	}
-    }
-
-  /* Make linked list. */
-  if (pp)
-    pp->next = si;
-  else
-    rn->info = si;
-  if (cp)
-    cp->prev = si;
-  si->prev = pp;
-  si->next = cp;
-
-  /* Install into rib. */
-  static_ipv4_install (p, si);
-
-  return 1;
-}
-
-/* Delete static route from static route configuration. */
-int
-static_ipv4_delete (struct prefix_ipv4 *p, struct in_addr *gate, char *ifname,
-		    u_char distance, int table)
-{
-  u_char type = 0;
-  struct route_node *rn;
-  struct static_ipv4 *si;
-
-  /* Lookup static route prefix. */
-  rn = route_node_lookup (static_table_ipv4, (struct prefix *) p);
-  if (! rn)
-    return 0;
-
-  /* Make flags. */
-  if (gate)
-    type = STATIC_IPV4_GATEWAY;
-  if (ifname)
-    type = STATIC_IPV4_IFNAME;
-
-  /* Find same static route is the tree */
-  for (si = rn->info; si; si = si->next)
-    if (distance == si->distance 
-	&& type == si->type
-	&& (! gate || IPV4_ADDR_SAME (gate, &si->gate.ipv4))
-	&& (! ifname || strcmp (ifname, si->gate.ifname) == 0))
-      break;
-
-  /* Can't find static route. */
-  if (! si)
-    {
-      route_unlock_node (rn);
-      return 0;
-    }
-
-  /* Install into rib. */
-  static_ipv4_uninstall (p, si);
-
-  /* Unlink static route from linked list. */
-  if (si->prev)
-    si->prev->next = si->next;
-  else
-    rn->info = si->next;
-  if (si->next)
-    si->next->prev = si->prev;
-  
-  /* Free static route configuration. */
-  XFREE (MTYPE_STATIC_IPV4, si);
-
-  return 1;
-}
-
-/* Write IPv4 static route configuration. */
-int
-static_ipv4_write (struct vty *vty)
-{
-  struct route_node *rn;
-  struct static_ipv4 *si;  
-  int write;
-
-  write = 0;
-
-  for (rn = route_top (static_table_ipv4); rn; rn = route_next (rn))
-    for (si = rn->info; si; si = si->next)
-      {
-	vty_out (vty, "ip route %s/%d", inet_ntoa (rn->p.u.prefix4),
-		 rn->p.prefixlen);
-
-	switch (si->type)
-	  {
-	  case STATIC_IPV4_GATEWAY:
-	    vty_out (vty, " %s", inet_ntoa (si->gate.ipv4));
-	    break;
-	  case STATIC_IPV4_IFNAME:
-	    vty_out (vty, " %s", si->gate.ifname);
-	    break;
-	  }
-
-	if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT)
-	  vty_out (vty, " %d", si->distance);
-	vty_out (vty, "%s", VTY_NEWLINE);
-
-	write = 1;
-      }
-  return write;
-}
-
-/* General fucntion for static route. */
-int
-static_ipv4_func (struct vty *vty, int add_cmd,
-		  char *dest_str, char *mask_str, char *gate_str,
-		  char *distance_str)
-{
-  int ret;
-  u_char distance;
-  struct prefix_ipv4 p;
-  struct in_addr gate;
-  struct in_addr mask;
-  char *ifname;
-  int table = rtm_table_default;
-  
-  ret = str2prefix_ipv4 (dest_str, &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  /* Cisco like mask notation. */
-  if (mask_str)
-    {
-      ret = inet_aton (mask_str, &mask);
-      if (ret == 0)
-	{
-	  vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
-	  return CMD_WARNING;
-	}
-      p.prefixlen = ip_masklen (mask);
-    }
-
-  /* Apply mask for given prefix. */
-  apply_mask_ipv4 (&p);
-
-  /* Administrative distance. */
-  if (distance_str)
-    distance = atoi (distance_str);
-  else
-    distance = ZEBRA_STATIC_DISTANCE_DEFAULT;
-
-  /* When gateway is A.B.C.D format, gate is treated as nexthop
-     address other case gate is treated as interface name. */
-  ret = inet_aton (gate_str, &gate);
-  if (ret)
-    ifname = NULL;
-  else
-    ifname = gate_str;
-
-  if (add_cmd)
-    static_ipv4_add (&p, ifname ? NULL : &gate, ifname, distance, table);
-  else
-    static_ipv4_delete (&p, ifname ? NULL : &gate, ifname, distance, table);
-
-  return CMD_SUCCESS;
-}
-
-/* Static route configuration. */
-DEFUN (ip_route, 
-       ip_route_cmd,
-       "ip route A.B.C.D/M (A.B.C.D|INTERFACE)",
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n")
-{
-  return static_ipv4_func (vty, 1, argv[0], NULL, argv[1], NULL);
-}
-
-DEFUN (ip_route_mask,
-       ip_route_mask_cmd,
-       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)",
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n")
-{
-  return static_ipv4_func (vty, 1, argv[0], argv[1], argv[2], NULL);
-}
-
-DEFUN (ip_route_pref,
-       ip_route_pref_cmd,
-       "ip route A.B.C.D/M (A.B.C.D|INTERFACE) <1-255>",
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Distance value for this route\n")
-{
-  return static_ipv4_func (vty, 1, argv[0], NULL, argv[1], argv[2]);
-}
-
-DEFUN (ip_route_mask_pref,
-       ip_route_mask_pref_cmd,
-       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) <1-255>",
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Distance value for this route\n")
-{
-  return static_ipv4_func (vty, 1, argv[0], argv[1], argv[2], argv[3]);
-}
-
-DEFUN (no_ip_route, 
-       no_ip_route_cmd,
-       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE)",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n")
-{
-  return static_ipv4_func (vty, 0, argv[0], NULL, argv[1], NULL);
-}
-
-DEFUN (no_ip_route_mask,
-       no_ip_route_mask_cmd,
-       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE)",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n")
-{
-  return static_ipv4_func (vty, 0, argv[0], argv[1], argv[2], NULL);
-}
-
-DEFUN (no_ip_route_pref,
-       no_ip_route_pref_cmd,
-       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) <1-255>",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Distance value for this route\n")
-{
-  return static_ipv4_func (vty, 0, argv[0], NULL, argv[1], argv[2]);
-}
-
-DEFUN (no_ip_route_mask_pref,
-       no_ip_route_mask_pref_cmd,
-       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) <1-255>",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Distance value for this route\n")
-{
-  return static_ipv4_func (vty, 0, argv[0], argv[1], argv[2], argv[3]);
-}
-
-/* New RIB.  Detailed information for IPv4 route. */
-void
-vty_show_ip_route_detail (struct vty *vty, struct route_node *rn)
-{
-  struct rib *rib;
-  struct nexthop *nexthop;
-
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      vty_out (vty, "Routing entry for %s/%d%s", 
-	       inet_ntoa (rn->p.u.prefix4), rn->p.prefixlen,
-	       VTY_NEWLINE);
-      vty_out (vty, "  Known via \"%s\"", route_info[rib->type].str);
-      vty_out (vty, ", distance %d, metric %d", rib->distance, rib->metric);
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	vty_out (vty, ", best");
-      if (rib->refcnt)
-	vty_out (vty, ", refcnt %ld", rib->refcnt);
-      vty_out (vty, "%s", VTY_NEWLINE);
-
-#define ONE_DAY_SECOND 60*60*24
-#define ONE_WEEK_SECOND 60*60*24*7
-      if (rib->type == ZEBRA_ROUTE_RIP
-	  || rib->type == ZEBRA_ROUTE_OSPF
-	  || rib->type == ZEBRA_ROUTE_ISIS
-	  || rib->type == ZEBRA_ROUTE_BGP)
-	{
-	  time_t uptime;
-	  struct tm *tm;
-
-	  uptime = time (NULL);
-	  uptime -= rib->uptime;
-	  tm = gmtime (&uptime);
-
-	  vty_out (vty, "  Last update ");
-
-	  if (uptime < ONE_DAY_SECOND)
-	    vty_out (vty,  "%02d:%02d:%02d", 
-		     tm->tm_hour, tm->tm_min, tm->tm_sec);
-	  else if (uptime < ONE_WEEK_SECOND)
-	    vty_out (vty, "%dd%02dh%02dm", 
-		     tm->tm_yday, tm->tm_hour, tm->tm_min);
-	  else
-	    vty_out (vty, "%02dw%dd%02dh", 
-		     tm->tm_yday/7,
-		     tm->tm_yday - ((tm->tm_yday/7) * 7), tm->tm_hour);
-	  vty_out (vty, " ago%s", VTY_NEWLINE);
-	}
-
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-	{
-	  vty_out (vty, "  %c",
-		   CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) ? '*' : ' ');
-
-	  switch (nexthop->type)
-	    {
-	    case NEXTHOP_TYPE_IPV4:
-	    case NEXTHOP_TYPE_IPV4_IFINDEX:
-	      vty_out (vty, " %s", inet_ntoa (nexthop->gate.ipv4));
-	      if (nexthop->ifindex)
-		vty_out (vty, ", via %s", ifindex2ifname (nexthop->ifindex));
-	      break;
-	    case NEXTHOP_TYPE_IFINDEX:
-	      vty_out (vty, " directly connected, %s",
-		       ifindex2ifname (nexthop->ifindex));
-	      break;
-	    case NEXTHOP_TYPE_IFNAME:
-	      vty_out (vty, " directly connected, %s",
-		       nexthop->ifname);
-	      break;
-	    default:
-	      break;
-	    }
-	  if (! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
-	    vty_out (vty, " inactive");
-
-	  if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
-	    {
-	      vty_out (vty, " (recursive");
-		
-	      switch (nexthop->rtype)
-		{
-		case NEXTHOP_TYPE_IPV4:
-		case NEXTHOP_TYPE_IPV4_IFINDEX:
-		  vty_out (vty, " via %s)", inet_ntoa (nexthop->rgate.ipv4));
-		  break;
-		case NEXTHOP_TYPE_IFINDEX:
-		case NEXTHOP_TYPE_IFNAME:
-		  vty_out (vty, " is directly connected, %s)",
-			   ifindex2ifname (nexthop->rifindex));
-		  break;
-		default:
-		  break;
-		}
-	    }
-	  vty_out (vty, "%s", VTY_NEWLINE);
-	}
-      vty_out (vty, "%s", VTY_NEWLINE);
-    }
-}
-
-void
-vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib)
-{
-  struct nexthop *nexthop;
-  int len = 0;
-  char buf[BUFSIZ];
-
-  /* Nexthop information. */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    {
-      if (nexthop == rib->nexthop)
-	{
-	  /* Prefix information. */
-	  len = vty_out (vty, "%c%c%c %s/%d",
-			 route_info[rib->type].c,
-			 CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED)
-			 ? '>' : ' ',
-			 CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
-			 ? '*' : ' ',
-			 inet_ntop (AF_INET, &rn->p.u.prefix, buf, BUFSIZ),
-			 rn->p.prefixlen);
-		
-	  /* Distance and metric display. */
-	  if (rib->type != ZEBRA_ROUTE_CONNECT 
-	      && rib->type != ZEBRA_ROUTE_KERNEL)
-	    len += vty_out (vty, " [%d/%d]", rib->distance,
-			    rib->metric);
-	}
-      else
-	vty_out (vty, "  %c%*c",
-		 CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
-		 ? '*' : ' ',
-		 len - 3, ' ');
-
-      switch (nexthop->type)
-	{
-	case NEXTHOP_TYPE_IPV4:
-	case NEXTHOP_TYPE_IPV4_IFINDEX:
-	  vty_out (vty, " via %s", inet_ntoa (nexthop->gate.ipv4));
-	  if (nexthop->ifindex)
-	    vty_out (vty, ", %s", ifindex2ifname (nexthop->ifindex));
-	  break;
-	case NEXTHOP_TYPE_IFINDEX:
-	  vty_out (vty, " is directly connected, %s",
-		   ifindex2ifname (nexthop->ifindex));
-	  break;
-	case NEXTHOP_TYPE_IFNAME:
-	  vty_out (vty, " is directly connected, %s",
-		   nexthop->ifname);
-	  break;
-	default:
-	  break;
-	}
-      if (! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
-	vty_out (vty, " inactive");
-
-      if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
-	{
-	  vty_out (vty, " (recursive");
-		
-	  switch (nexthop->rtype)
-	    {
-	    case NEXTHOP_TYPE_IPV4:
-	    case NEXTHOP_TYPE_IPV4_IFINDEX:
-	      vty_out (vty, " via %s)", inet_ntoa (nexthop->rgate.ipv4));
-	      break;
-	    case NEXTHOP_TYPE_IFINDEX:
-	    case NEXTHOP_TYPE_IFNAME:
-	      vty_out (vty, " is directly connected, %s)",
-		       ifindex2ifname (nexthop->rifindex));
-	      break;
-	    default:
-	      break;
-	    }
-	}
-
-      if (rib->type == ZEBRA_ROUTE_RIP
-	  || rib->type == ZEBRA_ROUTE_OSPF
-	  || rib->type == ZEBRA_ROUTE_ISIS
-	  || rib->type == ZEBRA_ROUTE_BGP)
-	{
-	  time_t uptime;
-	  struct tm *tm;
-
-	  uptime = time (NULL);
-	  uptime -= rib->uptime;
-	  tm = gmtime (&uptime);
-
-#define ONE_DAY_SECOND 60*60*24
-#define ONE_WEEK_SECOND 60*60*24*7
-
-	  if (uptime < ONE_DAY_SECOND)
-	    vty_out (vty,  ", %02d:%02d:%02d", 
-		     tm->tm_hour, tm->tm_min, tm->tm_sec);
-	  else if (uptime < ONE_WEEK_SECOND)
-	    vty_out (vty, ", %dd%02dh%02dm", 
-		     tm->tm_yday, tm->tm_hour, tm->tm_min);
-	  else
-	    vty_out (vty, ", %02dw%dd%02dh", 
-		     tm->tm_yday/7,
-		     tm->tm_yday - ((tm->tm_yday/7) * 7), tm->tm_hour);
-	}
-      vty_out (vty, "%s", VTY_NEWLINE);
-    }
-}
-
-#define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,%s I - IS-IS, %s       B - BGP, > - selected route, * - FIB route%s%s"
-
-DEFUN (show_ip_route,
-       show_ip_route_cmd,
-       "show ip route",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n")
-{
-  struct route_node *rn;
-  struct rib *rib;
-  int first = 1;
-
-  /* Show all IPv4 routes. */
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      {
-	if (first)
-	  {
-	    vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-	    first = 0;
-	  }
-	vty_show_ip_route (vty, rn, rib);
-      }
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ip_route_prefix_longer,
-       show_ip_route_prefix_longer_cmd,
-       "show ip route A.B.C.D/M longer-prefixes",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
-       "Show route matching the specified Network/Mask pair only\n")
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct prefix p;
-  int ret;
-  int first = 1;
-
-  ret = str2prefix (argv[0], &p);
-  if (! ret)
-    {
-      vty_out (vty, "%% Malformed Prefix%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  
-  /* Show matched type IPv4 routes. */
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (prefix_match (&p, &rn->p))
-	{
-	  if (first)
-	    {
-	      vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-	      first = 0;
-	    }
-	  vty_show_ip_route (vty, rn, rib);
-	}
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ip_route_supernets,
-       show_ip_route_supernets_cmd,
-       "show ip route supernets-only",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "Show supernet entries only\n")
-{
-  struct route_node *rn;
-  struct rib *rib;
-  u_int32_t addr; 
-  int first = 1;
-
-
-  /* Show matched type IPv4 routes. */
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      {
-	addr = ntohl (rn->p.u.prefix4.s_addr);
-
-	if ((IN_CLASSC (addr) && rn->p.prefixlen < 24)
-	   || (IN_CLASSB (addr) && rn->p.prefixlen < 16)
-	   || (IN_CLASSA (addr) && rn->p.prefixlen < 8)) 
-	  {
-	    if (first)
-	      {
-		vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE, 
-                         VTY_NEWLINE, VTY_NEWLINE);
-		first = 0;
-	      }
-	    vty_show_ip_route (vty, rn, rib);
-	  }
-      }
-  return CMD_SUCCESS;
-}
-
-
-DEFUN (show_ip_route_protocol,
-       show_ip_route_protocol_cmd,
-       "show ip route (bgp|connected|kernel|ospf|isis|rip|static)",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Connected\n"
-       "Kernel\n"
-       "Open Shortest Path First (OSPF)\n"
-       "ISO IS-IS (ISIS)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n")
-{
-  int type;
-  struct route_node *rn;
-  struct rib *rib;
-  int first = 1;
-
-  if (strncmp (argv[0], "b", 1) == 0)
-    type = ZEBRA_ROUTE_BGP;
-  else if (strncmp (argv[0], "c", 1) == 0)
-    type = ZEBRA_ROUTE_CONNECT;
-  else if (strncmp (argv[0], "k", 1) ==0)
-    type = ZEBRA_ROUTE_KERNEL;
-  else if (strncmp (argv[0], "o", 1) == 0)
-    type = ZEBRA_ROUTE_OSPF;
-  else if (strncmp (argv[0], "i", 1) == 0)
-    type = ZEBRA_ROUTE_ISIS;
-  else if (strncmp (argv[0], "r", 1) == 0)
-    type = ZEBRA_ROUTE_RIP;
-  else if (strncmp (argv[0], "s", 1) == 0)
-    type = ZEBRA_ROUTE_STATIC;
-  else 
-    {
-      vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  
-  /* Show matched type IPv4 routes. */
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (rib->type == type)
-	{
-	  if (first)
-	    {
-	      vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE, 
-                       VTY_NEWLINE, VTY_NEWLINE);
-	      first = 0;
-	    }
-	  vty_show_ip_route (vty, rn, rib);
-	}
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ip_route_addr,
-       show_ip_route_addr_cmd,
-       "show ip route A.B.C.D",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "Network in the IP routing table to display\n")
-{
-  int ret;
-  struct prefix_ipv4 p;
-  struct route_node *rn;
-
-  ret = str2prefix_ipv4 (argv[0], &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "Malformed IPv4 address%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  rn = route_node_match (rib_table_ipv4, (struct prefix *) &p);
-  if (! rn)
-    {
-      vty_out (vty, "%% Network not in table%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  vty_show_ip_route_detail (vty, rn);
-
-  route_unlock_node (rn);
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ip_route_prefix,
-       show_ip_route_prefix_cmd,
-       "show ip route A.B.C.D/M",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n")
-{
-  int ret;
-  struct prefix_ipv4 p;
-  struct route_node *rn;
-
-  ret = str2prefix_ipv4 (argv[0], &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "Malformed IPv4 address%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  rn = route_node_match (rib_table_ipv4, (struct prefix *) &p);
-  if (! rn || rn->p.prefixlen != p.prefixlen)
-    {
-      vty_out (vty, "%% Network not in table%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  vty_show_ip_route_detail (vty, rn);
-
-  route_unlock_node (rn);
-
-  return CMD_SUCCESS;
-}
-
-#ifdef HAVE_IPV6
-int
-rib_bogus_ipv6 (int type, struct prefix_ipv6 *p,
-		struct in6_addr *gate, unsigned int ifindex, int table)
-{
-  if (type == ZEBRA_ROUTE_CONNECT && IN6_IS_ADDR_UNSPECIFIED (&p->prefix))
-    return 1;
-  if (type == ZEBRA_ROUTE_KERNEL && IN6_IS_ADDR_UNSPECIFIED (&p->prefix)
-      && p->prefixlen == 96 && gate && IN6_IS_ADDR_UNSPECIFIED (gate))
-    {
-      kernel_delete_ipv6_old (p, gate, ifindex, 0, table);
-      return 1;
-    }
-  return 0;
-}
-
-int
-rib_add_ipv6 (int type, int flags, struct prefix_ipv6 *p,
-	      struct in6_addr *gate, unsigned int ifindex, int table)
-{
-  struct rib *rib;
-  struct rib *same = NULL;
-  struct route_node *rn;
-  struct nexthop *nexthop;
-
-  int distance;
-  u_int32_t metric = 0;
-
-  /* Make sure mask is applied. */
-  apply_mask_ipv6 (p);
-
-  /* Set default distance by route type. */
-  distance = route_info[type].distance;
-  
-  if (type == ZEBRA_ROUTE_BGP && CHECK_FLAG (flags, ZEBRA_FLAG_IBGP))
-    distance = 200;
-
-  /* Make new rib. */
-  if (!table)
-    table = RT_TABLE_MAIN;
-
-  /* Filter bogus route. */
-  if (rib_bogus_ipv6 (type, p, gate, ifindex, table))
-    return 0;
-
-  /* Lookup route node.*/
-  rn = route_node_get (rib_table_ipv6, (struct prefix *) p);
-
-  /* If same type of route are installed, treat it as a implicit
-     withdraw. */
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      if (rib->type == ZEBRA_ROUTE_CONNECT)
-	{
-	  nexthop = rib->nexthop;
-
-	  if (rib->type == type
-	      && (! table || rib->table == table)
-	      && nexthop && nexthop->type == NEXTHOP_TYPE_IFINDEX
-	      && nexthop->ifindex == ifindex)
-	  {
-	    rib->refcnt++;
-	    return 0;
-	  }
-	}
-      else if (rib->type == type
-	       && (! table || (rib->table == table)))
-	{
-	  same = rib;
-	  rib_delnode (rn, same);
-	  route_unlock_node (rn);
-	  break;
-	}
-    }
-
-  /* Allocate new rib structure. */
-  rib = XMALLOC (MTYPE_RIB, sizeof (struct rib));
-  memset (rib, 0, sizeof (struct rib));
-  rib->type = type;
-  rib->distance = distance;
-  rib->flags = flags;
-  rib->metric = metric;
-  rib->table = table;
-  rib->nexthop_num = 0;
-  rib->uptime = time (NULL);
-
-  /* Nexthop settings. */
-  if (gate)
-    {
-      if (ifindex)
-	nexthop_ipv6_ifindex_add (rib, gate, ifindex);
-      else
-	nexthop_ipv6_add (rib, gate);
-    }
-  else
-    nexthop_ifindex_add (rib, ifindex);
-
-  /* If this route is kernel route, set FIB flag to the route. */
-  if (type == ZEBRA_ROUTE_KERNEL || type == ZEBRA_ROUTE_CONNECT)
-    for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-      SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-  /* Link new rib to node.*/
-  rib_addnode (rn, rib);
-
-  /* Process this route node. */
-  rib_process (rn, same);
-
-  /* Free implicit route.*/
-  if (same)
-    newrib_free (same);
-
-  return 0;
-}
-
-int
-rib_delete_ipv6 (int type, int flags, struct prefix_ipv6 *p,
-		 struct in6_addr *gate, unsigned int ifindex, int table)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct rib *fib = NULL;
-  struct rib *same = NULL;
-  struct nexthop *nexthop;
-  char buf1[BUFSIZ];
-  char buf2[BUFSIZ];
-
-  /* Apply mask. */
-  apply_mask_ipv6 (p);
-
-  /* Lookup route node. */
-  rn = route_node_lookup (rib_table_ipv6, (struct prefix *) p);
-  if (! rn)
-    {
-      if (IS_ZEBRA_DEBUG_KERNEL)
-	{
-	  if (gate)
-	    zlog_info ("route %s/%d via %s ifindex %d doesn't exist in rib",
-		       inet_ntop (AF_INET6, &p->prefix, buf1, BUFSIZ),
-		       p->prefixlen,
-		       inet_ntop (AF_INET6, gate, buf2, BUFSIZ),
-		       ifindex);
-	  else
-	    zlog_info ("route %s/%d ifindex %d doesn't exist in rib",
-		       inet_ntop (AF_INET6, &p->prefix, buf1, BUFSIZ),
-		       p->prefixlen,
-		       ifindex);
-	}
-      return ZEBRA_ERR_RTNOEXIST;
-    }
-
-  /* Lookup same type route. */
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	fib = rib;
-
-      if (rib->type == ZEBRA_ROUTE_CONNECT)
-	{
-	  nexthop = rib->nexthop;
-
-	  if (rib->type == type
-	      && (! table || rib->table == table)
-	      && nexthop && nexthop->type == NEXTHOP_TYPE_IFINDEX
-	      && nexthop->ifindex == ifindex)
-	    {
-	      if (rib->refcnt)
-		{
-		  rib->refcnt--;
-		  route_unlock_node (rn);
-		  route_unlock_node (rn);
-		  return 0;
-		}
-	      same = rib;
-	      break;
-	    }
-	}
-      else
-	{
-	  if (rib->type == type
-	      && (! table || rib->table == table))
-	    {
-	      same = rib;
-	      break;
-	    }
-	}
-    }
-
-  /* If same type of route can't be found and this message is from
-     kernel. */
-  if (! same)
-    {
-      if (fib && type == ZEBRA_ROUTE_KERNEL)
-	{
-	  /* Unset flags. */
-	  for (nexthop = fib->nexthop; nexthop; nexthop = nexthop->next)
-	    UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
-
-	  UNSET_FLAG (fib->flags, ZEBRA_FLAG_SELECTED);
-	}
-      else
-	{
-	  if (IS_ZEBRA_DEBUG_KERNEL)
-	    {
-	      if (gate)
-		zlog_info ("route %s/%d via %s ifindex %d type %d doesn't exist in rib",
-			   inet_ntop (AF_INET6, &p->prefix, buf1, BUFSIZ),
-			   p->prefixlen,
-			   inet_ntop (AF_INET6, gate, buf2, BUFSIZ),
-			   ifindex,
-			   type);
-	      else
-		zlog_info ("route %s/%d ifindex %d type %d doesn't exist in rib",
-			   inet_ntop (AF_INET6, &p->prefix, buf1, BUFSIZ),
-			   p->prefixlen,
-			   ifindex,
-			   type);
-	    }
-	  route_unlock_node (rn);
-	  return ZEBRA_ERR_RTNOEXIST;
-	}
-    }
-
-  if (same)
-    rib_delnode (rn, same);
-
-  /* Process changes. */
-  rib_process (rn, same);
-
-  if (same)
-    {
-      newrib_free (same);
-      route_unlock_node (rn);
-    }
-
-  route_unlock_node (rn);
-
-  return 0;
-}
-
-/* Delete non system routes. */
-void
-rib_close_ipv6 ()
-{
-  struct route_node *rn;
-  struct rib *rib;
-
-  for (rn = route_top (rib_table_ipv6); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (! RIB_SYSTEM_ROUTE (rib)
-	  && CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	rib_uninstall_kernel (rn, rib);
-}
-
-/* Install static route into rib. */
-void
-static_ipv6_install (struct prefix_ipv6 *p, struct static_ipv6 *si)
-{
-  struct rib *rib;
-  struct route_node *rn;
-
-  /* Lookup existing route */
-  rn = route_node_get (rib_table_ipv6, (struct prefix *) p);
-  for (rib = rn->info; rib; rib = rib->next)
-    if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance)
-      break;
-
-  if (rib)
-    {
-      /* Same distance static route is there.  Update it with new
-         nexthop. */
-      rib_uninstall (rn, rib);
-      route_unlock_node (rn);
-
-      switch (si->type)
-	{
-	case STATIC_IPV6_GATEWAY:
-	  nexthop_ipv6_add (rib, &si->ipv6);
-	  break;
-	case STATIC_IPV6_IFNAME:
-	  nexthop_ifname_add (rib, si->ifname);
-	  break;
-	case STATIC_IPV6_GATEWAY_IFNAME:
-	  nexthop_ipv6_ifname_add (rib, &si->ipv6, si->ifname);
-	  break;
-	}
-      rib_process (rn, NULL);
-    }
-  else
-    {
-      /* This is new static route. */
-      rib = XMALLOC (MTYPE_RIB, sizeof (struct rib));
-      memset (rib, 0, sizeof (struct rib));
-
-      rib->type = ZEBRA_ROUTE_STATIC;
-      rib->distance = si->distance;
-      rib->metric = 0;
-      rib->nexthop_num = 0;
-
-      switch (si->type)
-	{
-	case STATIC_IPV6_GATEWAY:
-	  nexthop_ipv6_add (rib, &si->ipv6);
-	  break;
-	case STATIC_IPV6_IFNAME:
-	  nexthop_ifname_add (rib, si->ifname);
-	  break;
-	case STATIC_IPV6_GATEWAY_IFNAME:
-	  nexthop_ipv6_ifname_add (rib, &si->ipv6, si->ifname);
-	  break;
-	}
-
-      /* Link this rib to the tree. */
-      rib_addnode (rn, rib);
-
-      /* Process this prefix. */
-      rib_process (rn, NULL);
-    }
-}
-
-int
-static_ipv6_nexthop_same (struct nexthop *nexthop, struct static_ipv6 *si)
-{
-  if (nexthop->type == NEXTHOP_TYPE_IPV6
-      && si->type == STATIC_IPV6_GATEWAY
-      && IPV6_ADDR_SAME (&nexthop->gate.ipv6, &si->ipv6))
-    return 1;
-  if (nexthop->type == NEXTHOP_TYPE_IFNAME
-      && si->type == STATIC_IPV6_IFNAME
-      && strcmp (nexthop->ifname, si->ifname) == 0)
-    return 1;
-  if (nexthop->type == NEXTHOP_TYPE_IPV6_IFNAME
-      && si->type == STATIC_IPV6_GATEWAY_IFNAME
-      && IPV6_ADDR_SAME (&nexthop->gate.ipv6, &si->ipv6)
-      && strcmp (nexthop->ifname, si->ifname) == 0)
-    return 1;
-  return 0;;
-}
-
-void
-static_ipv6_uninstall (struct prefix_ipv6 *p, struct static_ipv6 *si)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct nexthop *nexthop;
-
-  /* Lookup existing route with type and distance. */
-  rn = route_node_lookup (rib_table_ipv6, (struct prefix *) p);
-  if (! rn)
-    return;
-
-  for (rib = rn->info; rib; rib = rib->next)
-    if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance)
-      break;
-  if (! rib)
-    {
-      route_unlock_node (rn);
-      return;
-    }
-
-  /* Lookup nexthop. */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    if (static_ipv6_nexthop_same (nexthop, si))
-      break;
-
-  /* Can't find nexthop. */
-  if (! nexthop)
-    {
-      route_unlock_node (rn);
-      return;
-    }
-  
-  /* Check nexthop. */
-  if (rib->nexthop_num == 1)
-    {
-      rib_delnode (rn, rib);
-      rib_process (rn, rib);
-      newrib_free (rib);
-      route_unlock_node (rn);
-    }
-  else
-    {
-      rib_uninstall (rn, rib);
-      nexthop_delete (rib, nexthop);
-      nexthop_free (nexthop);
-      rib_process (rn, rib);
-    }
-
-  /* Unlock node. */
-  route_unlock_node (rn);
-}
-
-/* Add static route into static route configuration. */
-int
-static_ipv6_add (struct prefix_ipv6 *p, u_char type, struct in6_addr *gate,
-		 char *ifname, u_char distance, int table)
-{
-  struct route_node *rn;
-  struct static_ipv6 *si;
-  struct static_ipv6 *pp;
-  struct static_ipv6 *cp;
-  
-  /* Lookup static route prefix. */
-  rn = route_node_get (static_table_ipv6, (struct prefix *) p);
-
-  /* Do nothing if there is a same static route.  */
-  for (si = rn->info; si; si = si->next)
-    {
-      if (distance == si->distance 
-	  && type == si->type
-	  && (! gate || IPV6_ADDR_SAME (gate, &si->ipv6))
-	  && (! ifname || strcmp (ifname, si->ifname) == 0))
-	{
-	  route_unlock_node (rn);
-	  return 0;
-	}
-    }
-
-  /* Make new static route structure. */
-  si = XMALLOC (MTYPE_STATIC_IPV6, sizeof (struct static_ipv6));
-  memset (si, 0, sizeof (struct static_ipv6));
-
-  si->type = type;
-  si->distance = distance;
-
-  switch (type)
-    {
-    case STATIC_IPV6_GATEWAY:
-      si->ipv6 = *gate;
-      break;
-    case STATIC_IPV6_IFNAME:
-      si->ifname = XSTRDUP (0, ifname);
-      break;
-    case STATIC_IPV6_GATEWAY_IFNAME:
-      si->ipv6 = *gate;
-      si->ifname = XSTRDUP (0, ifname);
-      break;
-    }
-
-  /* Add new static route information to the tree with sort by
-     distance value and gateway address. */
-  for (pp = NULL, cp = rn->info; cp; pp = cp, cp = cp->next)
-    {
-      if (si->distance < cp->distance)
-	break;
-      if (si->distance > cp->distance)
-	continue;
-    }
-
-  /* Make linked list. */
-  if (pp)
-    pp->next = si;
-  else
-    rn->info = si;
-  if (cp)
-    cp->prev = si;
-  si->prev = pp;
-  si->next = cp;
-
-  /* Install into rib. */
-  static_ipv6_install (p, si);
-
-  return 1;
-}
-
-/* Delete static route from static route configuration. */
-int
-static_ipv6_delete (struct prefix_ipv6 *p, u_char type, struct in6_addr *gate,
-		    char *ifname, u_char distance, int table)
-{
-  struct route_node *rn;
-  struct static_ipv6 *si;
-
-  /* Lookup static route prefix. */
-  rn = route_node_lookup (static_table_ipv6, (struct prefix *) p);
-  if (! rn)
-    return 0;
-
-  /* Find same static route is the tree */
-  for (si = rn->info; si; si = si->next)
-    if (distance == si->distance 
-	&& type == si->type
-	&& (! gate || IPV6_ADDR_SAME (gate, &si->ipv6))
-	&& (! ifname || strcmp (ifname, si->ifname) == 0))
-      break;
-
-  /* Can't find static route. */
-  if (! si)
-    {
-      route_unlock_node (rn);
-      return 0;
-    }
-
-  /* Install into rib. */
-  static_ipv6_uninstall (p, si);
-
-  /* Unlink static route from linked list. */
-  if (si->prev)
-    si->prev->next = si->next;
-  else
-    rn->info = si->next;
-  if (si->next)
-    si->next->prev = si->prev;
-  
-  /* Free static route configuration. */
-  XFREE (MTYPE_STATIC_IPV6, si);
-
-  return 1;
-}
-
-/* General fucntion for IPv6 static route. */
-int
-static_ipv6_func (struct vty *vty, int add_cmd, char *dest_str,
-		  char *gate_str, char *ifname, char *distance_str)
-{
-  int ret;
-  u_char distance;
-  struct prefix_ipv6 p;
-  struct in6_addr *gate = NULL;
-  struct in6_addr gate_addr;
-  u_char type = 0;
-  int table = rtm_table_default;
-  
-  ret = str2prefix_ipv6 (dest_str, &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  /* Apply mask for given prefix. */
-  apply_mask_ipv6 (&p);
-
-  /* Administrative distance. */
-  if (distance_str)
-    distance = atoi (distance_str);
-  else
-    distance = ZEBRA_STATIC_DISTANCE_DEFAULT;
-
-  /* When gateway is valid IPv6 addrees, then gate is treated as
-     nexthop address other case gate is treated as interface name. */
-  ret = inet_pton (AF_INET6, gate_str, &gate_addr);
-
-  if (ifname)
-    {
-      /* When ifname is specified.  It must be come with gateway
-         address. */
-      if (ret != 1)
-	{
-	  vty_out (vty, "%% Malformed address%s", VTY_NEWLINE);
-	  return CMD_WARNING;
-	}
-      type = STATIC_IPV6_GATEWAY_IFNAME;
-      gate = &gate_addr;
-    }
-  else
-    {
-      if (ret == 1)
-	{
-	  type = STATIC_IPV6_GATEWAY;
-	  gate = &gate_addr;
-	}
-      else
-	{
-	  type = STATIC_IPV6_IFNAME;
-	  ifname = gate_str;
-	}
-    }
-
-  if (add_cmd)
-    static_ipv6_add (&p, type, gate, ifname, distance, table);
-  else
-    static_ipv6_delete (&p, type, gate, ifname, distance, table);
-
-  return CMD_SUCCESS;
-}
-
-/* Write IPv6 static route configuration. */
-int
-static_ipv6_write (struct vty *vty)
-{
-  struct route_node *rn;
-  struct static_ipv6 *si;  
-  int write;
-  char buf[BUFSIZ];
-
-  write = 0;
-
-  for (rn = route_top (static_table_ipv6); rn; rn = route_next (rn))
-    for (si = rn->info; si; si = si->next)
-      {
-	vty_out (vty, "ipv6 route %s/%d",
-		 inet_ntop (AF_INET6, &rn->p.u.prefix6, buf, BUFSIZ),
-		 rn->p.prefixlen);
-
-	switch (si->type)
-	  {
-	  case STATIC_IPV6_GATEWAY:
-	    vty_out (vty, " %s", inet_ntop (AF_INET6, &si->ipv6, buf, BUFSIZ));
-	    break;
-	  case STATIC_IPV6_IFNAME:
-	    vty_out (vty, " %s", si->ifname);
-	    break;
-	  case STATIC_IPV6_GATEWAY_IFNAME:
-	    vty_out (vty, " %s %s",
-		     inet_ntop (AF_INET6, &si->ipv6, buf, BUFSIZ), si->ifname);
-	    break;
-	  }
-
-	if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT)
-	  vty_out (vty, " %d", si->distance);
-	vty_out (vty, "%s", VTY_NEWLINE);
-
-	write = 1;
-      }
-  return write;
-}
-
-DEFUN (ipv6_route,
-       ipv6_route_cmd,
-       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)",
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-{
-  return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, NULL);
-}
-
-DEFUN (ipv6_route_ifname,
-       ipv6_route_ifname_cmd,
-       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE",
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-{
-  return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], NULL);
-}
-
-DEFUN (ipv6_route_pref,
-       ipv6_route_pref_cmd,
-       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>",
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-{
-  return static_ipv6_func (vty, 1, argv[0], argv[1], NULL, argv[2]);
-}
-
-DEFUN (ipv6_route_ifname_pref,
-       ipv6_route_ifname_pref_cmd,
-       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>",
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-{
-  return static_ipv6_func (vty, 1, argv[0], argv[1], argv[2], argv[3]);
-}
-
-DEFUN (no_ipv6_route,
-       no_ipv6_route_cmd,
-       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-{
-  return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, NULL);
-}
-
-DEFUN (no_ipv6_route_ifname,
-       no_ipv6_route_ifname_cmd,
-       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-{
-  return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], NULL);
-}
-
-DEFUN (no_ipv6_route_pref,
-       no_ipv6_route_pref_cmd,
-       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-{
-  return static_ipv6_func (vty, 0, argv[0], argv[1], NULL, argv[2]);
-}
-
-DEFUN (no_ipv6_route_ifname_pref,
-       no_ipv6_route_ifname_pref_cmd,
-       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>",
-       NO_STR
-       IP_STR
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-{
-  return static_ipv6_func (vty, 0, argv[0], argv[1], argv[2], argv[3]);
-}
-
-/* New RIB.  Detailed information for IPv4 route. */
-void
-vty_show_ipv6_route_detail (struct vty *vty, struct route_node *rn)
-{
-  struct rib *rib;
-  struct nexthop *nexthop;
-  char buf[BUFSIZ];
-
-  for (rib = rn->info; rib; rib = rib->next)
-    {
-      vty_out (vty, "Routing entry for %s/%d%s", 
-	       inet_ntop (AF_INET6, &rn->p.u.prefix6, buf, BUFSIZ),
-	       rn->p.prefixlen,
-	       VTY_NEWLINE);
-      vty_out (vty, "  Known via \"%s\"", route_info[rib->type].str);
-      vty_out (vty, ", distance %d, metric %d", rib->distance, rib->metric);
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
-	vty_out (vty, ", best");
-      if (rib->refcnt)
-	vty_out (vty, ", refcnt %ld", rib->refcnt);
-      vty_out (vty, "%s", VTY_NEWLINE);
-
-#define ONE_DAY_SECOND 60*60*24
-#define ONE_WEEK_SECOND 60*60*24*7
-      if (rib->type == ZEBRA_ROUTE_RIPNG
-	  || rib->type == ZEBRA_ROUTE_OSPF6
-	  || rib->type == ZEBRA_ROUTE_ISIS
-	  || rib->type == ZEBRA_ROUTE_BGP)
-	{
-	  time_t uptime;
-	  struct tm *tm;
-
-	  uptime = time (NULL);
-	  uptime -= rib->uptime;
-	  tm = gmtime (&uptime);
-
-	  vty_out (vty, "  Last update ");
-
-	  if (uptime < ONE_DAY_SECOND)
-	    vty_out (vty,  "%02d:%02d:%02d", 
-		     tm->tm_hour, tm->tm_min, tm->tm_sec);
-	  else if (uptime < ONE_WEEK_SECOND)
-	    vty_out (vty, "%dd%02dh%02dm", 
-		     tm->tm_yday, tm->tm_hour, tm->tm_min);
-	  else
-	    vty_out (vty, "%02dw%dd%02dh", 
-		     tm->tm_yday/7,
-		     tm->tm_yday - ((tm->tm_yday/7) * 7), tm->tm_hour);
-	  vty_out (vty, " ago%s", VTY_NEWLINE);
-	}
-
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-	{
-	  vty_out (vty, "  %c",
-		   CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) ? '*' : ' ');
-
-	  switch (nexthop->type)
-	    {
-	    case NEXTHOP_TYPE_IPV6:
-	    case NEXTHOP_TYPE_IPV6_IFINDEX:
-	    case NEXTHOP_TYPE_IPV6_IFNAME:
-	      vty_out (vty, " %s",
-		       inet_ntop (AF_INET6, &nexthop->gate.ipv6, buf, BUFSIZ));
-	      if (nexthop->type == NEXTHOP_TYPE_IPV6_IFNAME)
-		vty_out (vty, ", %s", nexthop->ifname);
-	      else if (nexthop->ifindex)
-		vty_out (vty, ", via %s", ifindex2ifname (nexthop->ifindex));
-	      break;
-	    case NEXTHOP_TYPE_IFINDEX:
-	      vty_out (vty, " directly connected, %s",
-		       ifindex2ifname (nexthop->ifindex));
-	      break;
-	    case NEXTHOP_TYPE_IFNAME:
-	      vty_out (vty, " directly connected, %s",
-		       nexthop->ifname);
-	      break;
-	    default:
-	      break;
-	    }
-	  if (! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
-	    vty_out (vty, " inactive");
-
-	  if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
-	    {
-	      vty_out (vty, " (recursive");
-		
-	      switch (nexthop->rtype)
-		{
-		case NEXTHOP_TYPE_IPV6:
-		case NEXTHOP_TYPE_IPV6_IFINDEX:
-		case NEXTHOP_TYPE_IPV6_IFNAME:
-		  vty_out (vty, " via %s)",
-			   inet_ntop (AF_INET6, &nexthop->rgate.ipv6,
-				      buf, BUFSIZ));
-		  if (nexthop->rifindex)
-		    vty_out (vty, ", %s", ifindex2ifname (nexthop->rifindex));
-		  break;
-		case NEXTHOP_TYPE_IFINDEX:
-		case NEXTHOP_TYPE_IFNAME:
-		  vty_out (vty, " is directly connected, %s)",
-			   ifindex2ifname (nexthop->rifindex));
-		  break;
-		default:
-		  break;
-		}
-	    }
-	  vty_out (vty, "%s", VTY_NEWLINE);
-	}
-      vty_out (vty, "%s", VTY_NEWLINE);
-    }
-}
-
-void
-vty_show_ipv6_route (struct vty *vty, struct route_node *rn,
-		     struct rib *rib)
-{
-  struct nexthop *nexthop;
-  int len = 0;
-  char buf[BUFSIZ];
-
-  /* Nexthop information. */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
-    {
-      if (nexthop == rib->nexthop)
-	{
-	  /* Prefix information. */	  
-	  len = vty_out (vty, "%c%c%c %s/%d",
-			 route_info[rib->type].c,
-			 CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED)
-			 ? '>' : ' ',
-			 CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
-			 ? '*' : ' ',
-			 inet_ntop (AF_INET6, &rn->p.u.prefix6, buf, BUFSIZ),
-			 rn->p.prefixlen);
-
-	  /* Distance and metric display. */
-	  if (rib->type != ZEBRA_ROUTE_CONNECT 
-	      && rib->type != ZEBRA_ROUTE_KERNEL)
-	    len += vty_out (vty, " [%d/%d]", rib->distance,
-			    rib->metric);
-	}
-      else
-	vty_out (vty, "  %c%*c",
-		 CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
-		 ? '*' : ' ',
-		 len - 3, ' ');
-
-      switch (nexthop->type)
-	{
-	case NEXTHOP_TYPE_IPV6:
-	case NEXTHOP_TYPE_IPV6_IFINDEX:
-	case NEXTHOP_TYPE_IPV6_IFNAME:
-	  vty_out (vty, " via %s",
-		   inet_ntop (AF_INET6, &nexthop->gate.ipv6, buf, BUFSIZ));
-	  if (nexthop->type == NEXTHOP_TYPE_IPV6_IFNAME)
-	    vty_out (vty, ", %s", nexthop->ifname);
-	  else if (nexthop->ifindex)
-	    vty_out (vty, ", %s", ifindex2ifname (nexthop->ifindex));
-	  break;
-	case NEXTHOP_TYPE_IFINDEX:
-	  vty_out (vty, " is directly connected, %s",
-		   ifindex2ifname (nexthop->ifindex));
-	  break;
-	case NEXTHOP_TYPE_IFNAME:
-	  vty_out (vty, " is directly connected, %s",
-		   nexthop->ifname);
-	  break;
-	default:
-	  break;
-	}
-      if (! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
-	vty_out (vty, " inactive");
-
-      if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
-	{
-	  vty_out (vty, " (recursive");
-		
-	  switch (nexthop->rtype)
-	    {
-	    case NEXTHOP_TYPE_IPV6:
-	    case NEXTHOP_TYPE_IPV6_IFINDEX:
-	    case NEXTHOP_TYPE_IPV6_IFNAME:
-	      vty_out (vty, " via %s)",
-		       inet_ntop (AF_INET6, &nexthop->rgate.ipv6,
-				  buf, BUFSIZ));
-	      if (nexthop->rifindex)
-		vty_out (vty, ", %s", ifindex2ifname (nexthop->rifindex));
-	      break;
-	    case NEXTHOP_TYPE_IFINDEX:
-	    case NEXTHOP_TYPE_IFNAME:
-	      vty_out (vty, " is directly connected, %s)",
-		       ifindex2ifname (nexthop->rifindex));
-	      break;
-	    default:
-	      break;
-	    }
-	}
-
-      if (rib->type == ZEBRA_ROUTE_RIPNG
-	  || rib->type == ZEBRA_ROUTE_OSPF6
-	  || rib->type == ZEBRA_ROUTE_ISIS
-	  || rib->type == ZEBRA_ROUTE_BGP)
-	{
-	  time_t uptime;
-	  struct tm *tm;
-
-	  uptime = time (NULL);
-	  uptime -= rib->uptime;
-	  tm = gmtime (&uptime);
-
-#define ONE_DAY_SECOND 60*60*24
-#define ONE_WEEK_SECOND 60*60*24*7
-
-	  if (uptime < ONE_DAY_SECOND)
-	    vty_out (vty,  ", %02d:%02d:%02d", 
-		     tm->tm_hour, tm->tm_min, tm->tm_sec);
-	  else if (uptime < ONE_WEEK_SECOND)
-	    vty_out (vty, ", %dd%02dh%02dm", 
-		     tm->tm_yday, tm->tm_hour, tm->tm_min);
-	  else
-	    vty_out (vty, ", %02dw%dd%02dh", 
-		     tm->tm_yday/7,
-		     tm->tm_yday - ((tm->tm_yday/7) * 7), tm->tm_hour);
-	}
-      vty_out (vty, "%s", VTY_NEWLINE);
-    }
-}
-
-#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3, I - IS-IS,%s       B - BGP, * - FIB route.%s%s"
-
-DEFUN (show_ipv6_route,
-       show_ipv6_route_cmd,
-       "show ipv6 route",
-       SHOW_STR
-       IP_STR
-       "IPv6 routing table\n")
-{
-  struct route_node *rn;
-  struct rib *rib;
-  int first = 1;
-
-  /* Show all IPv6 route. */
-  for (rn = route_top (rib_table_ipv6); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      {
-	if (first)
-	  {
-	    vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-	    first = 0;
-	  }
-	vty_show_ipv6_route (vty, rn, rib);
-      }
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ipv6_route_prefix_longer,
-       show_ipv6_route_prefix_longer_cmd,
-       "show ipv6 route X:X::X:X/M longer-prefixes",
-       SHOW_STR
-       IP_STR
-       "IPv6 routing table\n"
-       "IPv6 prefix\n"
-       "Show route matching the specified Network/Mask pair only\n")
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct prefix p;
-  int ret;
-  int first = 1;
-
-  ret = str2prefix (argv[0], &p);
-  if (! ret)
-    {
-      vty_out (vty, "%% Malformed Prefix%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  /* Show matched type IPv6 routes. */
-  for (rn = route_top (rib_table_ipv6); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (prefix_match (&p, &rn->p))
-	{
-	  if (first)
-	    {
-	      vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-	      first = 0;
-	    }
-	  vty_show_ipv6_route (vty, rn, rib);
-	}
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ipv6_route_protocol,
-       show_ipv6_route_protocol_cmd,
-       "show ipv6 route (bgp|connected|kernel|ospf6|isis|ripng|static)",
-       SHOW_STR
-       IP_STR
-       "IP routing table\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Connected\n"
-       "Kernel\n"
-       "Open Shortest Path First (OSPFv3)\n"
-       "ISO IS-IS (ISIS)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n")
-{
-  int type;
-  struct route_node *rn;
-  struct rib *rib;
-  int first = 1;
-
-  if (strncmp (argv[0], "b", 1) == 0)
-    type = ZEBRA_ROUTE_BGP;
-  else if (strncmp (argv[0], "c", 1) == 0)
-    type = ZEBRA_ROUTE_CONNECT;
-  else if (strncmp (argv[0], "k", 1) ==0)
-    type = ZEBRA_ROUTE_KERNEL;
-  else if (strncmp (argv[0], "o", 1) == 0)
-    type = ZEBRA_ROUTE_OSPF6;
-  else if (strncmp (argv[0], "i", 1) == 0)
-    type = ZEBRA_ROUTE_ISIS;
-  else if (strncmp (argv[0], "r", 1) == 0)
-    type = ZEBRA_ROUTE_RIPNG;
-  else if (strncmp (argv[0], "s", 1) == 0)
-    type = ZEBRA_ROUTE_STATIC;
-  else 
-    {
-      vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-  
-  /* Show matched type IPv6 routes. */
-  for (rn = route_top (rib_table_ipv6); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = rib->next)
-      if (rib->type == type)
-	{
-	  if (first)
-	    {
-	      vty_out (vty, SHOW_ROUTE_V6_HEADER, VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-	      first = 0;
-	    }
-	  vty_show_ipv6_route (vty, rn, rib);
-	}
-  return CMD_SUCCESS;
-}
-
-
-DEFUN (show_ipv6_route_addr,
-       show_ipv6_route_addr_cmd,
-       "show ipv6 route X:X::X:X",
-       SHOW_STR
-       IP_STR
-       "IPv6 routing table\n"
-       "IPv6 Address\n")
-{
-  int ret;
-  struct prefix_ipv6 p;
-  struct route_node *rn;
-
-  ret = str2prefix_ipv6 (argv[0], &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "Malformed IPv6 address%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  rn = route_node_match (rib_table_ipv6, (struct prefix *) &p);
-  if (! rn)
-    {
-      vty_out (vty, "%% Network not in table%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  vty_show_ipv6_route_detail (vty, rn);
-
-  route_unlock_node (rn);
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_ipv6_route_prefix,
-       show_ipv6_route_prefix_cmd,
-       "show ipv6 route X:X::X:X/M",
-       SHOW_STR
-       IP_STR
-       "IPv6 routing table\n"
-       "IPv6 prefix\n")
-{
-  int ret;
-  struct prefix_ipv6 p;
-  struct route_node *rn;
-
-  ret = str2prefix_ipv6 (argv[0], &p);
-  if (ret <= 0)
-    {
-      vty_out (vty, "Malformed IPv6 prefix%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  rn = route_node_match (rib_table_ipv6, (struct prefix *) &p);
-  if (! rn || rn->p.prefixlen != p.prefixlen)
-    {
-      vty_out (vty, "%% Network not in table%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  vty_show_ipv6_route_detail (vty, rn);
-
-  route_unlock_node (rn);
-
-  return CMD_SUCCESS;
-}
-#endif /* HAVE_IPV6 */
-
-/* RIB update function. */
-void
-rib_update ()
-{
-  struct route_node *rn;
-
-  for (rn = route_top (rib_table_ipv4); rn; rn = route_next (rn))
-    /* Update reachability. */
-    rib_process (rn, NULL);
-
-#ifdef HAVE_IPV6
-  for (rn = route_top (rib_table_ipv6); rn; rn = route_next (rn))
-    rib_process (rn, NULL);
-#endif /* HAVE_IPV6 */
-}
-
-/* Interface goes up. */
-void
-rib_if_up (struct interface *ifp)
-{
-  rib_update ();
-}
-
-/* Interface goes down. */
-void
-rib_if_down (struct interface *ifp)
-{
-  rib_update ();
-}
-
-/* Clean up routines. */
-void
-rib_weed_table (struct route_table *rib_table)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct rib *next;
-
-  for (rn = route_top (rib_table); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = next)
-      {
-	next = rib->next;
-
-        if (rib->table != rtm_table_default &&
-	    rib->table != RT_TABLE_MAIN)
-	  {
-	    rib_delnode (rn, rib);
-	    newrib_free (rib);
-	    route_unlock_node (rn);
-	  }
-      }
-}
-
-/* Delete all routes from unmanaged tables. */
-void
-rib_weed_tables ()
-{
-  rib_weed_table (rib_table_ipv4);
-#ifdef HAVE_IPV6
-  rib_weed_table (rib_table_ipv6);
-#endif /* HAVE_IPV6 */
-}
-
-void
-rib_sweep_table (struct route_table *rib_table)
-{
-  struct route_node *rn;
-  struct rib *rib;
-  struct rib *next;
-  int ret = 0;
-
-  for (rn = route_top (rib_table); rn; rn = route_next (rn))
-    for (rib = rn->info; rib; rib = next)
-      {
-	next = rib->next;
-
-        if ((rib->type == ZEBRA_ROUTE_KERNEL) && 
-	    CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELFROUTE))
-          {
-	    ret = rib_uninstall_kernel (rn, rib);
-
-	    if (! ret)
-	      {
-		rib_delnode (rn, rib);
-		newrib_free (rib);
-		route_unlock_node (rn);
-	      }
-          }
-      }
-}
-
-void
-rib_sweep_route ()
-{
-  rib_sweep_table (rib_table_ipv4);
-#ifdef HAVE_IPV6  
-  rib_sweep_table (rib_table_ipv6);
-#endif /* HAVE_IPV6 */
-}
-
-/* Close rib when zebra terminates. */
-void
-rib_close ()
-{
-  rib_close_ipv4 ();
-#ifdef HAVE_IPV6
-  rib_close_ipv6 ();
-#endif /* HAVE_IPV6 */
-}
-
-/* Static ip route configuration write function. */
-int
-config_write_ip (struct vty *vty)
-{
-  int write = 0;
-
-  write += static_ipv4_write (vty);
-#ifdef HAVE_IPV6
-  write += static_ipv6_write (vty);
-#endif /* HAVE_IPV6 */
-
-  return write;
-}
-
-/* IP node for static routes. */
-struct cmd_node ip_node =
-{
-  IP_NODE,
-  "",				/* This node has no interface. */
-  1
-};
-
-/* Routing information base initialize. */
-void
-rib_init ()
-{
-  install_node (&ip_node, config_write_ip);
-
-  rib_table_ipv4 = route_table_init ();
-  static_table_ipv4 = route_table_init ();
-
-  install_element (VIEW_NODE, &show_ip_route_cmd);
-  install_element (VIEW_NODE, &show_ip_route_addr_cmd);
-  install_element (VIEW_NODE, &show_ip_route_prefix_cmd);
-  install_element (VIEW_NODE, &show_ip_route_prefix_longer_cmd);
-  install_element (VIEW_NODE, &show_ip_route_protocol_cmd);
-  install_element (VIEW_NODE, &show_ip_route_supernets_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_addr_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_prefix_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_prefix_longer_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_protocol_cmd);
-  install_element (ENABLE_NODE, &show_ip_route_supernets_cmd);
-  install_element (CONFIG_NODE, &ip_route_cmd);
-  install_element (CONFIG_NODE, &ip_route_mask_cmd);
-  install_element (CONFIG_NODE, &no_ip_route_cmd);
-  install_element (CONFIG_NODE, &no_ip_route_mask_cmd);
-  install_element (CONFIG_NODE, &ip_route_pref_cmd);
-  install_element (CONFIG_NODE, &ip_route_mask_pref_cmd);
-  install_element (CONFIG_NODE, &no_ip_route_pref_cmd);
-  install_element (CONFIG_NODE, &no_ip_route_mask_pref_cmd);
-
-#ifdef HAVE_IPV6
-  rib_table_ipv6 = route_table_init ();
-  static_table_ipv6 = route_table_init ();
-
-  install_element (CONFIG_NODE, &ipv6_route_cmd);
-  install_element (CONFIG_NODE, &ipv6_route_ifname_cmd);
-  install_element (CONFIG_NODE, &no_ipv6_route_cmd);
-  install_element (CONFIG_NODE, &no_ipv6_route_ifname_cmd);
-  install_element (CONFIG_NODE, &ipv6_route_pref_cmd);
-  install_element (CONFIG_NODE, &ipv6_route_ifname_pref_cmd);
-  install_element (CONFIG_NODE, &no_ipv6_route_pref_cmd);
-  install_element (CONFIG_NODE, &no_ipv6_route_ifname_pref_cmd);
-  install_element (VIEW_NODE, &show_ipv6_route_cmd);
-  install_element (VIEW_NODE, &show_ipv6_route_protocol_cmd);
-  install_element (VIEW_NODE, &show_ipv6_route_addr_cmd);
-  install_element (VIEW_NODE, &show_ipv6_route_prefix_cmd);
-  install_element (VIEW_NODE, &show_ipv6_route_prefix_longer_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_route_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_route_protocol_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_route_addr_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_route_prefix_cmd);
-  install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd);
-#endif /* HAVE_IPV6 */
-}
diff --git a/isisd/modified/thread.c b/isisd/modified/thread.c
deleted file mode 100644
index 8364c4d..0000000
--- a/isisd/modified/thread.c
+++ /dev/null
@@ -1,713 +0,0 @@
-/* Thread management routine
- * Copyright (C) 1998, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
- *
- * 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.  
- */
-
-/* #define DEBUG */
-
-#include <zebra.h>
-
-#include "thread.h"
-#include "memory.h"
-#include "log.h"
-
-/* Struct timeval's tv_usec one second value.  */
-#define TIMER_SECOND_MICRO 1000000L
-
-struct timeval
-timeval_adjust (struct timeval a)
-{
-  while (a.tv_usec >= TIMER_SECOND_MICRO)
-    {
-      a.tv_usec -= TIMER_SECOND_MICRO;
-      a.tv_sec++;
-    }
-
-  while (a.tv_usec < 0)
-    {
-      a.tv_usec += TIMER_SECOND_MICRO;
-      a.tv_sec--;
-    }
-
-  if (a.tv_sec < 0)
-    {
-      a.tv_sec = 0;
-      a.tv_usec = 10;
-    }
-
-  if (a.tv_sec > TIMER_SECOND_MICRO)
-    a.tv_sec = TIMER_SECOND_MICRO;    
-
-  return a;
-}
-
-static struct timeval
-timeval_subtract (struct timeval a, struct timeval b)
-{
-  struct timeval ret;
-
-  ret.tv_usec = a.tv_usec - b.tv_usec;
-  ret.tv_sec = a.tv_sec - b.tv_sec;
-
-  return timeval_adjust (ret);
-}
-
-static int
-timeval_cmp (struct timeval a, struct timeval b)
-{
-  return (a.tv_sec == b.tv_sec
-	  ? a.tv_usec - b.tv_usec : a.tv_sec - b.tv_sec);
-}
-
-static unsigned long
-timeval_elapsed (struct timeval a, struct timeval b)
-{
-  return (((a.tv_sec - b.tv_sec) * TIMER_SECOND_MICRO)
-	  + (a.tv_usec - b.tv_usec));
-}
-
-/* List allocation and head/tail print out. */
-static void
-thread_list_debug (struct thread_list *list)
-{
-  printf ("count [%d] head [%p] tail [%p]\n",
-	  list->count, list->head, list->tail);
-}
-
-/* Debug print for thread_master. */
-void
-thread_master_debug (struct thread_master *m)
-{
-  printf ("-----------\n");
-  printf ("readlist  : ");
-  thread_list_debug (&m->read);
-  printf ("writelist : ");
-  thread_list_debug (&m->write);
-  printf ("timerlist : ");
-  thread_list_debug (&m->timer);
-  printf ("eventlist : ");
-  thread_list_debug (&m->event);
-  printf ("unuselist : ");
-  thread_list_debug (&m->unuse);
-  printf ("total alloc: [%ld]\n", m->alloc);
-  printf ("-----------\n");
-}
-
-/* Allocate new thread master.  */
-struct thread_master *
-thread_master_create ()
-{
-  return (struct thread_master *) XCALLOC (MTYPE_THREAD_MASTER,
-					   sizeof (struct thread_master));
-}
-
-/* Add a new thread to the list.  */
-static void
-thread_list_add (struct thread_list *list, struct thread *thread)
-{
-  thread->next = NULL;
-  thread->prev = list->tail;
-  if (list->tail)
-    list->tail->next = thread;
-  else
-    list->head = thread;
-  list->tail = thread;
-  list->count++;
-}
-
-/* Add a new thread just before the point.  */
-static void
-thread_list_add_before (struct thread_list *list, 
-			struct thread *point, 
-			struct thread *thread)
-{
-  thread->next = point;
-  thread->prev = point->prev;
-  if (point->prev)
-    point->prev->next = thread;
-  else
-    list->head = thread;
-  point->prev = thread;
-  list->count++;
-}
-
-/* Delete a thread from the list. */
-static struct thread *
-thread_list_delete (struct thread_list *list, struct thread *thread)
-{
-  if (thread->next)
-    thread->next->prev = thread->prev;
-  else
-    list->tail = thread->prev;
-  if (thread->prev)
-    thread->prev->next = thread->next;
-  else
-    list->head = thread->next;
-  thread->next = thread->prev = NULL;
-  list->count--;
-  return thread;
-}
-
-/* Move thread to unuse list. */
-static void
-thread_add_unuse (struct thread_master *m, struct thread *thread)
-{
-  assert (m != NULL);
-  assert (thread->next == NULL);
-  assert (thread->prev == NULL);
-  assert (thread->type == THREAD_UNUSED);
-  thread_list_add (&m->unuse, thread);
-}
-
-/* Free all unused thread. */
-static void
-thread_list_free (struct thread_master *m, struct thread_list *list)
-{
-  struct thread *t;
-  struct thread *next;
-
-  for (t = list->head; t; t = next)
-    {
-      next = t->next;
-      XFREE (MTYPE_THREAD, t);
-      list->count--;
-      m->alloc--;
-    }
-}
-
-/* Stop thread scheduler. */
-void
-thread_master_free (struct thread_master *m)
-{
-  thread_list_free (m, &m->read);
-  thread_list_free (m, &m->write);
-  thread_list_free (m, &m->timer);
-  thread_list_free (m, &m->event);
-  thread_list_free (m, &m->ready);
-  thread_list_free (m, &m->unuse);
-
-  XFREE (MTYPE_THREAD_MASTER, m);
-}
-
-/* Delete top of the list and return it. */
-static struct thread *
-thread_trim_head (struct thread_list *list)
-{
-  if (list->head)
-    return thread_list_delete (list, list->head);
-  return NULL;
-}
-
-/* Thread list is empty or not.  */
-int
-thread_empty (struct thread_list *list)
-{
-  return  list->head ? 0 : 1;
-}
-
-/* Return remain time in second. */
-unsigned long
-thread_timer_remain_second (struct thread *thread)
-{
-  struct timeval timer_now;
-
-  gettimeofday (&timer_now, NULL);
-
-  if (thread->u.sands.tv_sec - timer_now.tv_sec > 0)
-    return thread->u.sands.tv_sec - timer_now.tv_sec;
-  else
-    return 0;
-}
-
-/* Get new thread.  */
-static struct thread *
-thread_get (struct thread_master *m, u_char type,
-	    int (*func) (struct thread *), void *arg)
-{
-  struct thread *thread;
-
-  if (m->unuse.head)
-    thread = thread_trim_head (&m->unuse);
-  else
-    {
-      thread = XCALLOC (MTYPE_THREAD, sizeof (struct thread));
-      m->alloc++;
-    }
-  thread->type = type;
-  thread->master = m;
-  thread->func = func;
-  thread->arg = arg;
-
-  return thread;
-}
-
-/* Add new read thread. */
-struct thread *
-thread_add_read (struct thread_master *m, 
-		 int (*func) (struct thread *), void *arg, int fd)
-{
-  struct thread *thread;
-
-  assert (m != NULL);
-
-  if (FD_ISSET (fd, &m->readfd))
-    {
-      zlog (NULL, LOG_WARNING, "There is already read fd [%d]", fd);
-      return NULL;
-    }
-
-  thread = thread_get (m, THREAD_READ, func, arg);
-  FD_SET (fd, &m->readfd);
-  thread->u.fd = fd;
-  thread_list_add (&m->read, thread);
-
-  return thread;
-}
-
-/* Add new write thread. */
-struct thread *
-thread_add_write (struct thread_master *m,
-		 int (*func) (struct thread *), void *arg, int fd)
-{
-  struct thread *thread;
-
-  assert (m != NULL);
-
-  if (FD_ISSET (fd, &m->writefd))
-    {
-      zlog (NULL, LOG_WARNING, "There is already write fd [%d]", fd);
-      return NULL;
-    }
-
-  thread = thread_get (m, THREAD_WRITE, func, arg);
-  FD_SET (fd, &m->writefd);
-  thread->u.fd = fd;
-  thread_list_add (&m->write, thread);
-
-  return thread;
-}
-
-/* Add timer event thread. */
-struct thread *
-thread_add_timer (struct thread_master *m,
-		  int (*func) (struct thread *), void *arg, long timer)
-{
-  struct timeval timer_now;
-  struct thread *thread;
-#ifndef TIMER_NO_SORT
-  struct thread *tt;
-#endif /* TIMER_NO_SORT */
-
-  assert (m != NULL);
-
-  thread = thread_get (m, THREAD_TIMER, func, arg);
-
-  /* Do we need jitter here? */
-  gettimeofday (&timer_now, NULL);
-  timer_now.tv_sec += timer;
-  thread->u.sands = timer_now;
-
-  /* Sort by timeval. */
-#ifdef TIMER_NO_SORT
-  thread_list_add (&m->timer, thread);
-#else
-  for (tt = m->timer.head; tt; tt = tt->next)
-    if (timeval_cmp (thread->u.sands, tt->u.sands) <= 0)
-      break;
-
-  if (tt)
-    thread_list_add_before (&m->timer, tt, thread);
-  else
-    thread_list_add (&m->timer, thread);
-#endif /* TIMER_NO_SORT */
-
-  return thread;
-}
-
-/* Add timer event thread with "millisecond" resolution */
-struct thread *
-thread_add_timer_msec (struct thread_master *m,
-                       int (*func)(struct thread *),
-                       void *arg, long timer)
-{
-  struct timeval timer_now;
-  struct thread *thread;
-#ifndef TIMER_NO_SORT
-  struct thread *tt;
-#endif /* TIMER_NO_SORT */
-
-  assert (m != NULL);
-
-  thread = thread_get (m, THREAD_TIMER, func, arg);
-
-  timer = 1000*timer; /* milli -> micro */
-
-  gettimeofday (&timer_now, NULL);
-  timer_now.tv_sec += timer / TIMER_SECOND_MICRO;
-  timer_now.tv_usec += (timer % TIMER_SECOND_MICRO);
-  thread->u.sands = timer_now;
-
-
-  /* Sort by timeval. */
-#ifdef TIMER_NO_SORT
-  thread_list_add (&m->timer, thread);
-#else
-  for (tt = m->timer.head; tt; tt = tt->next)
-    if (timeval_cmp (thread->u.sands, tt->u.sands) <= 0)
-      break;
-
-  if (tt)
-    thread_list_add_before (&m->timer, tt, thread);
-  else
-    thread_list_add (&m->timer, thread);
-#endif /* TIMER_NO_SORT */
-
-  return thread;
-}
-
-
-/* Add simple event thread. */
-struct thread *
-thread_add_event (struct thread_master *m,
-		  int (*func) (struct thread *), void *arg, int val)
-{
-  struct thread *thread;
-
-  assert (m != NULL);
-
-  thread = thread_get (m, THREAD_EVENT, func, arg);
-  thread->u.val = val;
-  thread_list_add (&m->event, thread);
-
-  return thread;
-}
-
-/* Cancel thread from scheduler. */
-void
-thread_cancel (struct thread *thread)
-{
-  switch (thread->type)
-    {
-    case THREAD_READ:
-      assert (FD_ISSET (thread->u.fd, &thread->master->readfd));
-      FD_CLR (thread->u.fd, &thread->master->readfd);
-      thread_list_delete (&thread->master->read, thread);
-      break;
-    case THREAD_WRITE:
-      assert (FD_ISSET (thread->u.fd, &thread->master->writefd));
-      FD_CLR (thread->u.fd, &thread->master->writefd);
-      thread_list_delete (&thread->master->write, thread);
-      break;
-    case THREAD_TIMER:
-      thread_list_delete (&thread->master->timer, thread);
-      break;
-    case THREAD_EVENT:
-      thread_list_delete (&thread->master->event, thread);
-      break;
-    case THREAD_READY:
-      thread_list_delete (&thread->master->ready, thread);
-      break;
-    case THREAD_UNUSED:
-      thread_list_delete (&thread->master->unuse, thread);
-      break;
-    default:
-      break;
-    }
-  thread->type = THREAD_UNUSED;
-  thread_add_unuse (thread->master, thread);
-}
-
-/* Delete all events which has argument value arg. */
-void
-thread_cancel_event (struct thread_master *m, void *arg)
-{
-  struct thread *thread;
-
-  thread = m->event.head;
-  while (thread)
-    {
-      struct thread *t;
-
-      t = thread;
-      thread = t->next;
-
-      if (t->arg == arg)
-	{
-	  thread_list_delete (&m->event, t);
-	  t->type = THREAD_UNUSED;
-	  thread_add_unuse (m, t);
-	}
-    }
-}
-
-#ifdef TIMER_NO_SORT
-struct timeval *
-thread_timer_wait (struct thread_master *m, struct timeval *timer_val)
-{
-  struct timeval timer_now;
-  struct timeval timer_min;
-  struct timeval *timer_wait;
-
-  gettimeofday (&timer_now, NULL);
-
-  timer_wait = NULL;
-  for (thread = m->timer.head; thread; thread = thread->next)
-    {
-      if (! timer_wait)
-	timer_wait = &thread->u.sands;
-      else if (timeval_cmp (thread->u.sands, *timer_wait) < 0)
-	timer_wait = &thread->u.sands;
-    }
-
-  if (m->timer.head)
-    {
-      timer_min = *timer_wait;
-      timer_min = timeval_subtract (timer_min, timer_now);
-      if (timer_min.tv_sec < 0)
-	{
-	  timer_min.tv_sec = 0;
-	  timer_min.tv_usec = 10;
-	}
-      timer_wait = &timer_min;
-    }
-  else
-    timer_wait = NULL;
-
-  if (timer_wait)
-    {
-      *timer_val = timer_wait;
-      return timer_val;
-    }
-  return NULL;
-}
-#else /* ! TIMER_NO_SORT */
-struct timeval *
-thread_timer_wait (struct thread_master *m, struct timeval *timer_val)
-{
-  struct timeval timer_now;
-  struct timeval timer_min;
-
-  if (m->timer.head)
-    {
-      gettimeofday (&timer_now, NULL);
-      timer_min = m->timer.head->u.sands;
-      timer_min = timeval_subtract (timer_min, timer_now);
-      if (timer_min.tv_sec < 0)
-	{
-	  timer_min.tv_sec = 0;
-	  timer_min.tv_usec = 10;
-	}
-      *timer_val = timer_min;
-      return timer_val;
-    }
-  return NULL;
-}
-#endif /* TIMER_NO_SORT */
-
-struct thread *
-thread_run (struct thread_master *m, struct thread *thread,
-	    struct thread *fetch)
-{
-  *fetch = *thread;
-  thread->type = THREAD_UNUSED;
-  thread_add_unuse (m, thread);
-  return fetch;
-}
-
-int
-thread_process_fd (struct thread_master *m, struct thread_list *list,
-		   fd_set *fdset, fd_set *mfdset)
-{
-  struct thread *thread;
-  struct thread *next;
-  int ready = 0;
-
-  for (thread = list->head; thread; thread = next)
-    {
-      next = thread->next;
-
-      if (FD_ISSET (THREAD_FD (thread), fdset))
-	{
-	  assert (FD_ISSET (THREAD_FD (thread), mfdset));
-	  FD_CLR(THREAD_FD (thread), mfdset);
-	  thread_list_delete (list, thread);
-	  thread_list_add (&m->ready, thread);
-	  thread->type = THREAD_READY;
-	  ready++;
-	}
-    }
-  return ready;
-}
-
-/* Fetch next ready thread. */
-struct thread *
-thread_fetch (struct thread_master *m, struct thread *fetch)
-{
-  int num;
-  int ready;
-  struct thread *thread;
-  fd_set readfd;
-  fd_set writefd;
-  fd_set exceptfd;
-  struct timeval timer_now;
-  struct timeval timer_val;
-  struct timeval *timer_wait;
-  struct timeval timer_nowait;
-
-  timer_nowait.tv_sec = 0;
-  timer_nowait.tv_usec = 0;
-
-  while (1)
-    {
-      /* Normal event is the highest priority.  */
-      if ((thread = thread_trim_head (&m->event)) != NULL)
-	return thread_run (m, thread, fetch);
-
-      /* Execute timer.  */
-      gettimeofday (&timer_now, NULL);
-
-      for (thread = m->timer.head; thread; thread = thread->next)
-	if (timeval_cmp (timer_now, thread->u.sands) >= 0)
-	  {
-	    thread_list_delete (&m->timer, thread);
-	    return thread_run (m, thread, fetch);
-	  }
-
-      /* If there are any ready threads, process top of them.  */
-      if ((thread = thread_trim_head (&m->ready)) != NULL)
-	return thread_run (m, thread, fetch);
-
-      /* Structure copy.  */
-      readfd = m->readfd;
-      writefd = m->writefd;
-      exceptfd = m->exceptfd;
-
-      /* Calculate select wait timer. */
-      timer_wait = thread_timer_wait (m, &timer_val);
-
-      num = select (FD_SETSIZE, &readfd, &writefd, &exceptfd, timer_wait);
-
-      if (num == 0)
-	continue;
-
-      if (num < 0)
-	{
-	  if (errno == EINTR)
-	    continue;
-
-	  zlog_warn ("select() error: %s", safe_strerror (errno));
-	  return NULL;
-	}
-
-      /* Normal priority read thead. */
-      ready = thread_process_fd (m, &m->read, &readfd, &m->readfd);
-
-      /* Write thead. */
-      ready = thread_process_fd (m, &m->write, &writefd, &m->writefd);
-
-      if ((thread = thread_trim_head (&m->ready)) != NULL)
-	return thread_run (m, thread, fetch);
-    }
-}
-
-static unsigned long
-thread_consumed_time (RUSAGE_T *now, RUSAGE_T *start)
-{
-  unsigned long thread_time;
-
-#ifdef HAVE_RUSAGE
-  /* This is 'user + sys' time.  */
-  thread_time = timeval_elapsed (now->ru_utime, start->ru_utime);
-  thread_time += timeval_elapsed (now->ru_stime, start->ru_stime);
-#else
-  /* When rusage is not available, simple elapsed time is used.  */
-  thread_time = timeval_elapsed (*now, *start);
-#endif /* HAVE_RUSAGE */
-
-  return thread_time;
-}
-
-/* We should aim to yield after THREAD_YIELD_TIME_SLOT
-   milliseconds.  */
-int
-thread_should_yield (struct thread *thread)
-{
-  RUSAGE_T ru;
-
-  GETRUSAGE (&ru);
-
-  if (thread_consumed_time (&ru, &thread->ru) > THREAD_YIELD_TIME_SLOT)
-    return 1;
-  else
-    return 0;
-}
-
-/* We check thread consumed time. If the system has getrusage, we'll
-   use that to get indepth stats on the performance of the thread.  If
-   not - we'll use gettimeofday for some guestimation.  */
-void
-thread_call (struct thread *thread)
-{
-  unsigned long thread_time;
-  RUSAGE_T ru;
-
-  GETRUSAGE (&thread->ru);
-
-  (*thread->func) (thread);
-
-  GETRUSAGE (&ru);
-
-  thread_time = thread_consumed_time (&ru, &thread->ru);
-
-#ifdef THREAD_CONSUMED_TIME_CHECK
-  if (thread_time > 200000L)
-    {
-      /*
-       * We have a CPU Hog on our hands.
-       * Whinge about it now, so we're aware this is yet another task
-       * to fix.
-       */
-      zlog_err ("CPU HOG task %lx ran for %ldms",
-                /* FIXME: report the name of the function somehow */
-		(unsigned long) thread->func,
-		thread_time / 1000L);
-    }
-#endif /* THREAD_CONSUMED_TIME_CHECK */
-}
-
-/* Execute thread */
-struct thread *
-thread_execute (struct thread_master *m,
-                int (*func)(struct thread *), 
-                void *arg,
-                int val)
-{
-  struct thread dummy; 
-
-  memset (&dummy, 0, sizeof (struct thread));
-
-  dummy.type = THREAD_EVENT;
-  dummy.master = NULL;
-  dummy.func = func;
-  dummy.arg = arg;
-  dummy.u.val = val;
-  thread_call (&dummy);
-
-  return NULL;
-}
diff --git a/isisd/modified/thread.h b/isisd/modified/thread.h
deleted file mode 100644
index c3fac43..0000000
--- a/isisd/modified/thread.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Thread management routine header.
- * Copyright (C) 1998 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.  
- */
-
-#ifndef _ZEBRA_THREAD_H
-#define _ZEBRA_THREAD_H
-
-#ifdef HAVE_RUSAGE
-#define RUSAGE_T        struct rusage
-#define GETRUSAGE(X)    getrusage (RUSAGE_SELF, X);
-#else
-#define RUSAGE_T        struct timeval
-#define GETRUSAGE(X)    gettimeofday (X, NULL);
-#endif /* HAVE_RUSAGE */
-
-/* Linked list of thread. */
-struct thread_list
-{
-  struct thread *head;
-  struct thread *tail;
-  int count;
-};
-
-/* Master of the theads. */
-struct thread_master
-{
-  struct thread_list read;
-  struct thread_list write;
-  struct thread_list timer;
-  struct thread_list event;
-  struct thread_list ready;
-  struct thread_list unuse;
-  fd_set readfd;
-  fd_set writefd;
-  fd_set exceptfd;
-  unsigned long alloc;
-};
-
-/* Thread itself. */
-struct thread
-{
-  unsigned char type;		/* thread type */
-  struct thread *next;		/* next pointer of the thread */
-  struct thread *prev;		/* previous pointer of the thread */
-  struct thread_master *master;	/* pointer to the struct thread_master. */
-  int (*func) (struct thread *); /* event function */
-  void *arg;			/* event argument */
-  union {
-    int val;			/* second argument of the event. */
-    int fd;			/* file descriptor in case of read/write. */
-    struct timeval sands;	/* rest of time sands value. */
-  } u;
-  RUSAGE_T ru;			/* Indepth usage info.  */
-};
-
-/* Thread types. */
-#define THREAD_READ           0
-#define THREAD_WRITE          1
-#define THREAD_TIMER          2
-#define THREAD_EVENT          3
-#define THREAD_READY          4
-#define THREAD_UNUSED         5
-
-/* Thread yield time.  */
-#define THREAD_YIELD_TIME_SLOT     100 * 1000L /* 100ms */
-
-/* Macros. */
-#define THREAD_ARG(X) ((X)->arg)
-#define THREAD_FD(X)  ((X)->u.fd)
-#define THREAD_VAL(X) ((X)->u.val)
-
-#define THREAD_READ_ON(master,thread,func,arg,sock) \
-  do { \
-    if (! thread) \
-      thread = thread_add_read (master, func, arg, sock); \
-  } while (0)
-
-#define THREAD_WRITE_ON(master,thread,func,arg,sock) \
-  do { \
-    if (! thread) \
-      thread = thread_add_write (master, func, arg, sock); \
-  } while (0)
-
-#define THREAD_TIMER_ON(master,thread,func,arg,time) \
-  do { \
-    if (! thread) \
-      thread = thread_add_timer (master, func, arg, time); \
-  } while (0)
-
-#define THREAD_OFF(thread) \
-  do { \
-    if (thread) \
-      { \
-        thread_cancel (thread); \
-        thread = NULL; \
-      } \
-  } while (0)
-
-#define THREAD_READ_OFF(thread)  THREAD_OFF(thread)
-#define THREAD_WRITE_OFF(thread)  THREAD_OFF(thread)
-#define THREAD_TIMER_OFF(thread)  THREAD_OFF(thread)
-
-/* Prototypes. */
-struct thread_master *thread_master_create ();
-struct thread *thread_add_read (struct thread_master *, 
-				int (*)(struct thread *), void *, int);
-struct thread *thread_add_write (struct thread_master *,
-				 int (*)(struct thread *), void *, int);
-struct thread *thread_add_timer (struct thread_master *,
-				 int (*)(struct thread *), void *, long);
-struct thread *thread_add_timer_msec (struct thread_master *,
-                                       int (*)(struct thread *), void *, long);
-struct thread *thread_add_event (struct thread_master *,
-				 int (*)(struct thread *), void *, int );
-void thread_cancel (struct thread *);
-void thread_cancel_event (struct thread_master *, void *);
-
-struct thread *thread_fetch (struct thread_master *, struct thread *);
-struct thread *thread_execute (struct thread_master *,
-			       int (*)(struct thread *), void *, int);
-void thread_call (struct thread *);
-unsigned long thread_timer_remain_second (struct thread *);
-
-#endif /* _ZEBRA_THREAD_H */
diff --git a/isisd/modified/vty.c b/isisd/modified/vty.c
deleted file mode 100644
index 2a1f466..0000000
--- a/isisd/modified/vty.c
+++ /dev/null
@@ -1,2786 +0,0 @@
-/*
- * Virtual terminal [aka TeletYpe] interface routine.
- * Copyright (C) 1997, 98 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 "linklist.h"
-#include "buffer.h"
-#include "version.h"
-#include "command.h"
-#include "sockunion.h"
-#include "thread.h"
-#include "memory.h"
-#include "str.h"
-#include "log.h"
-#include "prefix.h"
-#include "filter.h"
-
-/* Vty events */
-enum event 
-{
-  VTY_SERV,
-  VTY_READ,
-  VTY_WRITE,
-  VTY_TIMEOUT_RESET,
-#ifdef VTYSH
-  VTYSH_SERV,
-  VTYSH_READ
-#endif /* VTYSH */
-};
-
-static void vty_event (enum event, int, struct vty *);
-
-/* Extern host structure from command.c */
-extern struct host host;
-
-/* Vector which store each vty structure. */
-static vector vtyvec;
-
-/* Vty timeout value. */
-static unsigned long vty_timeout_val = VTY_TIMEOUT_DEFAULT;
-
-/* Vty access-class command */
-static char *vty_accesslist_name = NULL;
-
-/* Vty access-calss for IPv6. */
-static char *vty_ipv6_accesslist_name = NULL;
-
-/* VTY server thread. */
-vector Vvty_serv_thread;
-
-/* Current directory. */
-char *vty_cwd = NULL;
-
-/* Configure lock. */
-static int vty_config;
-
-/* Login password check. */
-static int no_password_check = 0;
-
-/* Integrated configuration file path */
-char integrate_default[] = SYSCONFDIR INTEGRATE_DEFAULT_CONFIG;
-
-
-/* VTY standard output function. */
-int
-vty_out (struct vty *vty, const char *format, ...)
-{
-  va_list args;
-  int len = 0;
-  int size = 1024;
-  char buf[1024];
-  char *p = NULL;
-  
-  va_start (args, format);
-
-  if (vty_shell (vty))
-    vprintf (format, args);
-  else
-    {
-      /* Try to write to initial buffer.  */
-      len = vsnprintf (buf, sizeof buf, format, args);
-
-      /* Initial buffer is not enough.  */
-      if (len < 0 || len >= size)
-	{
-	  while (1)
-	    {
-	      if (len > -1)
-		size = len + 1;
-	      else
-		size = size * 2;
-
-	      p = XREALLOC (MTYPE_VTY_OUT_BUF, p, size);
-	      if (! p)
-		return -1;
-
-	      len = vsnprintf (p, size, format, args);
-
-	      if (len > -1 && len < size)
-		break;
-	    }
-	}
-
-      /* When initial buffer is enough to store all output.  */
-      if (! p)
-	p = buf;
-
-      /* Pointer p must point out buffer. */
-      if (vty_shell_serv (vty))
-	write (vty->fd, (u_char *) p, len);
-      else
-	buffer_write (vty->obuf, (u_char *) p, len);
-
-      /* If p is not different with buf, it is allocated buffer.  */
-      if (p != buf)
-	XFREE (MTYPE_VTY_OUT_BUF, p);
-    }
-
-  va_end (args);
-
-  return len;
-}
-
-int
-vty_log_out (struct vty *vty, const char *proto_str, const char *format,
-	     va_list va)
-{
-  int len;
-  char buf[1024];
-
-  snprintf (buf, sizeof buf, "%s: ", proto_str);
-  write (vty->fd, buf, strlen (proto_str) + 2);
-
-  len = vsnprintf (buf, sizeof buf, format, va);
-  if (len < 0)
-    return -1;
-  write (vty->fd, (u_char *)buf, len);
-
-  snprintf (buf, sizeof buf, "\r\n");
-  write (vty->fd, buf, 2);
-
-  return len;
-}
-
-/* Output current time to the vty. */
-void
-vty_time_print (struct vty *vty, int cr)
-{
-  time_t clock;
-  struct tm *tm;
-#define TIME_BUF 25
-  char buf [TIME_BUF];
-  int ret;
-  
-  time (&clock);
-  tm = localtime (&clock);
-
-  ret = strftime (buf, TIME_BUF, "%Y/%m/%d %H:%M:%S", tm);
-  if (ret == 0)
-    {
-      zlog (NULL, LOG_INFO, "strftime error");
-      return;
-    }
-  if (cr)
-    vty_out (vty, "%s\n", buf);
-  else
-    vty_out (vty, "%s ", buf);
-
-  return;
-}
-
-/* Say hello to vty interface. */
-void
-vty_hello (struct vty *vty)
-{
-  if (host.motd)
-    vty_out (vty, host.motd);
-}
-
-/* Put out prompt and wait input from user. */
-static void
-vty_prompt (struct vty *vty)
-{
-  struct utsname names;
-  const char*hostname;
-
-  if (vty->type == VTY_TERM)
-    {
-      hostname = host.name;
-      if (!hostname)
-	{
-	  uname (&names);
-	  hostname = names.nodename;
-	}
-      vty_out (vty, cmd_prompt (vty->node), hostname);
-    }
-}
-
-/* Send WILL TELOPT_ECHO to remote server. */
-void
-vty_will_echo (struct vty *vty)
-{
-  char cmd[] = { IAC, WILL, TELOPT_ECHO, '\0' };
-  vty_out (vty, "%s", cmd);
-}
-
-/* Make suppress Go-Ahead telnet option. */
-static void
-vty_will_suppress_go_ahead (struct vty *vty)
-{
-  char cmd[] = { IAC, WILL, TELOPT_SGA, '\0' };
-  vty_out (vty, "%s", cmd);
-}
-
-/* Make don't use linemode over telnet. */
-static void
-vty_dont_linemode (struct vty *vty)
-{
-  char cmd[] = { IAC, DONT, TELOPT_LINEMODE, '\0' };
-  vty_out (vty, "%s", cmd);
-}
-
-/* Use window size. */
-static void
-vty_do_window_size (struct vty *vty)
-{
-  char cmd[] = { IAC, DO, TELOPT_NAWS, '\0' };
-  vty_out (vty, "%s", cmd);
-}
-
-#if 0 /* Currently not used. */
-/* Make don't use lflow vty interface. */
-static void
-vty_dont_lflow_ahead (struct vty *vty)
-{
-  char cmd[] = { IAC, DONT, TELOPT_LFLOW, '\0' };
-  vty_out (vty, "%s", cmd);
-}
-#endif /* 0 */
-
-/* Allocate new vty struct. */
-struct vty *
-vty_new ()
-{
-  struct vty *new = XCALLOC (MTYPE_VTY, sizeof (struct vty));
-
-  new->obuf = (struct buffer *) buffer_new (100);
-  new->buf = XCALLOC (MTYPE_VTY, VTY_BUFSIZ);
-  new->max = VTY_BUFSIZ;
-  new->sb_buffer = NULL;
-
-  return new;
-}
-
-/* Authentication of vty */
-static void
-vty_auth (struct vty *vty, char *buf)
-{
-  char *passwd = NULL;
-  enum node_type next_node = 0;
-  int fail;
-  char *crypt (const char *, const char *);
-
-  switch (vty->node)
-    {
-    case AUTH_NODE:
-      if (host.encrypt)
-	passwd = host.password_encrypt;
-      else
-	passwd = host.password;
-      if (host.advanced)
-	next_node = host.enable ? VIEW_NODE : ENABLE_NODE;
-      else
-	next_node = VIEW_NODE;
-      break;
-    case AUTH_ENABLE_NODE:
-      if (host.encrypt)
-	passwd = host.enable_encrypt;
-      else
-	passwd = host.enable;
-      next_node = ENABLE_NODE;
-      break;
-    }
-
-  if (passwd)
-    {
-      if (host.encrypt)
-	fail = strcmp (crypt(buf, passwd), passwd);
-      else
-	fail = strcmp (buf, passwd);
-    }
-  else
-    fail = 1;
-
-  if (! fail)
-    {
-      vty->fail = 0;
-      vty->node = next_node;	/* Success ! */
-    }
-  else
-    {
-      vty->fail++;
-      if (vty->fail >= 3)
-	{
-	  if (vty->node == AUTH_NODE)
-	    {
-	      vty_out (vty, "%% Bad passwords, too many failures!%s", VTY_NEWLINE);
-	      vty->status = VTY_CLOSE;
-	    }
-	  else			
-	    {
-	      /* AUTH_ENABLE_NODE */
-	      vty->fail = 0;
-	      vty_out (vty, "%% Bad enable passwords, too many failures!%s", VTY_NEWLINE);
-	      vty->node = VIEW_NODE;
-	    }
-	}
-    }
-}
-
-/* Command execution over the vty interface. */
-int
-vty_command (struct vty *vty, char *buf)
-{
-  int ret;
-  vector vline;
-
-  /* Split readline string up into the vector */
-  vline = cmd_make_strvec (buf);
-
-  if (vline == NULL)
-    return CMD_SUCCESS;
-
-  ret = cmd_execute_command (vline, vty, NULL);
-
-  if (ret != CMD_SUCCESS)
-    switch (ret)
-      {
-      case CMD_WARNING:
-	if (vty->type == VTY_FILE)
-	  vty_out (vty, "Warning...%s", VTY_NEWLINE);
-	break;
-      case CMD_ERR_AMBIGUOUS:
-	vty_out (vty, "%% Ambiguous command.%s", VTY_NEWLINE);
-	break;
-      case CMD_ERR_NO_MATCH:
-	vty_out (vty, "%% Unknown command.%s", VTY_NEWLINE);
-	break;
-      case CMD_ERR_INCOMPLETE:
-	vty_out (vty, "%% Command incomplete.%s", VTY_NEWLINE);
-	break;
-      }
-  cmd_free_strvec (vline);
-
-  return ret;
-}
-
-char telnet_backward_char = 0x08;
-char telnet_space_char = ' ';
-
-/* Basic function to write buffer to vty. */
-static void
-vty_write (struct vty *vty, char *buf, size_t nbytes)
-{
-  if ((vty->node == AUTH_NODE) || (vty->node == AUTH_ENABLE_NODE))
-    return;
-
-  /* Should we do buffering here ?  And make vty_flush (vty) ? */
-  buffer_write (vty->obuf, (u_char *)buf, nbytes);
-}
-
-/* Ensure length of input buffer.  Is buffer is short, double it. */
-static void
-vty_ensure (struct vty *vty, int length)
-{
-  if (vty->max <= length)
-    {
-      vty->max *= 2;
-      vty->buf = XREALLOC (MTYPE_VTY, vty->buf, vty->max);
-    }
-}
-
-/* Basic function to insert character into vty. */
-static void
-vty_self_insert (struct vty *vty, char c)
-{
-  int i;
-  int length;
-
-  vty_ensure (vty, vty->length + 1);
-  length = vty->length - vty->cp;
-  memmove (&vty->buf[vty->cp + 1], &vty->buf[vty->cp], length);
-  vty->buf[vty->cp] = c;
-
-  vty_write (vty, &vty->buf[vty->cp], length + 1);
-  for (i = 0; i < length; i++)
-    vty_write (vty, &telnet_backward_char, 1);
-
-  vty->cp++;
-  vty->length++;
-}
-
-/* Self insert character 'c' in overwrite mode. */
-static void
-vty_self_insert_overwrite (struct vty *vty, char c)
-{
-  vty_ensure (vty, vty->length + 1);
-  vty->buf[vty->cp++] = c;
-
-  if (vty->cp > vty->length)
-    vty->length++;
-
-  if ((vty->node == AUTH_NODE) || (vty->node == AUTH_ENABLE_NODE))
-    return;
-
-  vty_write (vty, &c, 1);
-}
-
-/* Insert a word into vty interface with overwrite mode. */
-static void
-vty_insert_word_overwrite (struct vty *vty, char *str)
-{
-  int len = strlen (str);
-  vty_write (vty, str, len);
-  strcpy (&vty->buf[vty->cp], str);
-  vty->cp += len;
-  vty->length = vty->cp;
-}
-
-/* Forward character. */
-static void
-vty_forward_char (struct vty *vty)
-{
-  if (vty->cp < vty->length)
-    {
-      vty_write (vty, &vty->buf[vty->cp], 1);
-      vty->cp++;
-    }
-}
-
-/* Backward character. */
-static void
-vty_backward_char (struct vty *vty)
-{
-  if (vty->cp > 0)
-    {
-      vty->cp--;
-      vty_write (vty, &telnet_backward_char, 1);
-    }
-}
-
-/* Move to the beginning of the line. */
-static void
-vty_beginning_of_line (struct vty *vty)
-{
-  while (vty->cp)
-    vty_backward_char (vty);
-}
-
-/* Move to the end of the line. */
-static void
-vty_end_of_line (struct vty *vty)
-{
-  while (vty->cp < vty->length)
-    vty_forward_char (vty);
-}
-
-static void vty_kill_line_from_beginning (struct vty *);
-static void vty_redraw_line (struct vty *);
-
-/* Print command line history.  This function is called from
-   vty_next_line and vty_previous_line. */
-static void
-vty_history_print (struct vty *vty)
-{
-  int length;
-
-  vty_kill_line_from_beginning (vty);
-
-  /* Get previous line from history buffer */
-  length = strlen (vty->hist[vty->hp]);
-  memcpy (vty->buf, vty->hist[vty->hp], length);
-  vty->cp = vty->length = length;
-
-  /* Redraw current line */
-  vty_redraw_line (vty);
-}
-
-/* Show next command line history. */
-void
-vty_next_line (struct vty *vty)
-{
-  int try_index;
-
-  if (vty->hp == vty->hindex)
-    return;
-
-  /* Try is there history exist or not. */
-  try_index = vty->hp;
-  if (try_index == (VTY_MAXHIST - 1))
-    try_index = 0;
-  else
-    try_index++;
-
-  /* If there is not history return. */
-  if (vty->hist[try_index] == NULL)
-    return;
-  else
-    vty->hp = try_index;
-
-  vty_history_print (vty);
-}
-
-/* Show previous command line history. */
-void
-vty_previous_line (struct vty *vty)
-{
-  int try_index;
-
-  try_index = vty->hp;
-  if (try_index == 0)
-    try_index = VTY_MAXHIST - 1;
-  else
-    try_index--;
-
-  if (vty->hist[try_index] == NULL)
-    return;
-  else
-    vty->hp = try_index;
-
-  vty_history_print (vty);
-}
-
-/* This function redraw all of the command line character. */
-static void
-vty_redraw_line (struct vty *vty)
-{
-  vty_write (vty, vty->buf, vty->length);
-  vty->cp = vty->length;
-}
-
-/* Forward word. */
-static void
-vty_forward_word (struct vty *vty)
-{
-  while (vty->cp != vty->length && vty->buf[vty->cp] != ' ')
-    vty_forward_char (vty);
-  
-  while (vty->cp != vty->length && vty->buf[vty->cp] == ' ')
-    vty_forward_char (vty);
-}
-
-/* Backward word without skipping training space. */
-static void
-vty_backward_pure_word (struct vty *vty)
-{
-  while (vty->cp > 0 && vty->buf[vty->cp - 1] != ' ')
-    vty_backward_char (vty);
-}
-
-/* Backward word. */
-static void
-vty_backward_word (struct vty *vty)
-{
-  while (vty->cp > 0 && vty->buf[vty->cp - 1] == ' ')
-    vty_backward_char (vty);
-
-  while (vty->cp > 0 && vty->buf[vty->cp - 1] != ' ')
-    vty_backward_char (vty);
-}
-
-/* When '^D' is typed at the beginning of the line we move to the down
-   level. */
-static void
-vty_down_level (struct vty *vty)
-{
-  vty_out (vty, "%s", VTY_NEWLINE);
-  config_exit (NULL, vty, 0, NULL);
-  vty_prompt (vty);
-  vty->cp = 0;
-}
-
-/* When '^Z' is received from vty, move down to the enable mode. */
-void
-vty_end_config (struct vty *vty)
-{
-  vty_out (vty, "%s", VTY_NEWLINE);
-
-  switch (vty->node)
-    {
-    case VIEW_NODE:
-    case ENABLE_NODE:
-      /* Nothing to do. */
-      break;
-    case CONFIG_NODE:
-    case INTERFACE_NODE:
-    case ZEBRA_NODE:
-    case RIP_NODE:
-    case RIPNG_NODE:
-    case BGP_NODE:
-    case BGP_VPNV4_NODE:
-    case BGP_IPV4_NODE:
-    case BGP_IPV4M_NODE:
-    case BGP_IPV6_NODE:
-    case RMAP_NODE:
-    case OSPF_NODE:
-    case OSPF6_NODE:
-    case ISIS_NODE:
-    case KEYCHAIN_NODE:
-    case KEYCHAIN_KEY_NODE:
-    case MASC_NODE:
-    case VTY_NODE:
-      vty_config_unlock (vty);
-      vty->node = ENABLE_NODE;
-      break;
-    default:
-      /* Unknown node, we have to ignore it. */
-      break;
-    }
-
-  vty_prompt (vty);
-  vty->cp = 0;
-}
-
-/* Delete a charcter at the current point. */
-static void
-vty_delete_char (struct vty *vty)
-{
-  int i;
-  int size;
-
-  if (vty->node == AUTH_NODE || vty->node == AUTH_ENABLE_NODE)
-    return;
-
-  if (vty->length == 0)
-    {
-      vty_down_level (vty);
-      return;
-    }
-
-  if (vty->cp == vty->length)
-    return;			/* completion need here? */
-
-  size = vty->length - vty->cp;
-
-  vty->length--;
-  memmove (&vty->buf[vty->cp], &vty->buf[vty->cp + 1], size - 1);
-  vty->buf[vty->length] = '\0';
-
-  vty_write (vty, &vty->buf[vty->cp], size - 1);
-  vty_write (vty, &telnet_space_char, 1);
-
-  for (i = 0; i < size; i++)
-    vty_write (vty, &telnet_backward_char, 1);
-}
-
-/* Delete a character before the point. */
-static void
-vty_delete_backward_char (struct vty *vty)
-{
-  if (vty->cp == 0)
-    return;
-
-  vty_backward_char (vty);
-  vty_delete_char (vty);
-}
-
-/* Kill rest of line from current point. */
-static void
-vty_kill_line (struct vty *vty)
-{
-  int i;
-  int size;
-
-  size = vty->length - vty->cp;
-  
-  if (size == 0)
-    return;
-
-  for (i = 0; i < size; i++)
-    vty_write (vty, &telnet_space_char, 1);
-  for (i = 0; i < size; i++)
-    vty_write (vty, &telnet_backward_char, 1);
-
-  memset (&vty->buf[vty->cp], 0, size);
-  vty->length = vty->cp;
-}
-
-/* Kill line from the beginning. */
-static void
-vty_kill_line_from_beginning (struct vty *vty)
-{
-  vty_beginning_of_line (vty);
-  vty_kill_line (vty);
-}
-
-/* Delete a word before the point. */
-static void
-vty_forward_kill_word (struct vty *vty)
-{
-  while (vty->cp != vty->length && vty->buf[vty->cp] == ' ')
-    vty_delete_char (vty);
-  while (vty->cp != vty->length && vty->buf[vty->cp] != ' ')
-    vty_delete_char (vty);
-}
-
-/* Delete a word before the point. */
-static void
-vty_backward_kill_word (struct vty *vty)
-{
-  while (vty->cp > 0 && vty->buf[vty->cp - 1] == ' ')
-    vty_delete_backward_char (vty);
-  while (vty->cp > 0 && vty->buf[vty->cp - 1] != ' ')
-    vty_delete_backward_char (vty);
-}
-
-/* Transpose chars before or at the point. */
-static void
-vty_transpose_chars (struct vty *vty)
-{
-  char c1, c2;
-
-  /* If length is short or point is near by the beginning of line then
-     return. */
-  if (vty->length < 2 || vty->cp < 1)
-    return;
-
-  /* In case of point is located at the end of the line. */
-  if (vty->cp == vty->length)
-    {
-      c1 = vty->buf[vty->cp - 1];
-      c2 = vty->buf[vty->cp - 2];
-
-      vty_backward_char (vty);
-      vty_backward_char (vty);
-      vty_self_insert_overwrite (vty, c1);
-      vty_self_insert_overwrite (vty, c2);
-    }
-  else
-    {
-      c1 = vty->buf[vty->cp];
-      c2 = vty->buf[vty->cp - 1];
-
-      vty_backward_char (vty);
-      vty_self_insert_overwrite (vty, c1);
-      vty_self_insert_overwrite (vty, c2);
-    }
-}
-
-/* Do completion at vty interface. */
-static void
-vty_complete_command (struct vty *vty)
-{
-  int i;
-  int ret;
-  char **matched = NULL;
-  vector vline;
-
-  if (vty->node == AUTH_NODE || vty->node == AUTH_ENABLE_NODE)
-    return;
-
-  vline = cmd_make_strvec (vty->buf);
-  if (vline == NULL)
-    return;
-
-  /* In case of 'help \t'. */
-  if (isspace ((int) vty->buf[vty->length - 1]))
-    vector_set (vline, '\0');
-
-  matched = cmd_complete_command (vline, vty, &ret);
-  
-  cmd_free_strvec (vline);
-
-  vty_out (vty, "%s", VTY_NEWLINE);
-  switch (ret)
-    {
-    case CMD_ERR_AMBIGUOUS:
-      vty_out (vty, "%% Ambiguous command.%s", VTY_NEWLINE);
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      break;
-    case CMD_ERR_NO_MATCH:
-      /* vty_out (vty, "%% There is no matched command.%s", VTY_NEWLINE); */
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      break;
-    case CMD_COMPLETE_FULL_MATCH:
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      vty_backward_pure_word (vty);
-      vty_insert_word_overwrite (vty, matched[0]);
-      vty_self_insert (vty, ' ');
-      XFREE (MTYPE_TMP, matched[0]);
-      break;
-    case CMD_COMPLETE_MATCH:
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      vty_backward_pure_word (vty);
-      vty_insert_word_overwrite (vty, matched[0]);
-      XFREE (MTYPE_TMP, matched[0]);
-      vector_only_index_free (matched);
-      return;
-      break;
-    case CMD_COMPLETE_LIST_MATCH:
-      for (i = 0; matched[i] != NULL; i++)
-	{
-	  if (i != 0 && ((i % 6) == 0))
-	    vty_out (vty, "%s", VTY_NEWLINE);
-	  vty_out (vty, "%-10s ", matched[i]);
-	  XFREE (MTYPE_TMP, matched[i]);
-	}
-      vty_out (vty, "%s", VTY_NEWLINE);
-
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      break;
-    case CMD_ERR_NOTHING_TODO:
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      break;
-    default:
-      break;
-    }
-  if (matched)
-    vector_only_index_free (matched);
-}
-
-void
-vty_describe_fold (struct vty *vty, int cmd_width,
-                 int desc_width, struct desc *desc)
-{
-  char *buf, *cmd, *p;
-  int pos;
-
-  cmd = desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd;
-
-  if (desc_width <= 0)
-    {
-      vty_out (vty, "  %-*s  %s%s", cmd_width, cmd, desc->str, VTY_NEWLINE);
-      return;
-    }
-
-  buf = XCALLOC (MTYPE_TMP, strlen (desc->str) + 1);
-
-  for (p = desc->str; strlen (p) > desc_width; p += pos + 1)
-    {
-      for (pos = desc_width; pos > 0; pos--)
-      if (*(p + pos) == ' ')
-        break;
-
-      if (pos == 0)
-      break;
-
-      strncpy (buf, p, pos);
-      buf[pos] = '\0';
-      vty_out (vty, "  %-*s  %s%s", cmd_width, cmd, buf, VTY_NEWLINE);
-
-      cmd = "";
-    }
-
-  vty_out (vty, "  %-*s  %s%s", cmd_width, cmd, p, VTY_NEWLINE);
-
-  XFREE (MTYPE_TMP, buf);
-}
-
-/* Describe matched command function. */
-static void
-vty_describe_command (struct vty *vty)
-{
-  int ret;
-  vector vline;
-  vector describe;
-  int i, width, desc_width;
-  struct desc *desc, *desc_cr = NULL;
-
-  vline = cmd_make_strvec (vty->buf);
-
-  /* In case of '> ?'. */
-  if (vline == NULL)
-    {
-      vline = vector_init (1);
-      vector_set (vline, '\0');
-    }
-  else 
-    if (isspace ((int) vty->buf[vty->length - 1]))
-      vector_set (vline, '\0');
-
-  describe = cmd_describe_command (vline, vty, &ret);
-
-  vty_out (vty, "%s", VTY_NEWLINE);
-
-  /* Ambiguous error. */
-  switch (ret)
-    {
-    case CMD_ERR_AMBIGUOUS:
-      cmd_free_strvec (vline);
-      vty_out (vty, "%% Ambiguous command.%s", VTY_NEWLINE);
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      return;
-      break;
-    case CMD_ERR_NO_MATCH:
-      cmd_free_strvec (vline);
-      vty_out (vty, "%% There is no matched command.%s", VTY_NEWLINE);
-      vty_prompt (vty);
-      vty_redraw_line (vty);
-      return;
-      break;
-    }  
-
-  /* Get width of command string. */
-  width = 0;
-  for (i = 0; i < vector_max (describe); i++)
-    if ((desc = vector_slot (describe, i)) != NULL)
-      {
-	int len;
-
-	if (desc->cmd[0] == '\0')
-	  continue;
-
-	len = strlen (desc->cmd);
-	if (desc->cmd[0] == '.')
-	  len--;
-
-	if (width < len)
-	  width = len;
-      }
-
-  /* Get width of description string. */
-  desc_width = vty->width - (width + 6);
-
-  /* Print out description. */
-  for (i = 0; i < vector_max (describe); i++)
-    if ((desc = vector_slot (describe, i)) != NULL)
-      {
-	if (desc->cmd[0] == '\0')
-	  continue;
-	
-	if (strcmp (desc->cmd, "<cr>") == 0)
-	  {
-	    desc_cr = desc;
-	    continue;
-	  }
-
-	if (!desc->str)
-	  vty_out (vty, "  %-s%s",
-		   desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd,
-		   VTY_NEWLINE);
-	else if (desc_width >= strlen (desc->str))
-	  vty_out (vty, "  %-*s  %s%s", width,
-		   desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd,
-		   desc->str, VTY_NEWLINE);
-	else
-	  vty_describe_fold (vty, width, desc_width, desc);
-
-#if 0
-	vty_out (vty, "  %-*s %s%s", width
-		 desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd,
-		 desc->str ? desc->str : "", VTY_NEWLINE);
-#endif /* 0 */
-      }
-
-  if ((desc = desc_cr))
-    {
-      if (!desc->str)
-	vty_out (vty, "  %-s%s",
-		 desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd,
-		 VTY_NEWLINE);
-      else if (desc_width >= strlen (desc->str))
-	vty_out (vty, "  %-*s  %s%s", width,
-		 desc->cmd[0] == '.' ? desc->cmd + 1 : desc->cmd,
-		 desc->str, VTY_NEWLINE);
-      else
-	vty_describe_fold (vty, width, desc_width, desc);
-    }
-
-  cmd_free_strvec (vline);
-  vector_free (describe);
-
-  vty_prompt (vty);
-  vty_redraw_line (vty);
-}
-
-void
-vty_clear_buf (struct vty *vty)
-{
-  memset (vty->buf, 0, vty->max);
-}
-
-/* ^C stop current input and do not add command line to the history. */
-static void
-vty_stop_input (struct vty *vty)
-{
-  vty->cp = vty->length = 0;
-  vty_clear_buf (vty);
-  vty_out (vty, "%s", VTY_NEWLINE);
-
-  switch (vty->node)
-    {
-    case VIEW_NODE:
-    case ENABLE_NODE:
-      /* Nothing to do. */
-      break;
-    case CONFIG_NODE:
-    case INTERFACE_NODE:
-    case ZEBRA_NODE:
-    case RIP_NODE:
-    case RIPNG_NODE:
-    case BGP_NODE:
-    case RMAP_NODE:
-    case OSPF_NODE:
-    case OSPF6_NODE:
-    case ISIS_NODE:
-    case KEYCHAIN_NODE:
-    case KEYCHAIN_KEY_NODE:
-    case MASC_NODE:
-    case VTY_NODE:
-      vty_config_unlock (vty);
-      vty->node = ENABLE_NODE;
-      break;
-    default:
-      /* Unknown node, we have to ignore it. */
-      break;
-    }
-  vty_prompt (vty);
-
-  /* Set history pointer to the latest one. */
-  vty->hp = vty->hindex;
-}
-
-/* Add current command line to the history buffer. */
-static void
-vty_hist_add (struct vty *vty)
-{
-  int index;
-
-  if (vty->length == 0)
-    return;
-
-  index = vty->hindex ? vty->hindex - 1 : VTY_MAXHIST - 1;
-
-  /* Ignore the same string as previous one. */
-  if (vty->hist[index])
-    if (strcmp (vty->buf, vty->hist[index]) == 0)
-      {
-      vty->hp = vty->hindex;
-      return;
-      }
-
-  /* Insert history entry. */
-  if (vty->hist[vty->hindex])
-    XFREE (MTYPE_VTY_HIST, vty->hist[vty->hindex]);
-  vty->hist[vty->hindex] = XSTRDUP (MTYPE_VTY_HIST, vty->buf);
-
-  /* History index rotation. */
-  vty->hindex++;
-  if (vty->hindex == VTY_MAXHIST)
-    vty->hindex = 0;
-
-  vty->hp = vty->hindex;
-}
-
-/* #define TELNET_OPTION_DEBUG */
-
-/* Get telnet window size. */
-static int
-vty_telnet_option (struct vty *vty, unsigned char *buf, int nbytes)
-{
-#ifdef TELNET_OPTION_DEBUG
-  int i;
-
-  for (i = 0; i < nbytes; i++)
-    {
-      switch (buf[i])
-	{
-	case IAC:
-	  vty_out (vty, "IAC ");
-	  break;
-	case WILL:
-	  vty_out (vty, "WILL ");
-	  break;
-	case WONT:
-	  vty_out (vty, "WONT ");
-	  break;
-	case DO:
-	  vty_out (vty, "DO ");
-	  break;
-	case DONT:
-	  vty_out (vty, "DONT ");
-	  break;
-	case SB:
-	  vty_out (vty, "SB ");
-	  break;
-	case SE:
-	  vty_out (vty, "SE ");
-	  break;
-	case TELOPT_ECHO:
-	  vty_out (vty, "TELOPT_ECHO %s", VTY_NEWLINE);
-	  break;
-	case TELOPT_SGA:
-	  vty_out (vty, "TELOPT_SGA %s", VTY_NEWLINE);
-	  break;
-	case TELOPT_NAWS:
-	  vty_out (vty, "TELOPT_NAWS %s", VTY_NEWLINE);
-	  break;
-	default:
-	  vty_out (vty, "%x ", buf[i]);
-	  break;
-	}
-    }
-  vty_out (vty, "%s", VTY_NEWLINE);
-
-#endif /* TELNET_OPTION_DEBUG */
-
-  switch (buf[0])
-    {
-    case SB:
-      buffer_reset(vty->sb_buffer);
-      vty->iac_sb_in_progress = 1;
-      return 0;
-      break;
-    case SE: 
-      {
-	char *buffer = (char *)vty->sb_buffer->head->data;
-	int length = vty->sb_buffer->length;
-
-	if (buffer == NULL)
-	  return 0;
-
-	if (!vty->iac_sb_in_progress)
-	  return 0;
-
-	if (buffer[0] == '\0')
-	  {
-	    vty->iac_sb_in_progress = 0;
-	    return 0;
-	  }
-	switch (buffer[0])
-	  {
-	  case TELOPT_NAWS:
-	    if (length < 5)
-	      break;
-	    vty->width = buffer[2];
-	    vty->height = vty->lines >= 0 ? vty->lines : buffer[4];
-	    break;
-	  }
-	vty->iac_sb_in_progress = 0;
-	return 0;
-	break;
-      }
-    default:
-      break;
-    }
-  return 1;
-}
-
-/* Execute current command line. */
-static int
-vty_execute (struct vty *vty)
-{
-  int ret;
-
-  ret = CMD_SUCCESS;
-
-  switch (vty->node)
-    {
-    case AUTH_NODE:
-    case AUTH_ENABLE_NODE:
-      vty_auth (vty, vty->buf);
-      break;
-    default:
-      ret = vty_command (vty, vty->buf);
-      if (vty->type == VTY_TERM)
-	vty_hist_add (vty);
-      break;
-    }
-
-  /* Clear command line buffer. */
-  vty->cp = vty->length = 0;
-  vty_clear_buf (vty);
-
-  if (vty->status != VTY_CLOSE 
-      && vty->status != VTY_START
-      && vty->status != VTY_CONTINUE)
-    vty_prompt (vty);
-
-  return ret;
-}
-
-#define CONTROL(X)  ((X) - '@')
-#define VTY_NORMAL     0
-#define VTY_PRE_ESCAPE 1
-#define VTY_ESCAPE     2
-
-/* Escape character command map. */
-static void
-vty_escape_map (unsigned char c, struct vty *vty)
-{
-  switch (c)
-    {
-    case ('A'):
-      vty_previous_line (vty);
-      break;
-    case ('B'):
-      vty_next_line (vty);
-      break;
-    case ('C'):
-      vty_forward_char (vty);
-      break;
-    case ('D'):
-      vty_backward_char (vty);
-      break;
-    default:
-      break;
-    }
-
-  /* Go back to normal mode. */
-  vty->escape = VTY_NORMAL;
-}
-
-/* Quit print out to the buffer. */
-static void
-vty_buffer_reset (struct vty *vty)
-{
-  buffer_reset (vty->obuf);
-  vty_prompt (vty);
-  vty_redraw_line (vty);
-}
-
-/* Read data via vty socket. */
-static int
-vty_read (struct thread *thread)
-{
-  int i;
-  int ret;
-  int nbytes;
-  unsigned char buf[VTY_READ_BUFSIZ];
-
-  int vty_sock = THREAD_FD (thread);
-  struct vty *vty = THREAD_ARG (thread);
-  vty->t_read = NULL;
-
-  /* Read raw data from socket */
-  nbytes = read (vty->fd, buf, VTY_READ_BUFSIZ);
-  if (nbytes <= 0)
-    vty->status = VTY_CLOSE;
-
-  for (i = 0; i < nbytes; i++) 
-    {
-      if (buf[i] == IAC)
-	{
-	  if (!vty->iac)
-	    {
-	      vty->iac = 1;
-	      continue;
-	    }
-	  else
-	    {
-	      vty->iac = 0;
-	    }
-	}
-      
-      if (vty->iac_sb_in_progress && !vty->iac)
-	{
-	    buffer_putc(vty->sb_buffer, buf[i]);
-	    continue;
-	}
-
-      if (vty->iac)
-	{
-	  /* In case of telnet command */
-	  ret = vty_telnet_option (vty, buf + i, nbytes - i);
-	  vty->iac = 0;
-	  i += ret;
-	  continue;
-	}
-
-      if (vty->status == VTY_MORE)
-	{
-	  switch (buf[i])
-	    {
-	    case CONTROL('C'):
-	    case 'q':
-	    case 'Q':
-	      if (vty->output_func)
-		(*vty->output_func) (vty, 1);
-	      vty_buffer_reset (vty);
-	      break;
-	    default:
-	      if (vty->output_func)
-		(*vty->output_func) (vty, 0);
-	      break;
-	    }
-	  continue;
-	}
-
-      /* Escape character. */
-      if (vty->escape == VTY_ESCAPE)
-	{
-	  vty_escape_map (buf[i], vty);
-	  continue;
-	}
-
-      /* Pre-escape status. */
-      if (vty->escape == VTY_PRE_ESCAPE)
-	{
-	  switch (buf[i])
-	    {
-	    case '[':
-	      vty->escape = VTY_ESCAPE;
-	      break;
-	    case 'b':
-	      vty_backward_word (vty);
-	      vty->escape = VTY_NORMAL;
-	      break;
-	    case 'f':
-	      vty_forward_word (vty);
-	      vty->escape = VTY_NORMAL;
-	      break;
-	    case 'd':
-	      vty_forward_kill_word (vty);
-	      vty->escape = VTY_NORMAL;
-	      break;
-	    case CONTROL('H'):
-	    case 0x7f:
-	      vty_backward_kill_word (vty);
-	      vty->escape = VTY_NORMAL;
-	      break;
-	    default:
-	      vty->escape = VTY_NORMAL;
-	      break;
-	    }
-	  continue;
-	}
-
-      switch (buf[i])
-	{
-	case CONTROL('A'):
-	  vty_beginning_of_line (vty);
-	  break;
-	case CONTROL('B'):
-	  vty_backward_char (vty);
-	  break;
-	case CONTROL('C'):
-	  vty_stop_input (vty);
-	  break;
-	case CONTROL('D'):
-	  vty_delete_char (vty);
-	  break;
-	case CONTROL('E'):
-	  vty_end_of_line (vty);
-	  break;
-	case CONTROL('F'):
-	  vty_forward_char (vty);
-	  break;
-	case CONTROL('H'):
-	case 0x7f:
-	  vty_delete_backward_char (vty);
-	  break;
-	case CONTROL('K'):
-	  vty_kill_line (vty);
-	  break;
-	case CONTROL('N'):
-	  vty_next_line (vty);
-	  break;
-	case CONTROL('P'):
-	  vty_previous_line (vty);
-	  break;
-	case CONTROL('T'):
-	  vty_transpose_chars (vty);
-	  break;
-	case CONTROL('U'):
-	  vty_kill_line_from_beginning (vty);
-	  break;
-	case CONTROL('W'):
-	  vty_backward_kill_word (vty);
-	  break;
-	case CONTROL('Z'):
-	  vty_end_config (vty);
-	  break;
-	case '\n':
-	case '\r':
-	  vty_out (vty, "%s", VTY_NEWLINE);
-	  vty_execute (vty);
-	  break;
-	case '\t':
-	  vty_complete_command (vty);
-	  break;
-	case '?':
-	  if (vty->node == AUTH_NODE || vty->node == AUTH_ENABLE_NODE)
-	    vty_self_insert (vty, buf[i]);
-	  else
-	    vty_describe_command (vty);
-	  break;
-	case '\033':
-	  if (i + 1 < nbytes && buf[i + 1] == '[')
-	    {
-	      vty->escape = VTY_ESCAPE;
-	      i++;
-	    }
-	  else
-	    vty->escape = VTY_PRE_ESCAPE;
-	  break;
-	default:
-	  if (buf[i] > 31 && buf[i] < 127)
-	    vty_self_insert (vty, buf[i]);
-	  break;
-	}
-    }
-
-  /* Check status. */
-  if (vty->status == VTY_CLOSE)
-    vty_close (vty);
-  else
-    {
-      vty_event (VTY_WRITE, vty_sock, vty);
-      vty_event (VTY_READ, vty_sock, vty);
-    }
-  return 0;
-}
-
-/* Flush buffer to the vty. */
-static int
-vty_flush (struct thread *thread)
-{
-  int erase;
-  int dont_more;
-  int vty_sock = THREAD_FD (thread);
-  struct vty *vty = THREAD_ARG (thread);
-  vty->t_write = NULL;
-
-  /* Tempolary disable read thread. */
-  if (vty->lines == 0)
-    if (vty->t_read)
-      {
-	thread_cancel (vty->t_read);
-	vty->t_read = NULL;
-      }
-
-  /* Function execution continue. */
-  if (vty->status == VTY_START || vty->status == VTY_CONTINUE)
-    {
-      if (vty->status == VTY_CONTINUE)
-	erase = 1;
-      else
-	erase = 0;
-
-      if (vty->output_func == NULL)
-	dont_more = 1;
-      else
-	dont_more = 0;
-
-      if (vty->lines == 0)
-	{
-	  erase = 0;
-	  dont_more = 1;
-	}
-
-      buffer_flush_vty_all (vty->obuf, vty->fd, erase, dont_more);
-
-      if (vty->status == VTY_CLOSE)
-	{
-	  vty_close (vty);
-	  return 0;
-	}
-
-      if (vty->output_func == NULL)
-	{
-	  vty->status = VTY_NORMAL;
-	  vty_prompt (vty);
-	  vty_event (VTY_WRITE, vty_sock, vty);
-	}
-      else
-	vty->status = VTY_MORE;
-
-      if (vty->lines == 0)
-	{
-	  if (vty->output_func == NULL)
-	    vty_event (VTY_READ, vty_sock, vty);
-	  else
-	    {
-	      if (vty->output_func)
-		(*vty->output_func) (vty, 0);
-	      vty_event (VTY_WRITE, vty_sock, vty);
-	    }
-	}
-    }
-  else
-    {
-      if (vty->status == VTY_MORE)
-	erase = 1;
-      else
-	erase = 0;
-
-      if (vty->lines == 0)
-	buffer_flush_window (vty->obuf, vty->fd, vty->width, 25, 0, 1);
-      else
-	buffer_flush_window (vty->obuf, vty->fd, vty->width,
-			     vty->lines >= 0 ? vty->lines : vty->height,
-			     erase, 0);
-  
-      if (buffer_empty (vty->obuf))
-	{
-	  if (vty->status == VTY_CLOSE)
-	    vty_close (vty);
-	  else
-	    {
-	      vty->status = VTY_NORMAL;
-	  
-	      if (vty->lines == 0)
-		vty_event (VTY_READ, vty_sock, vty);
-	    }
-	}
-      else
-	{
-	  vty->status = VTY_MORE;
-
-	  if (vty->lines == 0)
-	    vty_event (VTY_WRITE, vty_sock, vty);
-	}
-    }
-
-  return 0;
-}
-
-/* Create new vty structure. */
-struct vty *
-vty_create (int vty_sock, union sockunion *su)
-{
-  struct vty *vty;
-
-  /* Allocate new vty structure and set up default values. */
-  vty = vty_new ();
-  vty->fd = vty_sock;
-  vty->type = VTY_TERM;
-  vty->address = sockunion_su2str (su);
-  if (no_password_check)
-    {
-      if (host.advanced)
-	vty->node = ENABLE_NODE;
-      else
-	vty->node = VIEW_NODE;
-    }
-  else
-    vty->node = AUTH_NODE;
-  vty->fail = 0;
-  vty->cp = 0;
-  vty_clear_buf (vty);
-  vty->length = 0;
-  memset (vty->hist, 0, sizeof (vty->hist));
-  vty->hp = 0;
-  vty->hindex = 0;
-  vector_set_index (vtyvec, vty_sock, vty);
-  vty->status = VTY_NORMAL;
-  vty->v_timeout = vty_timeout_val;
-  if (host.lines >= 0)
-    vty->lines = host.lines;
-  else
-    vty->lines = -1;
-  vty->iac = 0;
-  vty->iac_sb_in_progress = 0;
-  vty->sb_buffer = buffer_new (1024);
-
-  if (! no_password_check)
-    {
-      /* Vty is not available if password isn't set. */
-      if (host.password == NULL && host.password_encrypt == NULL)
-	{
-	  vty_out (vty, "Vty password is not set.%s", VTY_NEWLINE);
-	  vty->status = VTY_CLOSE;
-	  vty_close (vty);
-	  return NULL;
-	}
-    }
-
-  /* Say hello to the world. */
-  vty_hello (vty);
-  if (! no_password_check)
-    vty_out (vty, "%sUser Access Verification%s%s", VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-
-  /* Setting up terminal. */
-  vty_will_echo (vty);
-  vty_will_suppress_go_ahead (vty);
-
-  vty_dont_linemode (vty);
-  vty_do_window_size (vty);
-  /* vty_dont_lflow_ahead (vty); */
-
-  vty_prompt (vty);
-
-  /* Add read/write thread. */
-  vty_event (VTY_WRITE, vty_sock, vty);
-  vty_event (VTY_READ, vty_sock, vty);
-
-  return vty;
-}
-
-/* Accept connection from the network. */
-static int
-vty_accept (struct thread *thread)
-{
-  int vty_sock;
-  struct vty *vty;
-  union sockunion su;
-  int ret;
-  unsigned int on;
-  int accept_sock;
-  struct prefix *p = NULL;
-  struct access_list *acl = NULL;
-
-  accept_sock = THREAD_FD (thread);
-
-  /* We continue hearing vty socket. */
-  vty_event (VTY_SERV, accept_sock, NULL);
-
-  memset (&su, 0, sizeof (union sockunion));
-
-  /* We can handle IPv4 or IPv6 socket. */
-  vty_sock = sockunion_accept (accept_sock, &su);
-  if (vty_sock < 0)
-    {
-      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
-      return -1;
-    }
-
-  p = sockunion2hostprefix (&su);
-
-  /* VTY's accesslist apply. */
-  if (p->family == AF_INET && vty_accesslist_name)
-    {
-      if ((acl = access_list_lookup (AFI_IP, vty_accesslist_name)) &&
-	  (access_list_apply (acl, p) == FILTER_DENY))
-	{
-	  char *buf;
-	  zlog (NULL, LOG_INFO, "Vty connection refused from %s",
-		(buf = sockunion_su2str (&su)));
-	  free (buf);
-	  close (vty_sock);
-	  
-	  /* continue accepting connections */
-	  vty_event (VTY_SERV, accept_sock, NULL);
-	  
-	  prefix_free (p);
-
-	  return 0;
-	}
-    }
-
-#ifdef HAVE_IPV6
-  /* VTY's ipv6 accesslist apply. */
-  if (p->family == AF_INET6 && vty_ipv6_accesslist_name)
-    {
-      if ((acl = access_list_lookup (AFI_IP6, vty_ipv6_accesslist_name)) &&
-	  (access_list_apply (acl, p) == FILTER_DENY))
-	{
-	  char *buf;
-	  zlog (NULL, LOG_INFO, "Vty connection refused from %s",
-		(buf = sockunion_su2str (&su)));
-	  free (buf);
-	  close (vty_sock);
-	  
-	  /* continue accepting connections */
-	  vty_event (VTY_SERV, accept_sock, NULL);
-	  
-	  prefix_free (p);
-
-	  return 0;
-	}
-    }
-#endif /* HAVE_IPV6 */
-  
-  prefix_free (p);
-
-  on = 1;
-  ret = setsockopt (vty_sock, IPPROTO_TCP, TCP_NODELAY, 
-		    (char *) &on, sizeof (on));
-  if (ret < 0)
-    zlog (NULL, LOG_INFO, "can't set sockopt to vty_sock : %s", 
-	  safe_strerror (errno));
-
-  vty = vty_create (vty_sock, &su);
-
-  return 0;
-}
-
-#if defined(HAVE_IPV6) && !defined(NRL)
-void
-vty_serv_sock_addrinfo (const char *hostname, unsigned short port)
-{
-  int ret;
-  struct addrinfo req;
-  struct addrinfo *ainfo;
-  struct addrinfo *ainfo_save;
-  int sock;
-  char port_str[BUFSIZ];
-
-  memset (&req, 0, sizeof (struct addrinfo));
-  req.ai_flags = AI_PASSIVE;
-  req.ai_family = AF_UNSPEC;
-  req.ai_socktype = SOCK_STREAM;
-  sprintf (port_str, "%d", port);
-  port_str[sizeof (port_str) - 1] = '\0';
-
-  ret = getaddrinfo (hostname, port_str, &req, &ainfo);
-
-  if (ret != 0)
-    {
-      fprintf (stderr, "getaddrinfo failed: %s\n", gai_strerror (ret));
-      exit (1);
-    }
-
-  ainfo_save = ainfo;
-
-  do
-    {
-      if (ainfo->ai_family != AF_INET
-#ifdef HAVE_IPV6
-	  && ainfo->ai_family != AF_INET6
-#endif /* HAVE_IPV6 */
-	  )
-	continue;
-
-      sock = socket (ainfo->ai_family, ainfo->ai_socktype, ainfo->ai_protocol);
-      if (sock < 0)
-	continue;
-
-      sockopt_reuseaddr (sock);
-      sockopt_reuseport (sock);
-
-      ret = bind (sock, ainfo->ai_addr, ainfo->ai_addrlen);
-      if (ret < 0)
-	{
-	  close (sock);	/* Avoid sd leak. */
-	continue;
-	}
-
-      ret = listen (sock, 3);
-      if (ret < 0) 
-	{
-	  close (sock);	/* Avoid sd leak. */
-	continue;
-	}
-
-      vty_event (VTY_SERV, sock, NULL);
-    }
-  while ((ainfo = ainfo->ai_next) != NULL);
-
-  freeaddrinfo (ainfo_save);
-}
-#endif /* HAVE_IPV6 && ! NRL */
-
-/* Make vty server socket. */
-void
-vty_serv_sock_family (unsigned short port, int family)
-{
-  int ret;
-  union sockunion su;
-  int accept_sock;
-
-  memset (&su, 0, sizeof (union sockunion));
-  su.sa.sa_family = family;
-
-  /* Make new socket. */
-  accept_sock = sockunion_stream_socket (&su);
-  if (accept_sock < 0)
-    return;
-
-  /* This is server, so reuse address. */
-  sockopt_reuseaddr (accept_sock);
-  sockopt_reuseport (accept_sock);
-
-  /* Bind socket to universal address and given port. */
-  ret = sockunion_bind (accept_sock, &su, port, NULL);
-  if (ret < 0)
-    {
-      close (accept_sock);	/* Avoid sd leak. */
-      return;
-    }
-
-  /* Listen socket under queue 3. */
-  ret = listen (accept_sock, 3);
-  if (ret < 0) 
-    {
-      zlog (NULL, LOG_WARNING, "can't listen socket");
-      close (accept_sock);	/* Avoid sd leak. */
-      return;
-    }
-
-  /* Add vty server event. */
-  vty_event (VTY_SERV, accept_sock, NULL);
-}
-
-#ifdef VTYSH
-/* For sockaddr_un. */
-#include <sys/un.h>
-
-/* VTY shell UNIX domain socket. */
-void
-vty_serv_un (char *path)
-{
-  int ret;
-  int sock, len;
-  struct sockaddr_un serv;
-  mode_t old_mask;
-
-  /* First of all, unlink existing socket */
-  unlink (path);
-
-  /* Set umask */
-  old_mask = umask (0077);
-
-  /* Make UNIX domain socket. */
-  sock = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (sock < 0)
-    {
-      perror ("sock");
-      return;
-    }
-
-  /* Make server socket. */
-  memset (&serv, 0, sizeof (struct sockaddr_un));
-  serv.sun_family = AF_UNIX;
-  strncpy (serv.sun_path, path, strlen (path));
-#ifdef HAVE_SUN_LEN
-  len = serv.sun_len = SUN_LEN(&serv);
-#else
-  len = sizeof (serv.sun_family) + strlen (serv.sun_path);
-#endif /* HAVE_SUN_LEN */
-
-  ret = bind (sock, (struct sockaddr *) &serv, len);
-  if (ret < 0)
-    {
-      perror ("bind");
-      close (sock);	/* Avoid sd leak. */
-      return;
-    }
-
-  ret = listen (sock, 5);
-  if (ret < 0)
-    {
-      perror ("listen");
-      close (sock);	/* Avoid sd leak. */
-      return;
-    }
-
-  umask (old_mask);
-
-  vty_event (VTYSH_SERV, sock, NULL);
-}
-
-/* #define VTYSH_DEBUG 1 */
-
-static int
-vtysh_accept (struct thread *thread)
-{
-  int accept_sock;
-  int sock;
-  int client_len;
-  struct sockaddr_un client;
-  struct vty *vty;
-  
-  accept_sock = THREAD_FD (thread);
-
-  vty_event (VTYSH_SERV, accept_sock, NULL);
-
-  memset (&client, 0, sizeof (struct sockaddr_un));
-  client_len = sizeof (struct sockaddr_un);
-
-  sock = accept (accept_sock, (struct sockaddr *) &client, &client_len);
-
-  if (sock < 0)
-    {
-      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
-      return -1;
-    }
-
-#ifdef VTYSH_DEBUG
-  printf ("VTY shell accept\n");
-#endif /* VTYSH_DEBUG */
-
-  vty = vty_new ();
-  vty->fd = sock;
-  vty->type = VTY_SHELL_SERV;
-  vty->node = VIEW_NODE;
-
-  vty_event (VTYSH_READ, sock, vty);
-
-  return 0;
-}
-
-static int
-vtysh_read (struct thread *thread)
-{
-  int ret;
-  int sock;
-  int nbytes;
-  struct vty *vty;
-  unsigned char buf[VTY_READ_BUFSIZ];
-  u_char header[4] = {0, 0, 0, 0};
-
-  sock = THREAD_FD (thread);
-  vty = THREAD_ARG (thread);
-  vty->t_read = NULL;
-
-  nbytes = read (sock, buf, VTY_READ_BUFSIZ);
-  if (nbytes <= 0)
-    {
-      vty_close (vty);
-#ifdef VTYSH_DEBUG
-      printf ("close vtysh\n");
-#endif /* VTYSH_DEBUG */
-      return 0;
-    }
-
-#ifdef VTYSH_DEBUG
-  printf ("line: %s\n", buf);
-#endif /* VTYSH_DEBUG */
-
-  vty_ensure (vty, nbytes);
-  memcpy (vty->buf, buf, nbytes);
-  
-  /* Pass this line to parser. */
-  ret = vty_execute (vty);
-
-  vty_clear_buf (vty);
-
-  /* Return result. */
-#ifdef VTYSH_DEBUG
-  printf ("result: %d\n", ret);
-  printf ("vtysh node: %d\n", vty->node);
-#endif /* VTYSH_DEBUG */
-
-  header[3] = ret;
-  write (vty->fd, header, 4);
-
-  vty_event (VTYSH_READ, sock, vty);
-
-  return 0;
-}
-#endif /* VTYSH */
-
-/* Determine address family to bind. */
-void
-vty_serv_sock (const char *hostname, unsigned short port, char *path)
-{
-  /* If port is set to 0, do not listen on TCP/IP at all! */
-  if (port)
-    {
-
-#ifdef HAVE_IPV6
-#ifdef NRL
-      vty_serv_sock_family (port, AF_INET);
-      vty_serv_sock_family (port, AF_INET6);
-#else /* ! NRL */
-      vty_serv_sock_addrinfo (hostname, port);
-#endif /* NRL*/
-#else /* ! HAVE_IPV6 */
-      vty_serv_sock_family (port, AF_INET);
-#endif /* HAVE_IPV6 */
-    }
-
-#ifdef VTYSH
-  vty_serv_un (path);
-#endif /* VTYSH */
-}
-
-/* Close vty interface. */
-void
-vty_close (struct vty *vty)
-{
-  int i;
-
-  /* Cancel threads.*/
-  if (vty->t_read)
-    thread_cancel (vty->t_read);
-  if (vty->t_write)
-    thread_cancel (vty->t_write);
-  if (vty->t_timeout)
-    thread_cancel (vty->t_timeout);
-  if (vty->t_output)
-    thread_cancel (vty->t_output);
-
-  /* Flush buffer. */
-  if (! buffer_empty (vty->obuf))
-    buffer_flush_all (vty->obuf, vty->fd);
-
-  /* Free input buffer. */
-  buffer_free (vty->obuf);
-
-  /* Free SB buffer. */
-  if (vty->sb_buffer)
-    buffer_free (vty->sb_buffer);
-
-  /* Free command history. */
-  for (i = 0; i < VTY_MAXHIST; i++)
-    if (vty->hist[i])
-      XFREE (MTYPE_VTY_HIST, vty->hist[i]);
-
-  /* Unset vector. */
-  vector_unset (vtyvec, vty->fd);
-
-  /* Close socket. */
-  if (vty->fd > 0)
-    close (vty->fd);
-
-  if (vty->address)
-    XFREE (0, vty->address);
-  if (vty->buf)
-    XFREE (MTYPE_VTY, vty->buf);
-
-  /* Check configure. */
-  vty_config_unlock (vty);
-
-  /* OK free vty. */
-  XFREE (MTYPE_VTY, vty);
-}
-
-/* When time out occur output message then close connection. */
-static int
-vty_timeout (struct thread *thread)
-{
-  struct vty *vty;
-
-  vty = THREAD_ARG (thread);
-  vty->t_timeout = NULL;
-  vty->v_timeout = 0;
-
-  /* Clear buffer*/
-  buffer_reset (vty->obuf);
-  vty_out (vty, "%sVty connection is timed out.%s", VTY_NEWLINE, VTY_NEWLINE);
-
-  /* Close connection. */
-  vty->status = VTY_CLOSE;
-  vty_close (vty);
-
-  return 0;
-}
-
-/* Read up configuration file from file_name. */
-static void
-vty_read_file (FILE *confp)
-{
-  int ret;
-  struct vty *vty;
-
-  vty = vty_new ();
-  vty->fd = 0;			/* stdout */
-  vty->type = VTY_TERM;
-  vty->node = CONFIG_NODE;
-  
-  /* Execute configuration file */
-  ret = config_from_file (vty, confp);
-
-  if (ret != CMD_SUCCESS) 
-    {
-      switch (ret)
-	{
-	case CMD_ERR_AMBIGUOUS:
-	  fprintf (stderr, "Ambiguous command.\n");
-	  break;
-	case CMD_ERR_NO_MATCH:
-	  fprintf (stderr, "There is no such command.\n");
-	  break;
-	}
-      fprintf (stderr, "Error occured during reading below line.\n%s\n", 
-	       vty->buf);
-      vty_close (vty);
-      exit (1);
-    }
-
-  vty_close (vty);
-}
-
-FILE *
-vty_use_backup_config (char *fullpath)
-{
-  char *fullpath_sav, *fullpath_tmp;
-  FILE *ret = NULL;
-  struct stat buf;
-  int tmp, sav;
-  int c;
-  char buffer[512];
-  
-  fullpath_sav = malloc (strlen (fullpath) + strlen (CONF_BACKUP_EXT) + 1);
-  strcpy (fullpath_sav, fullpath);
-  strcat (fullpath_sav, CONF_BACKUP_EXT);
-  if (stat (fullpath_sav, &buf) == -1)
-    {
-      free (fullpath_sav);
-      return NULL;
-    }
-
-  fullpath_tmp = malloc (strlen (fullpath) + 8);
-  sprintf (fullpath_tmp, "%s.XXXXXX", fullpath);
-  
-  /* Open file to configuration write. */
-  tmp = mkstemp (fullpath_tmp);
-  if (tmp < 0)
-    {
-      free (fullpath_sav);
-      free (fullpath_tmp);
-      return NULL;
-    }
-
-  sav = open (fullpath_sav, O_RDONLY);
-  if (sav < 0)
-    {
-      free (fullpath_sav);
-      free (fullpath_tmp);
-      unlink (fullpath_tmp);
-      return NULL;
-    }
-  
-  while((c = read (sav, buffer, 512)) > 0)
-    write (tmp, buffer, c);
-  
-  close (sav);
-  close (tmp);
-  
-  if (link (fullpath_tmp, fullpath) == 0)
-    ret = fopen (fullpath, "r");
-
-  unlink (fullpath_tmp);
-  
-  free (fullpath_sav);
-  free (fullpath_tmp);
-  return fopen (fullpath, "r");
-}
-
-/* Read up configuration file from file_name. */
-void
-vty_read_config (char *config_file,
-		 char *config_current_dir,
-		 char *config_default_dir)
-{
-  char *cwd;
-  FILE *confp = NULL;
-  char *fullpath;
-
-  /* If -f flag specified. */
-  if (config_file != NULL)
-    {
-      if (! IS_DIRECTORY_SEP (config_file[0]))
-	{
-	  cwd = getcwd (NULL, MAXPATHLEN);
-	  fullpath = XMALLOC (MTYPE_TMP, 
-			      strlen (cwd) + strlen (config_file) + 2);
-	  sprintf (fullpath, "%s/%s", cwd, config_file);
-	}
-      else
-	fullpath = config_file;
-
-      confp = fopen (fullpath, "r");
-
-      if (confp == NULL)
-	{
-	  confp = vty_use_backup_config (fullpath);
-	  if (confp)
-	    fprintf (stderr, "WARNING: using backup configuration file!\n");
-	  else
-	    {
-	      fprintf (stderr, "can't open configuration file [%s]\n", 
-		       config_file);
-	      exit(1);
-	    }
-	}
-    }
-  else
-    {
-      /* Relative path configuration file open. */
-      if (config_current_dir)
-	{
-	  confp = fopen (config_current_dir, "r");
-	  if (confp == NULL)
-	    {
-	      confp = vty_use_backup_config (config_current_dir);
-	      if (confp)
-		fprintf (stderr, "WARNING: using backup configuration file!\n");
-	    }
-	}
-
-      /* If there is no relative path exists, open system default file. */
-      if (confp == NULL)
-	{
-#ifdef VTYSH
-	  int ret;
-	  struct stat conf_stat;
-
-	  /* !!!!PLEASE LEAVE!!!!
-	     This is NEEDED for use with vtysh -b, or else you can get
-	     a real configuration food fight with a lot garbage in the
-	     merged configuration file it creates coming from the per
-	     daemon configuration files.  This also allows the daemons
-	     to start if there default configuration file is not
-	     present or ignore them, as needed when using vtysh -b to
-	     configure the daemons at boot - MAG */
-
-	  /* Stat for vtysh Zebra.conf, if found startup and wait for
-	     boot configuration */
-
-	  if ( strstr(config_default_dir, "vtysh") == NULL)
-	    {
-	      ret = stat (integrate_default, &conf_stat);
-	      if (ret >= 0)
-		{
-		  return;
-		}
-	    }
-#endif /* VTYSH */
-
-	  confp = fopen (config_default_dir, "r");
-	  if (confp == NULL)
-	    {
-	      confp = vty_use_backup_config (config_default_dir);
-	      if (confp)
-		{
-		  fprintf (stderr, "WARNING: using backup configuration file!\n");
-		  fullpath = config_default_dir;
-		}
-	      else
-		{
-		  fprintf (stderr, "can't open configuration file [%s]\n",
-			   config_default_dir);
-		  exit (1);
-		}
-	    }      
-	  else
-	    fullpath = config_default_dir;
-	}
-      else
-	{
-	  /* Rleative path configuration file. */
-	  cwd = getcwd (NULL, MAXPATHLEN);
-	  fullpath = XMALLOC (MTYPE_TMP, 
-			      strlen (cwd) + strlen (config_current_dir) + 2);
-	  sprintf (fullpath, "%s/%s", cwd, config_current_dir);
-	}  
-    }  
-  vty_read_file (confp);
-
-  fclose (confp);
-
-  host_config_set (fullpath);
-}
-
-/* Small utility function which output log to the VTY. */
-void
-vty_log (const char *proto_str, const char *format, va_list va)
-{
-  int i;
-  struct vty *vty;
-
-  for (i = 0; i < vector_max (vtyvec); i++)
-    if ((vty = vector_slot (vtyvec, i)) != NULL)
-      if (vty->monitor)
-	vty_log_out (vty, proto_str, format, va);
-}
-
-int
-vty_config_lock (struct vty *vty)
-{
-  if (vty_config == 0)
-    {
-      vty->config = 1;
-      vty_config = 1;
-    }
-  return vty->config;
-}
-
-int
-vty_config_unlock (struct vty *vty)
-{
-  if (vty_config == 1 && vty->config == 1)
-    {
-      vty->config = 0;
-      vty_config = 0;
-    }
-  return vty->config;
-}
-
-/* Master of the threads. */
-extern struct thread_master *master;
-/* struct thread_master *master; */
-
-static void
-vty_event (enum event event, int sock, struct vty *vty)
-{
-  struct thread *vty_serv_thread;
-
-  switch (event)
-    {
-    case VTY_SERV:
-      vty_serv_thread = thread_add_read (master, vty_accept, vty, sock);
-      vector_set_index (Vvty_serv_thread, sock, vty_serv_thread);
-      break;
-#ifdef VTYSH
-    case VTYSH_SERV:
-      thread_add_read (master, vtysh_accept, vty, sock);
-      break;
-    case VTYSH_READ:
-      thread_add_read (master, vtysh_read, vty, sock);
-      break;
-#endif /* VTYSH */
-    case VTY_READ:
-      vty->t_read = thread_add_read (master, vty_read, vty, sock);
-
-      /* Time out treatment. */
-      if (vty->v_timeout)
-	{
-	  if (vty->t_timeout)
-	    thread_cancel (vty->t_timeout);
-	  vty->t_timeout = 
-	    thread_add_timer (master, vty_timeout, vty, vty->v_timeout);
-	}
-      break;
-    case VTY_WRITE:
-      if (! vty->t_write)
-	vty->t_write = thread_add_write (master, vty_flush, vty, sock);
-      break;
-    case VTY_TIMEOUT_RESET:
-      if (vty->t_timeout)
-	{
-	  thread_cancel (vty->t_timeout);
-	  vty->t_timeout = NULL;
-	}
-      if (vty->v_timeout)
-	{
-	  vty->t_timeout = 
-	    thread_add_timer (master, vty_timeout, vty, vty->v_timeout);
-	}
-      break;
-    }
-}
-
-DEFUN (config_who,
-       config_who_cmd,
-       "who",
-       "Display who is on vty\n")
-{
-  int i;
-  struct vty *v;
-
-  for (i = 0; i < vector_max (vtyvec); i++)
-    if ((v = vector_slot (vtyvec, i)) != NULL)
-      vty_out (vty, "%svty[%d] connected from %s.%s",
-	       v->config ? "*" : " ",
-	       i, v->address, VTY_NEWLINE);
-  return CMD_SUCCESS;
-}
-
-/* Move to vty configuration mode. */
-DEFUN (line_vty,
-       line_vty_cmd,
-       "line vty",
-       "Configure a terminal line\n"
-       "Virtual terminal\n")
-{
-  vty->node = VTY_NODE;
-  return CMD_SUCCESS;
-}
-
-/* Set time out value. */
-int
-exec_timeout (struct vty *vty, char *min_str, char *sec_str)
-{
-  unsigned long timeout = 0;
-
-  /* min_str and sec_str are already checked by parser.  So it must be
-     all digit string. */
-  if (min_str)
-    {
-      timeout = strtol (min_str, NULL, 10);
-      timeout *= 60;
-    }
-  if (sec_str)
-    timeout += strtol (sec_str, NULL, 10);
-
-  vty_timeout_val = timeout;
-  vty->v_timeout = timeout;
-  vty_event (VTY_TIMEOUT_RESET, 0, vty);
-
-
-  return CMD_SUCCESS;
-}
-
-DEFUN (exec_timeout_min,
-       exec_timeout_min_cmd,
-       "exec-timeout <0-35791>",
-       "Set timeout value\n"
-       "Timeout value in minutes\n")
-{
-  return exec_timeout (vty, argv[0], NULL);
-}
-
-DEFUN (exec_timeout_sec,
-       exec_timeout_sec_cmd,
-       "exec-timeout <0-35791> <0-2147483>",
-       "Set the EXEC timeout\n"
-       "Timeout in minutes\n"
-       "Timeout in seconds\n")
-{
-  return exec_timeout (vty, argv[0], argv[1]);
-}
-
-DEFUN (no_exec_timeout,
-       no_exec_timeout_cmd,
-       "no exec-timeout",
-       NO_STR
-       "Set the EXEC timeout\n")
-{
-  return exec_timeout (vty, NULL, NULL);
-}
-
-/* Set vty access class. */
-DEFUN (vty_access_class,
-       vty_access_class_cmd,
-       "access-class WORD",
-       "Filter connections based on an IP access list\n"
-       "IP access list\n")
-{
-  if (vty_accesslist_name)
-    XFREE(MTYPE_VTY, vty_accesslist_name);
-
-  vty_accesslist_name = XSTRDUP(MTYPE_VTY, argv[0]);
-
-  return CMD_SUCCESS;
-}
-
-/* Clear vty access class. */
-DEFUN (no_vty_access_class,
-       no_vty_access_class_cmd,
-       "no access-class [WORD]",
-       NO_STR
-       "Filter connections based on an IP access list\n"
-       "IP access list\n")
-{
-  if (! vty_accesslist_name || (argc && strcmp(vty_accesslist_name, argv[0])))
-    {
-      vty_out (vty, "Access-class is not currently applied to vty%s",
-	       VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  XFREE(MTYPE_VTY, vty_accesslist_name);
-
-  vty_accesslist_name = NULL;
-
-  return CMD_SUCCESS;
-}
-
-#ifdef HAVE_IPV6
-/* Set vty access class. */
-DEFUN (vty_ipv6_access_class,
-       vty_ipv6_access_class_cmd,
-       "ipv6 access-class WORD",
-       IPV6_STR
-       "Filter connections based on an IP access list\n"
-       "IPv6 access list\n")
-{
-  if (vty_ipv6_accesslist_name)
-    XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
-
-  vty_ipv6_accesslist_name = XSTRDUP(MTYPE_VTY, argv[0]);
-
-  return CMD_SUCCESS;
-}
-
-/* Clear vty access class. */
-DEFUN (no_vty_ipv6_access_class,
-       no_vty_ipv6_access_class_cmd,
-       "no ipv6 access-class [WORD]",
-       NO_STR
-       IPV6_STR
-       "Filter connections based on an IP access list\n"
-       "IPv6 access list\n")
-{
-  if (! vty_ipv6_accesslist_name ||
-      (argc && strcmp(vty_ipv6_accesslist_name, argv[0])))
-    {
-      vty_out (vty, "IPv6 access-class is not currently applied to vty%s",
-	       VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
-
-  vty_ipv6_accesslist_name = NULL;
-
-  return CMD_SUCCESS;
-}
-#endif /* HAVE_IPV6 */
-
-/* vty login. */
-DEFUN (vty_login,
-       vty_login_cmd,
-       "login",
-       "Enable password checking\n")
-{
-  no_password_check = 0;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_vty_login,
-       no_vty_login_cmd,
-       "no login",
-       NO_STR
-       "Enable password checking\n")
-{
-  no_password_check = 1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (service_advanced_vty,
-       service_advanced_vty_cmd,
-       "service advanced-vty",
-       "Set up miscellaneous service\n"
-       "Enable advanced mode vty interface\n")
-{
-  host.advanced = 1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (no_service_advanced_vty,
-       no_service_advanced_vty_cmd,
-       "no service advanced-vty",
-       NO_STR
-       "Set up miscellaneous service\n"
-       "Enable advanced mode vty interface\n")
-{
-  host.advanced = 0;
-  return CMD_SUCCESS;
-}
-
-DEFUN (terminal_monitor,
-       terminal_monitor_cmd,
-       "terminal monitor",
-       "Set terminal line parameters\n"
-       "Copy debug output to the current terminal line\n")
-{
-  vty->monitor = 1;
-  return CMD_SUCCESS;
-}
-
-DEFUN (terminal_no_monitor,
-       terminal_no_monitor_cmd,
-       "terminal no monitor",
-       "Set terminal line parameters\n"
-       NO_STR
-       "Copy debug output to the current terminal line\n")
-{
-  vty->monitor = 0;
-  return CMD_SUCCESS;
-}
-
-DEFUN (show_history,
-       show_history_cmd,
-       "show history",
-       SHOW_STR
-       "Display the session command history\n")
-{
-  int index;
-
-  for (index = vty->hindex + 1; index != vty->hindex;)
-    {
-      if (index == VTY_MAXHIST)
-	{
-	  index = 0;
-	  continue;
-	}
-
-      if (vty->hist[index] != NULL)
-	vty_out (vty, "  %s%s", vty->hist[index], VTY_NEWLINE);
-
-      index++;
-    }
-
-  return CMD_SUCCESS;
-}
-
-/* Display current configuration. */
-int
-vty_config_write (struct vty *vty)
-{
-  vty_out (vty, "line vty%s", VTY_NEWLINE);
-
-  if (vty_accesslist_name)
-    vty_out (vty, " access-class %s%s",
-	     vty_accesslist_name, VTY_NEWLINE);
-
-  if (vty_ipv6_accesslist_name)
-    vty_out (vty, " ipv6 access-class %s%s",
-	     vty_ipv6_accesslist_name, VTY_NEWLINE);
-
-  /* exec-timeout */
-  if (vty_timeout_val != VTY_TIMEOUT_DEFAULT)
-    vty_out (vty, " exec-timeout %ld %ld%s", 
-	     vty_timeout_val / 60,
-	     vty_timeout_val % 60, VTY_NEWLINE);
-
-  /* login */
-  if (no_password_check)
-    vty_out (vty, " no login%s", VTY_NEWLINE);
-
-  vty_out (vty, "!%s", VTY_NEWLINE);
-
-  return CMD_SUCCESS;
-}
-
-struct cmd_node vty_node =
-{
-  VTY_NODE,
-  "%s(config-line)# ",
-};
-
-/* Reset all VTY status. */
-void
-vty_reset ()
-{
-  int i;
-  struct vty *vty;
-  struct thread *vty_serv_thread;
-
-  for (i = 0; i < vector_max (vtyvec); i++)
-    if ((vty = vector_slot (vtyvec, i)) != NULL)
-      {
-	buffer_reset (vty->obuf);
-	vty->status = VTY_CLOSE;
-	vty_close (vty);
-      }
-
-  for (i = 0; i < vector_max (Vvty_serv_thread); i++)
-    if ((vty_serv_thread = vector_slot (Vvty_serv_thread, i)) != NULL)
-      {
-	thread_cancel (vty_serv_thread);
-	vector_slot (Vvty_serv_thread, i) = NULL;
-        close (i);
-      }
-
-  vty_timeout_val = VTY_TIMEOUT_DEFAULT;
-
-  if (vty_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_accesslist_name);
-      vty_accesslist_name = NULL;
-    }
-
-  if (vty_ipv6_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
-      vty_ipv6_accesslist_name = NULL;
-    }
-}
-
-/* for ospf6d easy temprary reload function */
-/* vty_reset + close accept socket */
-void
-vty_finish ()
-{
-  int i;
-  struct vty *vty;
-  struct thread *vty_serv_thread;
-
-  for (i = 0; i < vector_max (vtyvec); i++)
-    if ((vty = vector_slot (vtyvec, i)) != NULL)
-      {
-	buffer_reset (vty->obuf);
-	vty->status = VTY_CLOSE;
-	vty_close (vty);
-      }
-
-  for (i = 0; i < vector_max (Vvty_serv_thread); i++)
-    if ((vty_serv_thread = vector_slot (Vvty_serv_thread, i)) != NULL)
-      {
-	thread_cancel (vty_serv_thread);
-	vector_slot (Vvty_serv_thread, i) = NULL;
-        close (i);
-      }
-
-  vty_timeout_val = VTY_TIMEOUT_DEFAULT;
-
-  if (vty_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_accesslist_name);
-      vty_accesslist_name = NULL;
-    }
-
-  if (vty_ipv6_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
-      vty_ipv6_accesslist_name = NULL;
-    }
-}
-
-void
-vty_save_cwd ()
-{
-  char *cwd;
-
-  cwd = getcwd (NULL, MAXPATHLEN);
-
-  vty_cwd = XMALLOC (MTYPE_TMP, strlen (cwd) + 1);
-  strcpy (vty_cwd, cwd);
-}
-
-char *
-vty_get_cwd ()
-{
-  return vty_cwd;
-}
-
-int
-vty_shell (struct vty *vty)
-{
-  return vty->type == VTY_SHELL ? 1 : 0;
-}
-
-int
-vty_shell_serv (struct vty *vty)
-{
-  return vty->type == VTY_SHELL_SERV ? 1 : 0;
-}
-
-void
-vty_init_vtysh ()
-{
-  vtyvec = vector_init (VECTOR_MIN_SIZE);
-}
-
-/* Install vty's own commands like `who' command. */
-void
-vty_init ()
-{
-  /* For further configuration read, preserve current directory. */
-  vty_save_cwd ();
-
-  vtyvec = vector_init (VECTOR_MIN_SIZE);
-
-  /* Initilize server thread vector. */
-  Vvty_serv_thread = vector_init (VECTOR_MIN_SIZE);
-
-  /* Install bgp top node. */
-  install_node (&vty_node, vty_config_write);
-
-  install_element (VIEW_NODE, &config_who_cmd);
-  install_element (VIEW_NODE, &show_history_cmd);
-  install_element (ENABLE_NODE, &config_who_cmd);
-  install_element (CONFIG_NODE, &line_vty_cmd);
-  install_element (CONFIG_NODE, &service_advanced_vty_cmd);
-  install_element (CONFIG_NODE, &no_service_advanced_vty_cmd);
-  install_element (CONFIG_NODE, &show_history_cmd);
-  install_element (ENABLE_NODE, &terminal_monitor_cmd);
-  install_element (ENABLE_NODE, &terminal_no_monitor_cmd);
-  install_element (ENABLE_NODE, &show_history_cmd);
-
-  install_default (VTY_NODE);
-  install_element (VTY_NODE, &exec_timeout_min_cmd);
-  install_element (VTY_NODE, &exec_timeout_sec_cmd);
-  install_element (VTY_NODE, &no_exec_timeout_cmd);
-  install_element (VTY_NODE, &vty_access_class_cmd);
-  install_element (VTY_NODE, &no_vty_access_class_cmd);
-  install_element (VTY_NODE, &vty_login_cmd);
-  install_element (VTY_NODE, &no_vty_login_cmd);
-#ifdef HAVE_IPV6
-  install_element (VTY_NODE, &vty_ipv6_access_class_cmd);
-  install_element (VTY_NODE, &no_vty_ipv6_access_class_cmd);
-#endif /* HAVE_IPV6 */
-}
diff --git a/isisd/modified/zebra.h b/isisd/modified/zebra.h
deleted file mode 100644
index 989e882..0000000
--- a/isisd/modified/zebra.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* Zebra common header.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 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.  */
-
-#ifndef _ZEBRA_H
-#define _ZEBRA_H
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#ifdef SUNOS_5
-#define _XPG4_2
-#define __EXTENSIONS__
-#endif /* SUNOS_5 */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <string.h>
-#ifdef HAVE_STROPTS_H
-#include <stropts.h>
-#endif /* HAVE_STROPTS_H */
-#include <sys/fcntl.h>
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif /* HAVE_SYS_SELECT_H */
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#ifdef HAVE_SYS_SYSCTL_H
-#include <sys/sysctl.h>
-#endif /* HAVE_SYS_SYSCTL_H */
-#include <sys/ioctl.h>
-#ifdef HAVE_SYS_CONF_H
-#include <sys/conf.h>
-#endif /* HAVE_SYS_CONF_H */
-#ifdef HAVE_SYS_KSYM_H
-#include <sys/ksym.h>
-#endif /* HAVE_SYS_KSYM_H */
-#include <syslog.h>
-#include <time.h>
-#include <sys/uio.h>
-#include <sys/utsname.h>
-#ifdef HAVE_RUSAGE
-#include <sys/resource.h>
-#endif /* HAVE_RUSAGE */
-
-/* machine dependent includes */
-#ifdef SUNOS_5
-#include <limits.h>
-#include <strings.h>
-#endif /* SUNOS_5 */
-
-/* machine dependent includes */
-#ifdef HAVE_LINUX_VERSION_H
-#include <linux/version.h>
-#endif /* HAVE_LINUX_VERSION_H */
-
-#ifdef HAVE_ASM_TYPES_H
-#include <asm/types.h>
-#endif /* HAVE_ASM_TYPES_H */
-
-/* misc include group */
-#include <stdarg.h>
-#include <assert.h>
-
-/* network include group */
-
-#include <sys/socket.h>
-
-#ifdef HAVE_SYS_SOCKIO_H
-#include <sys/sockio.h>
-#endif /* HAVE_SYS_SOCKIO_H */
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif /* HAVE_NETINET_IN_H */
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <netinet/tcp.h>
-
-#ifdef HAVE_NET_NETOPT_H
-#include <net/netopt.h>
-#endif /* HAVE_NET_NETOPT_H */
-
-#include <net/if.h>
-
-#ifdef HAVE_NET_IF_DL_H
-#include <net/if_dl.h>
-#endif /* HAVE_NET_IF_DL_H */
-
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif /* HAVE_NET_IF_VAR_H */
-
-#include <net/route.h>
-
-#ifdef HAVE_NETLINK
-#include <linux/netlink.h>
-#include <linux/rtnetlink.h>
-#else
-#define RT_TABLE_MAIN		0
-#endif /* HAVE_NETLINK */
-
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif /* HAVE_NETDB_H */
-
-#include <arpa/inet.h>
-#include <arpa/telnet.h>
-
-#ifdef HAVE_INET_ND_H
-#include <inet/nd.h>
-#endif /* HAVE_INET_ND_H */
-
-#ifdef HAVE_NETINET_IN_VAR_H
-#include <netinet/in_var.h>
-#endif /* HAVE_NETINET_IN_VAR_H */
-
-#ifdef HAVE_NETINET_IN6_VAR_H
-#include <netinet/in6_var.h>
-#endif /* HAVE_NETINET_IN6_VAR_H */
-
-#ifdef HAVE_NETINET6_IN_H
-#include <netinet6/in.h>
-#endif /* HAVE_NETINET6_IN_H */
-
-
-#ifdef HAVE_NETINET6_IP6_H
-#include <netinet6/ip6.h>
-#endif /* HAVE_NETINET6_IP6_H */
-
-#ifdef HAVE_NETINET_ICMP6_H
-#include <netinet/icmp6.h>
-#endif /* HAVE_NETINET_ICMP6_H */
-
-#ifdef HAVE_NETINET6_ND6_H
-#include <netinet6/nd6.h>
-#endif /* HAVE_NETINET6_ND6_H */
-
-#ifdef HAVE_LIBUTIL_H
-#include <libutil.h>
-#endif /* HAVE_LIBUTIL_H */
-
-#ifdef BSDI_NRL
-
-#ifdef HAVE_NETINET6_IN6_H
-#include <netinet6/in6.h>
-#endif /* HAVE_NETINET6_IN6_H */
-
-#ifdef NRL
-#include <netinet6/in6.h>
-#endif /* NRL */
-
-#define IN6_ARE_ADDR_EQUAL IN6_IS_ADDR_EQUAL
-
-/* BSD/OS 4.0 has lost belows defines, it should appear at
-   /usr/include/sys/socket.h.  */
-#define CMSG_ALIGN(n)           (((n) + 3) & ~3)
-#define CMSG_SPACE(l)   (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(l))
-#define CMSG_LEN(l)     (CMSG_ALIGN(sizeof(struct cmsghdr)) + (l))
-
-#endif /* BSDI_NRL */
-
-/*  The definition of struct in_pktinfo is missing in old version of
-    GLIBC 2.1 (Redhat 6.1).  */
-#if defined (GNU_LINUX) && ! defined (HAVE_INPKTINFO)
-struct in_pktinfo
-{
-  int ipi_ifindex;
-  struct in_addr ipi_spec_dst;
-  struct in_addr ipi_addr;
-};
-#endif
-
-/* For old definition. */
-#ifndef IN6_ARE_ADDR_EQUAL
-#define IN6_ARE_ADDR_EQUAL IN6_IS_ADDR_EQUAL
-#endif /* IN6_ARE_ADDR_EQUAL */
-
-/* Zebra message types. */
-#define ZEBRA_INTERFACE_ADD                1
-#define ZEBRA_INTERFACE_DELETE             2
-#define ZEBRA_INTERFACE_ADDRESS_ADD        3
-#define ZEBRA_INTERFACE_ADDRESS_DELETE     4
-#define ZEBRA_INTERFACE_UP                 5
-#define ZEBRA_INTERFACE_DOWN               6
-#define ZEBRA_IPV4_ROUTE_ADD               7
-#define ZEBRA_IPV4_ROUTE_DELETE            8
-#define ZEBRA_IPV6_ROUTE_ADD               9
-#define ZEBRA_IPV6_ROUTE_DELETE           10
-#define ZEBRA_REDISTRIBUTE_ADD            11
-#define ZEBRA_REDISTRIBUTE_DELETE         12
-#define ZEBRA_REDISTRIBUTE_DEFAULT_ADD    13
-#define ZEBRA_REDISTRIBUTE_DEFAULT_DELETE 14
-#define ZEBRA_IPV4_NEXTHOP_LOOKUP         15
-#define ZEBRA_IPV6_NEXTHOP_LOOKUP         16
-#define ZEBRA_IPV4_IMPORT_LOOKUP          17
-#define ZEBRA_IPV6_IMPORT_LOOKUP          18
-#define ZEBRA_MESSAGE_MAX                 19
-
-/* Zebra route's types. */
-#define ZEBRA_ROUTE_SYSTEM               0
-#define ZEBRA_ROUTE_KERNEL               1
-#define ZEBRA_ROUTE_CONNECT              2
-#define ZEBRA_ROUTE_STATIC               3
-#define ZEBRA_ROUTE_RIP                  4
-#define ZEBRA_ROUTE_RIPNG                5
-#define ZEBRA_ROUTE_OSPF                 6
-#define ZEBRA_ROUTE_OSPF6                7
-#define ZEBRA_ROUTE_ISIS                 8
-#define ZEBRA_ROUTE_BGP                  9
-#define ZEBRA_ROUTE_MAX                  10
-
-/* Zebra's family types. */
-#define ZEBRA_FAMILY_IPV4                1
-#define ZEBRA_FAMILY_IPV6                2
-#define ZEBRA_FAMILY_MAX                 3
-
-/* Error codes of zebra. */
-#define ZEBRA_ERR_RTEXIST               -1
-#define ZEBRA_ERR_RTUNREACH             -2
-#define ZEBRA_ERR_EPERM                 -3
-#define ZEBRA_ERR_RTNOEXIST             -4
-
-/* Zebra message flags */
-#define ZEBRA_FLAG_INTERNAL           0x01
-#define ZEBRA_FLAG_SELFROUTE          0x02
-#define ZEBRA_FLAG_BLACKHOLE          0x04
-#define ZEBRA_FLAG_IBGP               0x08
-#define ZEBRA_FLAG_SELECTED           0x10
-#define ZEBRA_FLAG_CHANGED            0x20
-#define ZEBRA_FLAG_STATIC             0x40
-
-/* Zebra nexthop flags. */
-#define ZEBRA_NEXTHOP_IFINDEX            1
-#define ZEBRA_NEXTHOP_IFNAME             2
-#define ZEBRA_NEXTHOP_IPV4               3
-#define ZEBRA_NEXTHOP_IPV4_IFINDEX       4
-#define ZEBRA_NEXTHOP_IPV4_IFNAME        5
-#define ZEBRA_NEXTHOP_IPV6               6
-#define ZEBRA_NEXTHOP_IPV6_IFINDEX       7
-#define ZEBRA_NEXTHOP_IPV6_IFNAME        8
-
-#ifndef INADDR_LOOPBACK
-#define	INADDR_LOOPBACK	0x7f000001	/* Internet address 127.0.0.1.  */
-#endif
-
-/* Address family numbers from RFC1700. */
-#define AFI_IP                    1
-#define AFI_IP6                   2
-#define AFI_MAX                   3
-
-/* Subsequent Address Family Identifier. */
-#define SAFI_UNICAST              1
-#define SAFI_MULTICAST            2
-#define SAFI_UNICAST_MULTICAST    3
-#define SAFI_MPLS_VPN             4
-#define SAFI_MAX                  5
-
-/* Filter direction.  */
-#define FILTER_IN                 0
-#define FILTER_OUT                1
-#define FILTER_MAX                2
-
-/* Default Administrative Distance of each protocol. */
-#define ZEBRA_KERNEL_DISTANCE_DEFAULT      0
-#define ZEBRA_CONNECT_DISTANCE_DEFAULT     0
-#define ZEBRA_STATIC_DISTANCE_DEFAULT      1
-#define ZEBRA_RIP_DISTANCE_DEFAULT       120
-#define ZEBRA_RIPNG_DISTANCE_DEFAULT     120
-#define ZEBRA_OSPF_DISTANCE_DEFAULT      110
-#define ZEBRA_OSPF6_DISTANCE_DEFAULT     110
-#define ZEBRA_ISIS_DISTANCE_DEFAULT      115
-#define ZEBRA_IBGP_DISTANCE_DEFAULT      200
-#define ZEBRA_EBGP_DISTANCE_DEFAULT       20
-
-/* Flag manipulation macros. */
-#define CHECK_FLAG(V,F)      ((V) & (F))
-#define SET_FLAG(V,F)        (V) = (V) | (F)
-#define UNSET_FLAG(V,F)      (V) = (V) & ~(F)
-
-/* AFI and SAFI type. */
-typedef u_int16_t afi_t;
-typedef u_char safi_t;
-
-/* Zebra types. */
-typedef u_int16_t zebra_size_t;
-typedef u_int8_t zebra_command_t;
-
-#endif /* _ZEBRA_H */