[trivia] finish off static'ification of ospf6d and ripngd

2008-08-15 Paul Jakma <paul.jakma@sun.com>

	* {ospf6d,ripngd}/*: Finish job of marking functions as static, or
	  exporting declarations for them, to quell warning noise with
	  Quagga's GCC default high-level of warning flags. Thus allowing
	  remaining, more useful warnings to be more easily seen.
diff --git a/ripngd/ripng_debug.c b/ripngd/ripng_debug.c
index 7841fe2..4ed4fa3 100644
--- a/ripngd/ripng_debug.c
+++ b/ripngd/ripng_debug.c
@@ -211,7 +211,7 @@
   1 /* VTYSH */
 };
 
-int
+static int
 config_write_debug (struct vty *vty)
 {
   int write = 0;
diff --git a/ripngd/ripng_debug.h b/ripngd/ripng_debug.h
index 617a07d..f5ed6ea 100644
--- a/ripngd/ripng_debug.h
+++ b/ripngd/ripng_debug.h
@@ -47,7 +47,7 @@
 extern unsigned long ripng_debug_packet;
 extern unsigned long ripng_debug_zebra;
 
-void ripng_debug_init ();
-void ripng_debug_reset ();
+extern void ripng_debug_init (void);
+extern void ripng_debug_reset (void);
 
 #endif /* _ZEBRA_RIPNG_DEBUG_H */
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 140e3be..d76e3a1 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -52,12 +52,12 @@
 /* Static utility function. */
 static void ripng_enable_apply (struct interface *);
 static void ripng_passive_interface_apply (struct interface *);
-int ripng_enable_if_lookup (const char *ifname);
-int ripng_enable_network_lookup2 (struct connected *connected);
-void ripng_enable_apply_all ();
+static int ripng_enable_if_lookup (const char *);
+static int ripng_enable_network_lookup2 (struct connected *);
+static void ripng_enable_apply_all (void);
 
 /* Join to the all rip routers multicast group. */
-int
+static int
 ripng_multicast_join (struct interface *ifp)
 {
   int ret;
@@ -109,7 +109,7 @@
 }
 
 /* Leave from the all rip routers multicast group. */
-int
+static int
 ripng_multicast_leave (struct interface *ifp)
 {
   int ret;
@@ -137,7 +137,7 @@
 }
 
 /* How many link local IPv6 address could be used on the interface ? */
-int
+static int
 ripng_if_ipv6_lladdress_check (struct interface *ifp)
 {
   struct listnode *nn;
@@ -158,8 +158,8 @@
 }
 
 /* Check max mtu size. */
-unsigned int
-ripng_check_max_mtu ()
+static unsigned int
+ripng_check_max_mtu (void)
 {
   struct listnode *node;
   struct interface *ifp;
@@ -173,7 +173,7 @@
   return mtu;
 }
 
-int
+static int
 ripng_if_down (struct interface *ifp)
 {
   struct route_node *rp;
@@ -335,7 +335,7 @@
 }
 
 void
-ripng_interface_clean ()
+ripng_interface_clean (void)
 {
   struct listnode *node, *nnode;
   struct interface *ifp;
@@ -358,7 +358,8 @@
 }
 
 void
-ripng_interface_reset () {
+ripng_interface_reset (void)
+{
   struct listnode *node;
   struct interface *ifp;
   struct ripng_interface *ri;
@@ -526,7 +527,7 @@
 /* Lookup RIPng enable network. */
 /* Check wether the interface has at least a connected prefix that
  * is within the ripng_enable_network table. */
-int
+static int
 ripng_enable_network_lookup_if (struct interface *ifp)
 {
   struct listnode *node;
@@ -559,7 +560,7 @@
 }
 
 /* Check wether connected is within the ripng_enable_network table. */
-int
+static int
 ripng_enable_network_lookup2 (struct connected *connected)
 {
   struct prefix_ipv6 address;
@@ -588,7 +589,7 @@
 }
 
 /* Add RIPng enable network. */
-int
+static int
 ripng_enable_network_add (struct prefix *p)
 {
   struct route_node *node;
@@ -610,7 +611,7 @@
 }
 
 /* Delete RIPng enable network. */
-int
+static int
 ripng_enable_network_delete (struct prefix *p)
 {
   struct route_node *node;
@@ -632,7 +633,7 @@
 }
 
 /* Lookup function. */
-int
+static int
 ripng_enable_if_lookup (const char *ifname)
 {
   unsigned int i;
@@ -646,7 +647,7 @@
 }
 
 /* Add interface to ripng_enable_if. */
-int
+static int
 ripng_enable_if_add (const char *ifname)
 {
   int ret;
@@ -663,7 +664,7 @@
 }
 
 /* Delete interface from ripng_enable_if. */
-int
+static int
 ripng_enable_if_delete (const char *ifname)
 {
   int index;
@@ -683,7 +684,7 @@
 }
 
 /* Wake up interface. */
-int
+static int
 ripng_interface_wakeup (struct thread *t)
 {
   struct interface *ifp;
@@ -710,9 +711,7 @@
   return 0;
 }
 
-int ripng_redistribute_check (int);
-
-void
+static void
 ripng_connect_set (struct interface *ifp, int set)
 {
   struct listnode *node, *nnode;
@@ -816,8 +815,8 @@
 }
 
 /* Set distribute list to all interfaces. */
-void
-ripng_enable_apply_all ()
+static void
+ripng_enable_apply_all (void)
 {
   struct interface *ifp;
   struct listnode *node;
@@ -853,7 +852,7 @@
 vector Vripng_passive_interface;
 
 /* Utility function for looking up passive interface settings. */
-int
+static int
 ripng_passive_interface_lookup (const char *ifname)
 {
   unsigned int i;
@@ -881,7 +880,7 @@
     ri->passive = 1;
 }
 
-void
+static void
 ripng_passive_interface_apply_all (void)
 {
   struct interface *ifp;
@@ -892,7 +891,7 @@
 }
 
 /* Passive interface. */
-int
+static int
 ripng_passive_interface_set (struct vty *vty, const char *ifname)
 {
   if (ripng_passive_interface_lookup (ifname) >= 0)
@@ -905,7 +904,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 ripng_passive_interface_unset (struct vty *vty, const char *ifname)
 {
   int i;
@@ -1117,8 +1116,8 @@
   return ripng_passive_interface_unset (vty, argv[0]);
 }
 
-struct ripng_interface *
-ri_new ()
+static struct ripng_interface *
+ri_new (void)
 {
   struct ripng_interface *ri;
   ri = XCALLOC (MTYPE_IF, sizeof (struct ripng_interface));
@@ -1133,7 +1132,7 @@
   return ri;
 }
 
-int
+static int
 ripng_if_new_hook (struct interface *ifp)
 {
   ifp->info = ri_new ();
@@ -1141,7 +1140,7 @@
 }
 
 /* Called when interface structure deleted. */
-int
+static int
 ripng_if_delete_hook (struct interface *ifp)
 {
   XFREE (MTYPE_IF, ifp->info);
@@ -1150,7 +1149,7 @@
 }
 
 /* Configuration write function for ripngd. */
-int
+static int
 interface_config_write (struct vty *vty)
 {
   struct listnode *node;
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index a18ce9d..4877485 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -129,7 +129,7 @@
 }
 
 /* SIGHUP handler. */
-void 
+static void 
 sighup (void)
 {
   zlog_info ("SIGHUP received");
@@ -145,7 +145,7 @@
 }
 
 /* SIGINT handler. */
-void
+static void
 sigint (void)
 {
   zlog_notice ("Terminating on signal");
@@ -157,7 +157,7 @@
 }
 
 /* SIGUSR1 handler. */
-void
+static void
 sigusr1 (void)
 {
   zlog_rotate (NULL);
diff --git a/ripngd/ripng_nexthop.h b/ripngd/ripng_nexthop.h
index 50a86ad..7c04105 100644
--- a/ripngd/ripng_nexthop.h
+++ b/ripngd/ripng_nexthop.h
@@ -27,12 +27,13 @@
 #include "ripngd/ripng_route.h"
 #include "ripngd/ripngd.h"
 
-struct list * ripng_rte_new(void);
-void ripng_rte_free(struct list *ripng_rte_list);
-void ripng_rte_add(struct list *ripng_rte_list, struct prefix_ipv6 *p,
-                   struct ripng_info *rinfo, struct ripng_aggregate *aggregate);
-void ripng_rte_send(struct list *ripng_rte_list, struct interface *ifp,
-                    struct sockaddr_in6 *to);
+extern struct list * ripng_rte_new(void);
+extern void ripng_rte_free(struct list *ripng_rte_list);
+extern void ripng_rte_add(struct list *ripng_rte_list, struct prefix_ipv6 *p,
+                          struct ripng_info *rinfo,
+                          struct ripng_aggregate *aggregate);
+extern void ripng_rte_send(struct list *ripng_rte_list, struct interface *ifp,
+                           struct sockaddr_in6 *to);
 
 /***
  * 1 if A > B
diff --git a/ripngd/ripng_offset.c b/ripngd/ripng_offset.c
index 31d78ba..5bc2568 100644
--- a/ripngd/ripng_offset.c
+++ b/ripngd/ripng_offset.c
@@ -32,6 +32,8 @@
 #include "linklist.h"
 #include "memory.h"
 
+#include "ripngd/ripngd.h"
+
 #define RIPNG_OFFSET_LIST_IN  0
 #define RIPNG_OFFSET_LIST_OUT 1
 #define RIPNG_OFFSET_LIST_MAX 2
@@ -50,7 +52,7 @@
 
 static struct list *ripng_offset_list_master;
 
-int
+static int
 strcmp_safe (const char *s1, const char *s2)
 {
   if (s1 == NULL && s2 == NULL)
@@ -62,7 +64,7 @@
   return strcmp (s1, s2);
 }
 
-struct ripng_offset_list *
+static struct ripng_offset_list *
 ripng_offset_list_new ()
 {
   struct ripng_offset_list *new;
@@ -71,13 +73,13 @@
   return new;
 }
 
-void
+static void
 ripng_offset_list_free (struct ripng_offset_list *offset)
 {
   XFREE (MTYPE_RIPNG_OFFSET_LIST, offset);
 }
 
-struct ripng_offset_list *
+static struct ripng_offset_list *
 ripng_offset_list_lookup (const char *ifname)
 {
   struct ripng_offset_list *offset;
@@ -91,7 +93,7 @@
   return NULL;
 }
 
-struct ripng_offset_list *
+static struct ripng_offset_list *
 ripng_offset_list_get (const char *ifname)
 {
   struct ripng_offset_list *offset;
@@ -108,7 +110,7 @@
   return offset;
 }
 
-int
+static int
 ripng_offset_list_set (struct vty *vty, const char *alist,
 		       const char *direct_str, const char *metric_str,
 		       const char *ifname)
@@ -147,7 +149,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 ripng_offset_list_unset (struct vty *vty, const char *alist,
 			 const char *direct_str, const char *metric_str,
 			 const char *ifname)
@@ -338,13 +340,13 @@
   return ripng_offset_list_unset (vty, argv[0], argv[1], argv[2], argv[3]);
 }
 
-int
+static int
 offset_list_cmp (struct ripng_offset_list *o1, struct ripng_offset_list *o2)
 {
   return strcmp_safe (o1->ifname, o2->ifname);
 }
 
-void
+static void
 offset_list_del (struct ripng_offset_list *offset)
 {
   if (OFFSET_LIST_IN_NAME (offset))
@@ -357,7 +359,7 @@
 }
 
 void
-ripng_offset_init ()
+ripng_offset_init (void)
 {
   ripng_offset_list_master = list_new ();
   ripng_offset_list_master->cmp = (int (*)(void *, void *)) offset_list_cmp;
@@ -370,7 +372,7 @@
 }
 
 void
-ripng_offset_clean ()
+ripng_offset_clean (void)
 {
   list_delete (ripng_offset_list_master);
 
diff --git a/ripngd/ripng_peer.c b/ripngd/ripng_peer.c
index 34f5ac6..1e58bb8 100644
--- a/ripngd/ripng_peer.c
+++ b/ripngd/ripng_peer.c
@@ -39,8 +39,8 @@
 /* Linked list of RIPng peer. */
 struct list *peer_list;
 
-struct ripng_peer *
-ripng_peer_new ()
+static struct ripng_peer *
+ripng_peer_new (void)
 {
   struct ripng_peer *new;
 
@@ -49,7 +49,7 @@
   return new;
 }
 
-void
+static void
 ripng_peer_free (struct ripng_peer *peer)
 {
   XFREE (MTYPE_RIPNG_PEER, peer);
@@ -86,7 +86,7 @@
 /* RIPng peer is timeout.
  * Garbage collector.
  **/
-int
+static int
 ripng_peer_timeout (struct thread *t)
 {
   struct ripng_peer *peer;
@@ -99,7 +99,7 @@
 }
 
 /* Get RIPng peer.  At the same time update timeout thread. */
-struct ripng_peer *
+static struct ripng_peer *
 ripng_peer_get (struct in6_addr *addr)
 {
   struct ripng_peer *peer;
@@ -153,7 +153,7 @@
 }
 
 /* Display peer uptime. */
-char *
+static char *
 ripng_peer_uptime (struct ripng_peer *peer, char *buf, size_t len)
 {
   time_t uptime;
@@ -206,7 +206,7 @@
     }
 }
 
-int
+static int
 ripng_peer_list_cmp (struct ripng_peer *p1, struct ripng_peer *p2)
 {
   return addr6_cmp(&p1->addr, &p2->addr) > 0;
diff --git a/ripngd/ripng_route.c b/ripngd/ripng_route.c
index 9c3c4f9..d4bf026 100644
--- a/ripngd/ripng_route.c
+++ b/ripngd/ripng_route.c
@@ -31,7 +31,7 @@
 #include "ripngd/ripngd.h"
 #include "ripngd/ripng_route.h"
 
-struct ripng_aggregate *
+static struct ripng_aggregate *
 ripng_aggregate_new ()
 {
   struct ripng_aggregate *new;
@@ -40,7 +40,7 @@
   return new;
 }
 
-void
+static void
 ripng_aggregate_free (struct ripng_aggregate *aggregate)
 {
   XFREE (MTYPE_RIPNG_AGGREGATE, aggregate);
diff --git a/ripngd/ripng_route.h b/ripngd/ripng_route.h
index db53f14..2f5b757 100644
--- a/ripngd/ripng_route.h
+++ b/ripngd/ripng_route.h
@@ -44,16 +44,11 @@
   u_short tag_out;
 };
 
-void
-ripng_aggregate_increment (struct route_node *rp, struct ripng_info *rinfo);
-
-void
-ripng_aggregate_decrement (struct route_node *rp, struct ripng_info *rinfo);
-
-int
-ripng_aggregate_add (struct prefix *p);
-
-int
-ripng_aggregate_delete (struct prefix *p);
+extern void ripng_aggregate_increment (struct route_node *rp,
+                                       struct ripng_info *rinfo);
+extern void ripng_aggregate_decrement (struct route_node *rp,
+                                       struct ripng_info *rinfo);
+extern int ripng_aggregate_add (struct prefix *p);
+extern int ripng_aggregate_delete (struct prefix *p);
 
 #endif /* _ZEBRA_RIPNG_ROUTE_H */
diff --git a/ripngd/ripng_routemap.c b/ripngd/ripng_routemap.c
index 1570c78..0f5cca3 100644
--- a/ripngd/ripng_routemap.c
+++ b/ripngd/ripng_routemap.c
@@ -43,7 +43,7 @@
 };
 
 
-int
+static int
 ripng_route_match_add (struct vty *vty, struct route_map_index *index,
 		       const char *command, const char *arg)
 {
@@ -65,7 +65,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 ripng_route_match_delete (struct vty *vty, struct route_map_index *index,
 			  const char *command, const char *arg)
 {
@@ -87,7 +87,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 ripng_route_set_add (struct vty *vty, struct route_map_index *index,
 		     const char *command, const char *arg)
 {
@@ -109,7 +109,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 ripng_route_set_delete (struct vty *vty, struct route_map_index *index,
 			const char *command, const char *arg)
 {
@@ -133,7 +133,7 @@
 
 /* `match metric METRIC' */
 /* Match function return 1 if match is success else return zero. */
-route_map_result_t
+static route_map_result_t
 route_match_metric (void *rule, struct prefix *prefix, 
 		    route_map_object_t type, void *object)
 {
@@ -154,7 +154,7 @@
 }
 
 /* Route map `match metric' match statement. `arg' is METRIC value */
-void *
+static void *
 route_match_metric_compile (const char *arg)
 {
   u_int32_t *metric;
@@ -170,14 +170,14 @@
 }
 
 /* Free route map's compiled `match metric' value. */
-void
+static void
 route_match_metric_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
 /* Route map commands for metric matching. */
-struct route_map_rule_cmd route_match_metric_cmd =
+static struct route_map_rule_cmd route_match_metric_cmd =
 {
   "metric",
   route_match_metric,
@@ -187,7 +187,7 @@
 
 /* `match interface IFNAME' */
 /* Match function return 1 if match is success else return zero. */
-route_map_result_t
+static route_map_result_t
 route_match_interface (void *rule, struct prefix *prefix,
 		       route_map_object_t type, void *object)
 {
@@ -214,19 +214,19 @@
 }
 
 /* Route map `match interface' match statement. `arg' is IFNAME value */
-void *
+static void *
 route_match_interface_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
 
-void
+static void
 route_match_interface_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-struct route_map_rule_cmd route_match_interface_cmd =
+static struct route_map_rule_cmd route_match_interface_cmd =
 {
   "interface",
   route_match_interface,
@@ -236,7 +236,7 @@
 
 /* `match tag TAG' */
 /* Match function return 1 if match is success else return zero. */
-route_map_result_t
+static route_map_result_t
 route_match_tag (void *rule, struct prefix *prefix, 
 		    route_map_object_t type, void *object)
 {
@@ -258,7 +258,7 @@
 }
 
 /* Route map `match tag' match statement. `arg' is TAG value */
-void *
+static void *
 route_match_tag_compile (const char *arg)
 {
   u_short *tag;
@@ -270,14 +270,14 @@
 }
 
 /* Free route map's compiled `match tag' value. */
-void
+static void
 route_match_tag_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
 /* Route map commands for tag matching. */
-struct route_map_rule_cmd route_match_tag_cmd =
+static struct route_map_rule_cmd route_match_tag_cmd =
 {
   "tag",
   route_match_tag,
@@ -288,7 +288,7 @@
 /* `set metric METRIC' */
 
 /* Set metric to attribute. */
-route_map_result_t
+static route_map_result_t
 route_set_metric (void *rule, struct prefix *prefix, 
 		  route_map_object_t type, void *object)
 {
@@ -318,7 +318,7 @@
 }
 
 /* set metric compilation. */
-void *
+static void *
 route_set_metric_compile (const char *arg)
 {
   int len;
@@ -371,13 +371,13 @@
 }
 
 /* Free route map's compiled `set metric' value. */
-void
+static void
 route_set_metric_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
-struct route_map_rule_cmd route_set_metric_cmd = 
+static struct route_map_rule_cmd route_set_metric_cmd = 
 {
   "metric",
   route_set_metric,
@@ -388,7 +388,7 @@
 /* `set ipv6 next-hop local IP_ADDRESS' */
 
 /* Set nexthop to object.  ojbect must be pointer to struct attr. */
-route_map_result_t
+static route_map_result_t
 route_set_ipv6_nexthop_local (void *rule, struct prefix *prefix, 
 		      route_map_object_t type, void *object)
 {
@@ -410,7 +410,7 @@
 
 /* Route map `ipv6 nexthop local' compile function.  Given string is converted
    to struct in6_addr structure. */
-void *
+static void *
 route_set_ipv6_nexthop_local_compile (const char *arg)
 {
   int ret;
@@ -430,14 +430,14 @@
 }
 
 /* Free route map's compiled `ipv6 nexthop local' value. */
-void
+static void
 route_set_ipv6_nexthop_local_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
 /* Route map commands for ipv6 nexthop local set. */
-struct route_map_rule_cmd route_set_ipv6_nexthop_local_cmd =
+static struct route_map_rule_cmd route_set_ipv6_nexthop_local_cmd =
 {
   "ipv6 next-hop local",
   route_set_ipv6_nexthop_local,
@@ -448,7 +448,7 @@
 /* `set tag TAG' */
 
 /* Set tag to object.  ojbect must be pointer to struct attr. */
-route_map_result_t
+static route_map_result_t
 route_set_tag (void *rule, struct prefix *prefix, 
 		      route_map_object_t type, void *object)
 {
@@ -470,7 +470,7 @@
 
 /* Route map `tag' compile function.  Given string is converted
    to u_short. */
-void *
+static void *
 route_set_tag_compile (const char *arg)
 {
   u_short *tag;
@@ -482,14 +482,14 @@
 }
 
 /* Free route map's compiled `ip nexthop' value. */
-void
+static void
 route_set_tag_free (void *rule)
 {
   XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
 }
 
 /* Route map commands for tag set. */
-struct route_map_rule_cmd route_set_tag_cmd =
+static struct route_map_rule_cmd route_set_tag_cmd =
 {
   "tag",
   route_set_tag,
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index 1f9bee0..62185c0 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -89,7 +89,7 @@
 }
 
 /* Zebra route add and delete treatment. */
-int
+static int
 ripng_zebra_read_ipv6 (int command, struct zclient *zclient,
 		       zebra_size_t length)
 {
@@ -143,12 +143,12 @@
 }
 
 void
-ripng_zclient_reset ()
+ripng_zclient_reset (void)
 {
   zclient_reset (zclient);
 }
 
-int
+static int
 ripng_redistribute_unset (int type)
 {
   if (! zclient->redist[type])
@@ -170,14 +170,14 @@
   return (zclient->redist[type]);
 }
 
-void
+static void
 ripng_redistribute_metric_set (int type, int metric)
 {
   ripng->route_map[type].metric_config = 1;
   ripng->route_map[type].metric = metric;
 }
 
-int
+static int
 ripng_redistribute_metric_unset (int type)
 {
   ripng->route_map[type].metric_config = 0;
@@ -185,7 +185,7 @@
   return 0;
 }
 
-void
+static void
 ripng_redistribute_routemap_set (int type, const char *name)
 {
   if (ripng->route_map[type].name)
@@ -195,7 +195,7 @@
   ripng->route_map[type].map = route_map_lookup_by_name (name);
 }
 
-void
+static void
 ripng_redistribute_routemap_unset (int type)
 {
   if (ripng->route_map[type].name)
@@ -520,7 +520,7 @@
 }
 
 /* RIPng configuration write function. */
-int
+static int
 zebra_config_write (struct vty *vty)
 {
   if (! zclient->enable)
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index a8277fe..5e9bfc5 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -73,7 +73,7 @@
   struct in6_addr address;
 };
 
-int
+static int
 ripng_route_rte (struct ripng_info *rinfo)
 {
   return (rinfo->type == ZEBRA_ROUTE_RIPNG && rinfo->sub_type == RIPNG_ROUTE_RTE);
@@ -97,7 +97,7 @@
 }
 
 /* Create ripng socket. */
-int 
+static int 
 ripng_make_socket (void)
 {
   int ret;
@@ -222,7 +222,7 @@
 }
 
 /* Receive UDP RIPng packet from socket. */
-int
+static int
 ripng_recv_packet (int sock, u_char *buf, int bufsize,
 		   struct sockaddr_in6 *from, unsigned int *ifindex, 
 		   int *hoplimit)
@@ -318,7 +318,7 @@
 }
 
 /* RIPng next hop address RTE (Route Table Entry). */
-void
+static void
 ripng_nexthop_rte (struct rte *rte,
 		   struct sockaddr_in6 *from,
 		   struct ripng_nexthop *nexthop)
@@ -377,7 +377,7 @@
 }
 
 /* If ifp has same link-local address then return 1. */
-int
+static int
 ripng_lladdr_check (struct interface *ifp, struct in6_addr *addr)
 {
   struct listnode *node;
@@ -397,7 +397,7 @@
 }
 
 /* RIPng route garbage collect timer. */
-int
+static int
 ripng_garbage_collect (struct thread *t)
 {
   struct ripng_info *rinfo;
@@ -423,7 +423,7 @@
 }
 
 /* Timeout RIPng routes. */
-int
+static int
 ripng_timeout (struct thread *t)
 {
   struct ripng_info *rinfo;
@@ -460,7 +460,7 @@
   return 0;
 }
 
-void
+static void
 ripng_timeout_update (struct ripng_info *rinfo)
 {
   if (rinfo->metric != RIPNG_METRIC_INFINITY)
@@ -470,7 +470,7 @@
     }
 }
 
-int
+static int
 ripng_incoming_filter (struct prefix_ipv6 *p, struct ripng_interface *ri)
 {
   struct distribute *dist;
@@ -541,7 +541,7 @@
   return 0;
 }
 
-int
+static int
 ripng_outgoing_filter (struct prefix_ipv6 *p, struct ripng_interface *ri)
 {
   struct distribute *dist;
@@ -612,7 +612,7 @@
 }
 
 /* Process RIPng route according to RFC2080. */
-void
+static void
 ripng_route_process (struct rte *rte, struct sockaddr_in6 *from,
 		     struct ripng_nexthop *ripng_nexthop,
 		     struct interface *ifp)
@@ -1100,7 +1100,7 @@
 }
 
 /* RIP routing information. */
-void
+static void
 ripng_response_process (struct ripng_packet *packet, int size, 
 			struct sockaddr_in6 *from, struct interface *ifp,
 			int hoplimit)
@@ -1233,7 +1233,7 @@
 }
 
 /* Response to request message. */
-void
+static void
 ripng_request_process (struct ripng_packet *packet,int size, 
 		       struct sockaddr_in6 *from, struct interface *ifp)
 {
@@ -1320,7 +1320,7 @@
 }
 
 /* First entry point of reading RIPng packet. */
-int
+static int
 ripng_read (struct thread *thread)
 {
   int len;
@@ -1410,8 +1410,8 @@
 }
 
 /* Walk down the RIPng routing table then clear changed flag. */
-void
-ripng_clear_changed_flag ()
+static void
+ripng_clear_changed_flag (void)
 {
   struct route_node *rp;
   struct ripng_info *rinfo;
@@ -1424,7 +1424,7 @@
 
 /* Regular update of RIPng route.  Send all routing formation to RIPng
    enabled interface. */
-int
+static int
 ripng_update (struct thread *t)
 {
   struct listnode *node;
@@ -1484,7 +1484,7 @@
 }
 
 /* Triggered update interval timer. */
-int
+static int
 ripng_triggered_interval (struct thread *t)
 {
   ripng->t_triggered_interval = NULL;
@@ -1813,8 +1813,8 @@
 }
 
 /* Create new RIPng instance and set it to global variable. */
-int
-ripng_create ()
+static int
+ripng_create (void)
 {
   /* ripng should be NULL. */
   assert (ripng == NULL);
@@ -1880,7 +1880,7 @@
 }
 
 
-int
+static int
 ripng_update_jitter (int time)
 {
   return ((rand () % (time + 1)) - (time / 2));
@@ -1949,7 +1949,7 @@
     }
 }
 
-char *
+static char *
 ripng_route_subtype_print (struct ripng_info *rinfo)
 {
   static char str[3];
@@ -2102,8 +2102,6 @@
 {
   struct listnode *node;
   struct interface *ifp;
-  int ripng_network_write (struct vty *, int);
-  void ripng_redistribute_write (struct vty *, int);
 
   if (! ripng)
     return CMD_SUCCESS;
@@ -2607,7 +2605,7 @@
 }
 
 /* RIPng configuration write function. */
-int
+static int
 ripng_config_write (struct vty *vty)
 {
   int ripng_network_write (struct vty *, int);
@@ -2692,7 +2690,7 @@
   1,
 };
 
-void
+static void
 ripng_distribute_update (struct distribute *dist)
 {
   struct interface *ifp;
@@ -2765,7 +2763,7 @@
 }
 
 /* Update all interface's distribute list. */
-void
+static void
 ripng_distribute_update_all (struct prefix_list *notused)
 {
   struct interface *ifp;
@@ -2775,7 +2773,7 @@
     ripng_distribute_update_interface (ifp);
 }
 
-void
+static void
 ripng_distribute_update_all_wrapper (struct access_list *notused)
 {
   ripng_distribute_update_all(NULL);
@@ -2878,7 +2876,7 @@
   ripng_zclient_reset ();
 }
 
-void
+static void
 ripng_if_rmap_update (struct if_rmap *if_rmap)
 {
   struct interface *ifp;
@@ -2924,7 +2922,7 @@
     ripng_if_rmap_update (if_rmap);
 }
 
-void
+static void
 ripng_routemap_update_redistribute (void)
 {
   int i;
@@ -2940,7 +2938,7 @@
     }
 }
 
-void
+static void
 ripng_routemap_update (const char *unused)
 {
   struct interface *ifp;
diff --git a/ripngd/ripngd.h b/ripngd/ripngd.h
index b478e9b..ab06d81 100644
--- a/ripngd/ripngd.h
+++ b/ripngd/ripngd.h
@@ -23,6 +23,9 @@
 #ifndef _ZEBRA_RIPNG_RIPNGD_H
 #define _ZEBRA_RIPNG_RIPNGD_H
 
+#include <zclient.h>
+#include <vty.h>
+
 /* RIPng version and port number. */
 #define RIPNG_V1                         1
 #define RIPNG_PORT_DEFAULT             521
@@ -340,60 +343,79 @@
 extern struct thread_master *master;
 
 /* Prototypes. */
-void ripng_init ();
-void ripng_reset ();
-void ripng_clean ();
-void ripng_clean_network ();
-void ripng_interface_clean ();
-void ripng_interface_reset ();
-void ripng_passive_interface_clean ();
-void ripng_if_init ();
-void ripng_route_map_init ();
-void ripng_route_map_reset ();
-void ripng_terminate ();
+extern void ripng_init (void);
+extern void ripng_reset (void);
+extern void ripng_clean (void);
+extern void ripng_clean_network (void);
+extern void ripng_interface_clean (void);
+extern void ripng_interface_reset (void);
+extern void ripng_passive_interface_clean (void);
+extern void ripng_if_init (void);
+extern void ripng_route_map_init (void);
+extern void ripng_route_map_reset (void);
+extern void ripng_terminate (void);
  /* zclient_init() is done by ripng_zebra.c:zebra_init() */
-void zebra_init ();
-void ripng_zclient_start ();
-void ripng_zclient_reset ();
-void ripng_offset_init ();
+extern void zebra_init (void);
+extern void ripng_zclient_start (void);
+extern void ripng_zclient_reset (void);
+extern void ripng_offset_init (void);
 
-int config_write_ripng_offset_list (struct vty *);
+extern int config_write_ripng_offset_list (struct vty *);
 
-void ripng_peer_init ();
-void ripng_peer_update (struct sockaddr_in6 *, u_char);
-void ripng_peer_bad_route (struct sockaddr_in6 *);
-void ripng_peer_bad_packet (struct sockaddr_in6 *);
-void ripng_peer_display (struct vty *);
-struct ripng_peer *ripng_peer_lookup (struct in6_addr *);
-struct ripng_peer *ripng_peer_lookup_next (struct in6_addr *);
+extern void ripng_peer_init (void);
+extern void ripng_peer_update (struct sockaddr_in6 *, u_char);
+extern void ripng_peer_bad_route (struct sockaddr_in6 *);
+extern void ripng_peer_bad_packet (struct sockaddr_in6 *);
+extern void ripng_peer_display (struct vty *);
+extern struct ripng_peer *ripng_peer_lookup (struct in6_addr *);
+extern struct ripng_peer *ripng_peer_lookup_next (struct in6_addr *);
 
-int ripng_offset_list_apply_in (struct prefix_ipv6 *, struct interface *, u_char *);
-int ripng_offset_list_apply_out (struct prefix_ipv6 *, struct interface *, u_char *);
-void ripng_offset_clean ();
+extern int ripng_offset_list_apply_in (struct prefix_ipv6 *,
+                                       struct interface *, u_char *);
+extern int ripng_offset_list_apply_out (struct prefix_ipv6 *,
+                                        struct interface *, u_char *);
+extern void ripng_offset_clean (void);
 
-struct ripng_info * ripng_info_new ();
-void ripng_info_free (struct ripng_info *rinfo);
-void ripng_event (enum ripng_event, int);
-int ripng_request (struct interface *ifp);
-void ripng_redistribute_add (int, int, struct prefix_ipv6 *, unsigned int,
-			     struct in6_addr *);
-void ripng_redistribute_delete (int, int, struct prefix_ipv6 *, unsigned int);
-void ripng_redistribute_withdraw (int type);
+extern struct ripng_info * ripng_info_new (void);
+extern void ripng_info_free (struct ripng_info *rinfo);
+extern void ripng_event (enum ripng_event, int);
+extern int ripng_request (struct interface *ifp);
+extern void ripng_redistribute_add (int, int, struct prefix_ipv6 *,
+                                    unsigned int, struct in6_addr *);
+extern void ripng_redistribute_delete (int, int, struct prefix_ipv6 *,
+                                       unsigned int);
+extern void ripng_redistribute_withdraw (int type);
 
-void ripng_distribute_update_interface (struct interface *);
-void ripng_if_rmap_update_interface (struct interface *);
+extern void ripng_distribute_update_interface (struct interface *);
+extern void ripng_if_rmap_update_interface (struct interface *);
 
-void ripng_zebra_ipv6_add (struct prefix_ipv6 *p, struct in6_addr *nexthop, unsigned int ifindex, u_char metric);
-void ripng_zebra_ipv6_delete (struct prefix_ipv6 *p, struct in6_addr *nexthop, unsigned int ifindex);
+extern void ripng_zebra_ipv6_add (struct prefix_ipv6 *p,
+                                  struct in6_addr *nexthop,
+                                  unsigned int ifindex, u_char metric);
+extern void ripng_zebra_ipv6_delete (struct prefix_ipv6 *p,
+                                     struct in6_addr *nexthop,
+                                     unsigned int ifindex);
 
-void ripng_redistribute_clean ();
+extern void ripng_redistribute_clean (void);
+extern int ripng_redistribute_check (int);
+extern void ripng_redistribute_write (struct vty *, int);
 
-int ripng_write_rte (int num, struct stream *s, struct prefix_ipv6 *p,
-		     struct in6_addr *nexthop, u_int16_t tag, u_char metric);
-int ripng_send_packet (caddr_t buf, int bufsize, struct sockaddr_in6 *to, 
-		       struct interface *ifp);
+extern int ripng_write_rte (int num, struct stream *s, struct prefix_ipv6 *p,
+                            struct in6_addr *nexthop,
+                            u_int16_t tag, u_char metric);
+extern int ripng_send_packet (caddr_t buf, int bufsize,
+                              struct sockaddr_in6 *to, struct interface *ifp);
 
-void ripng_packet_dump (struct ripng_packet *packet, int size, const char *sndrcv);
+extern void ripng_packet_dump (struct ripng_packet *packet, int size,
+                               const char *sndrcv);
 
+extern int ripng_interface_up (int command, struct zclient *, zebra_size_t);
+extern int ripng_interface_down (int command, struct zclient *, zebra_size_t);
+extern int ripng_interface_add (int command, struct zclient *, zebra_size_t);
+extern int ripng_interface_delete (int command, struct zclient *, zebra_size_t);
+extern int ripng_interface_address_add (int command, struct zclient *, zebra_size_t);
+extern int ripng_interface_address_delete (int command, struct zclient *, zebra_size_t);
+
+extern int ripng_network_write (struct vty *, int);
 
 #endif /* _ZEBRA_RIPNG_RIPNGD_H */