2005-06-28 Paul Jakma <paul.jakma@sun.com>
* (global) Extern and static'ification, with related fixups
of declarations, ensuring files include their own headers, etc.
if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in
list loop
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 677643e..f215266 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,11 @@
+2005-06-28 Paul Jakma <paul.jakma@sun.com>
+
+ * (global) Extern and static'ification, with related fixups
+ of declarations, ensuring files include their own headers, etc.
+ if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in
+ list loop
+
+
2005-06-14 Paul Jakma <paul.jakma@sun.com>
* kernel_socket.c: consolidate the IFAM{ADDR,MASK}GET and
diff --git a/zebra/connected.c b/zebra/connected.c
index 3ce5953..46d2aab 100644
--- a/zebra/connected.c
+++ b/zebra/connected.c
@@ -33,6 +33,7 @@
#include "zebra/zserv.h"
#include "zebra/redistribute.h"
#include "zebra/interface.h"
+#include "zebra/connected.h"
/* If same interface address is already exist... */
struct connected *
@@ -88,7 +89,7 @@
/* Add connected IPv4 route to the interface. */
void
connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
- int prefixlen, struct in_addr *broad, char *label)
+ u_char prefixlen, struct in_addr *broad, char *label)
{
struct prefix_ipv4 *p;
struct connected *ifc;
@@ -226,7 +227,7 @@
/* Delete connected IPv4 route to the interface. */
void
connected_delete_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
- int prefixlen, struct in_addr *broad, char *label)
+ u_char prefixlen, struct in_addr *broad, char *label)
{
struct prefix_ipv4 p;
struct connected *ifc;
diff --git a/zebra/connected.h b/zebra/connected.h
index 7bf13ba..726092a 100644
--- a/zebra/connected.h
+++ b/zebra/connected.h
@@ -23,37 +23,33 @@
#ifndef _ZEBRA_CONNECTED_H
#define _ZEBRA_CONNECTED_H
-struct connected *
+extern struct connected *
connected_check_ipv4 (struct interface *ifp, struct prefix *p);
-void
+extern void
connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
- int prefixlen, struct in_addr *broad, char *label);
+ u_char prefixlen, struct in_addr *broad, char *label);
-void
+extern void
connected_delete_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
- int prefixlen, struct in_addr *broad, char *label);
+ u_char prefixlen, struct in_addr *broad, char *label);
-void
-connected_up_ipv4 (struct interface *, struct connected *);
-void
-connected_down_ipv4 (struct interface *, struct connected *);
+extern void connected_up_ipv4 (struct interface *, struct connected *);
+extern void connected_down_ipv4 (struct interface *, struct connected *);
#ifdef HAVE_IPV6
-struct connected *
+extern struct connected *
connected_check_ipv6 (struct interface *ifp, struct prefix *p);
-void
+extern void
connected_add_ipv6 (struct interface *ifp, struct in6_addr *address,
- int prefixlen, struct in6_addr *broad);
-void
+ u_char prefixlen, struct in6_addr *broad);
+extern void
connected_delete_ipv6 (struct interface *ifp, struct in6_addr *address,
- int prefixlen, struct in6_addr *broad);
-void
-connected_up_ipv6 (struct interface *, struct connected *);
+ u_char prefixlen, struct in6_addr *broad);
-void
-connected_down_ipv6 (struct interface *ifp, struct connected *);
+extern void connected_up_ipv6 (struct interface *, struct connected *);
+extern void connected_down_ipv6 (struct interface *ifp, struct connected *);
#endif /* HAVE_IPV6 */
diff --git a/zebra/debug.c b/zebra/debug.c
index fc99623..8575a66 100644
--- a/zebra/debug.c
+++ b/zebra/debug.c
@@ -201,7 +201,7 @@
1
};
-int
+static int
config_write_debug (struct vty *vty)
{
int write = 0;
@@ -242,7 +242,7 @@
}
void
-zebra_debug_init ()
+zebra_debug_init (void)
{
zebra_debug_event = 0;
zebra_debug_packet = 0;
diff --git a/zebra/debug.h b/zebra/debug.h
index 6eaa957..96b7d8f 100644
--- a/zebra/debug.h
+++ b/zebra/debug.h
@@ -47,6 +47,6 @@
extern unsigned long zebra_debug_packet;
extern unsigned long zebra_debug_kernel;
-void zebra_debug_init ();
+extern void zebra_debug_init (void);
#endif /* _ZEBRA_DEBUG_H */
diff --git a/zebra/if_ioctl.c b/zebra/if_ioctl.c
index 24c4cd7..66d8327 100644
--- a/zebra/if_ioctl.c
+++ b/zebra/if_ioctl.c
@@ -33,8 +33,8 @@
#include "zebra/interface.h"
/* Interface looking up using infamous SIOCGIFCONF. */
-int
-interface_list_ioctl ()
+static int
+interface_list_ioctl (void)
{
int ret;
int sock;
@@ -131,7 +131,7 @@
}
/* Get interface's index by ioctl. */
-int
+static int
if_get_index (struct interface *ifp)
{
#if defined(HAVE_IF_NAMETOINDEX)
@@ -176,7 +176,7 @@
}
#ifdef SIOCGIFHWADDR
-int
+static int
if_get_hwaddr (struct interface *ifp)
{
int ret;
@@ -210,8 +210,8 @@
#ifdef HAVE_GETIFADDRS
#include <ifaddrs.h>
-int
-if_getaddrs ()
+static int
+if_getaddrs (void)
{
int ret;
struct ifaddrs *ifap;
@@ -412,7 +412,7 @@
struct listnode *node, *nnode;
struct interface *ifp;
- for (ALL_LIST_ELEMENTS (iflist, ifp, node, nnode))
+ for (ALL_LIST_ELEMENTS (iflist, node, nnode, ifp))
{
if_get_index (ifp);
#ifdef SIOCGIFHWADDR
diff --git a/zebra/interface.c b/zebra/interface.c
index bd31fb4..8032614 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -43,7 +43,7 @@
/* Called when new interface is added. */
-int
+static int
if_zebra_new_hook (struct interface *ifp)
{
struct zebra_if *zebra_if;
@@ -89,7 +89,7 @@
}
/* Called when interface is deleted. */
-int
+static int
if_zebra_delete_hook (struct interface *ifp)
{
struct zebra_if *zebra_if;
@@ -189,7 +189,7 @@
/* Wake up configured address if it is not in current kernel
address. */
-void
+static void
if_addr_wakeup (struct interface *ifp)
{
struct listnode *node, *nnode;
@@ -490,7 +490,7 @@
}
/* Printout flag information into vty */
-void
+static void
if_flag_dump_vty (struct vty *vty, unsigned long flag)
{
int separator = 0;
@@ -530,7 +530,7 @@
}
/* Output prefix string to vty. */
-int
+static int
prefix_vty_out (struct vty *vty, struct prefix *p)
{
char str[INET6_ADDRSTRLEN];
@@ -541,7 +541,7 @@
}
/* Dump if address information to vty. */
-void
+static void
connected_dump_vty (struct vty *vty, struct connected *connected)
{
struct prefix *p;
@@ -585,7 +585,7 @@
#ifdef RTADV
/* Dump interface ND information to vty. */
-void
+static void
nd_dump_vty (struct vty *vty, struct interface *ifp)
{
struct zebra_if *zif;
@@ -630,7 +630,7 @@
#endif /* RTADV */
/* Interface's information print out to vty interface. */
-void
+static void
if_dump_vty (struct vty *vty, struct interface *ifp)
{
#ifdef HAVE_SOCKADDR_DL
@@ -813,7 +813,7 @@
}
/* Check supported address family. */
-int
+static int
if_supported_family (int family)
{
if (family == AF_INET)
@@ -1141,7 +1141,7 @@
"Set bandwidth informational parameter\n"
"Bandwidth in kilobits\n")
-int
+static int
ip_address_install (struct vty *vty, struct interface *ifp,
const char *addr_str, const char *peer_str,
const char *label)
@@ -1226,7 +1226,7 @@
return CMD_SUCCESS;
}
-int
+static int
ip_address_uninstall (struct vty *vty, struct interface *ifp,
const char *addr_str, const char *peer_str,
const char *label)
@@ -1337,7 +1337,7 @@
#endif /* HAVE_NETLINK */
#ifdef HAVE_IPV6
-int
+static int
ipv6_address_install (struct vty *vty, struct interface *ifp,
const char *addr_str, const char *peer_str,
const char *label, int secondary)
@@ -1415,7 +1415,7 @@
return CMD_SUCCESS;
}
-int
+static int
ipv6_address_uninstall (struct vty *vty, struct interface *ifp,
const char *addr_str, const char *peer_str,
const char *label, int secondry)
@@ -1497,7 +1497,7 @@
}
#endif /* HAVE_IPV6 */
-int
+static int
if_config_write (struct vty *vty)
{
struct listnode *node;
@@ -1571,7 +1571,7 @@
/* Allocate and initialize interface vector. */
void
-zebra_if_init ()
+zebra_if_init (void)
{
/* Initialize interface and new hook. */
if_init ();
diff --git a/zebra/interface.h b/zebra/interface.h
index 0033f7d..0083cba 100644
--- a/zebra/interface.h
+++ b/zebra/interface.h
@@ -203,30 +203,30 @@
};
-void if_delete_update (struct interface *ifp);
-void if_add_update (struct interface *ifp);
-void if_up (struct interface *);
-void if_down (struct interface *);
-void if_refresh (struct interface *);
-int if_subnet_add (struct interface *, struct connected *);
-int if_subnet_delete (struct interface *, struct connected *);
+extern void if_delete_update (struct interface *ifp);
+extern void if_add_update (struct interface *ifp);
+extern void if_up (struct interface *);
+extern void if_down (struct interface *);
+extern void if_refresh (struct interface *);
+extern int if_subnet_add (struct interface *, struct connected *);
+extern int if_subnet_delete (struct interface *, struct connected *);
#ifdef HAVE_PROC_NET_DEV
-int ifstat_update_proc ();
+extern int ifstat_update_proc (void);
#endif /* HAVE_PROC_NET_DEV */
#ifdef HAVE_NET_RT_IFLIST
-void ifstat_update_sysctl ();
+extern void ifstat_update_sysctl (void);
#endif /* HAVE_NET_RT_IFLIST */
#ifdef HAVE_PROC_NET_DEV
-int interface_list_proc ();
+extern int interface_list_proc (void);
#endif /* HAVE_PROC_NET_DEV */
#ifdef HAVE_PROC_NET_IF_INET6
-int ifaddr_proc_ipv6 ();
+extern int ifaddr_proc_ipv6 (void);
#endif /* HAVE_PROC_NET_IF_INET6 */
#ifdef BSDI
-int if_kvm_get_mtu (struct interface *);
+extern int if_kvm_get_mtu (struct interface *);
#endif /* BSDI */
#endif /* _ZEBRA_INTERFACE_H */
diff --git a/zebra/ioctl.c b/zebra/ioctl.c
index 56de810..4137acf 100644
--- a/zebra/ioctl.c
+++ b/zebra/ioctl.c
@@ -75,7 +75,7 @@
}
#ifdef HAVE_IPV6
-int
+static int
if_ioctl_ipv6 (u_long request, caddr_t buffer)
{
int sock;
diff --git a/zebra/ioctl.h b/zebra/ioctl.h
index a82c312..5d9e09f 100644
--- a/zebra/ioctl.h
+++ b/zebra/ioctl.h
@@ -24,27 +24,27 @@
#define _ZEBRA_IOCTL_H
/* Prototypes. */
-void ifreq_set_name (struct ifreq *, struct interface *);
-int if_ioctl (u_long, caddr_t);
+extern void ifreq_set_name (struct ifreq *, struct interface *);
+extern int if_ioctl (u_long, caddr_t);
-int if_set_flags (struct interface *, unsigned long);
-int if_unset_flags (struct interface *, unsigned long);
-void if_get_flags (struct interface *);
+extern int if_set_flags (struct interface *, unsigned long);
+extern int if_unset_flags (struct interface *, unsigned long);
+extern void if_get_flags (struct interface *);
-int if_set_prefix (struct interface *, struct connected *);
-int if_unset_prefix (struct interface *, struct connected *);
+extern int if_set_prefix (struct interface *, struct connected *);
+extern int if_unset_prefix (struct interface *, struct connected *);
-void if_get_metric (struct interface *);
-void if_get_mtu (struct interface *);
+extern void if_get_metric (struct interface *);
+extern void if_get_mtu (struct interface *);
#ifdef HAVE_IPV6
-int if_prefix_add_ipv6 (struct interface *, struct connected *);
-int if_prefix_delete_ipv6 (struct interface *, struct connected *);
+extern int if_prefix_add_ipv6 (struct interface *, struct connected *);
+extern int if_prefix_delete_ipv6 (struct interface *, struct connected *);
#endif /* HAVE_IPV6 */
#ifdef SOLARIS_IPV6
-int if_ioctl_ipv6(u_long, caddr_t);
-struct connected *if_lookup_linklocal( struct interface *);
+extern int if_ioctl_ipv6(u_long, caddr_t);
+extern struct connected *if_lookup_linklocal( struct interface *);
#define AF_IOCTL(af, request, buffer) \
((af) == AF_INET? if_ioctl(request, buffer) : \
diff --git a/zebra/ipforward.h b/zebra/ipforward.h
index a772337..8a935c1 100644
--- a/zebra/ipforward.h
+++ b/zebra/ipforward.h
@@ -22,14 +22,14 @@
#ifndef _ZEBRA_IPFORWARD_H
#define _ZEBRA_IPFORWARD_H
-int ipforward ();
-int ipforward_on ();
-int ipforward_off ();
+extern int ipforward (void);
+extern int ipforward_on (void);
+extern int ipforward_off (void);
#ifdef HAVE_IPV6
-int ipforward_ipv6 ();
-int ipforward_ipv6_on ();
-int ipforward_ipv6_off ();
+extern int ipforward_ipv6 (void);
+extern int ipforward_ipv6_on (void);
+extern int ipforward_ipv6_off (void);
#endif /* HAVE_IPV6 */
#endif /* _ZEBRA_IPFORWARD_H */
diff --git a/zebra/ipforward_proc.c b/zebra/ipforward_proc.c
index f83d88c..7384613 100644
--- a/zebra/ipforward_proc.c
+++ b/zebra/ipforward_proc.c
@@ -25,6 +25,8 @@
#include "log.h"
#include "privs.h"
+#include "zebra/ipforward.h"
+
extern struct zebra_privs_t zserv_privs;
char proc_net_snmp[] = "/proc/net/snmp";
@@ -39,7 +41,7 @@
}
int
-ipforward ()
+ipforward (void)
{
FILE *fp;
int ipforwarding = 0;
@@ -72,7 +74,7 @@
char proc_ipv4_forwarding[] = "/proc/sys/net/ipv4/ip_forward";
int
-ipforward_on ()
+ipforward_on (void)
{
FILE *fp;
@@ -98,7 +100,7 @@
}
int
-ipforward_off ()
+ipforward_off (void)
{
FILE *fp;
@@ -127,7 +129,7 @@
char proc_ipv6_forwarding[] = "/proc/sys/net/ipv6/conf/all/forwarding";
int
-ipforward_ipv6 ()
+ipforward_ipv6 (void)
{
FILE *fp;
char buf[5];
@@ -146,7 +148,7 @@
}
int
-ipforward_ipv6_on ()
+ipforward_ipv6_on (void)
{
FILE *fp;
@@ -172,7 +174,7 @@
}
int
-ipforward_ipv6_off ()
+ipforward_ipv6_off (void)
{
FILE *fp;
diff --git a/zebra/ipforward_solaris.c b/zebra/ipforward_solaris.c
index 3ad2c40..4aa1b79 100644
--- a/zebra/ipforward_solaris.c
+++ b/zebra/ipforward_solaris.c
@@ -25,6 +25,7 @@
#include "prefix.h"
#include "privs.h"
+#include "zebra/ipforward.h"
/*
** Solaris should define IP_DEV_NAME in <inet/ip.h>, but we'll save
@@ -126,37 +127,37 @@
return solaris_nd(ND_GET, parameter, 0);
}
int
-ipforward()
+ipforward(void)
{
return solaris_nd_get("ip_forwarding");
}
int
-ipforward_on ()
+ipforward_on (void)
{
(void) solaris_nd_set("ip_forwarding", 1);
return ipforward();
}
int
-ipforward_off ()
+ipforward_off (void)
{
(void) solaris_nd_set("ip_forwarding", 0);
return ipforward();
}
#ifdef HAVE_IPV6
-int ipforward_ipv6()
+int ipforward_ipv6(void)
{
return solaris_nd_get("ip6_forwarding");
}
int
-ipforward_ipv6_on ()
+ipforward_ipv6_on (void)
{
(void) solaris_nd_set("ip6_forwarding", 1);
return ipforward_ipv6();
}
int
-ipforward_ipv6_off ()
+ipforward_ipv6_off (void)
{
(void) solaris_nd_set("ip6_forwarding", 0);
return ipforward_ipv6();
diff --git a/zebra/ipforward_sysctl.c b/zebra/ipforward_sysctl.c
index a8d0d8c..185aee3 100644
--- a/zebra/ipforward_sysctl.c
+++ b/zebra/ipforward_sysctl.c
@@ -21,6 +21,7 @@
#include <zebra.h>
#include "privs.h"
+#include "zebra/ipforward.h"
#ifdef NRL
#include <netinet6/in6.h>
@@ -42,7 +43,7 @@
};
int
-ipforward ()
+ipforward (void)
{
size_t len;
int ipforwarding = 0;
@@ -57,7 +58,7 @@
}
int
-ipforward_on ()
+ipforward_on (void)
{
size_t len;
int ipforwarding = 1;
@@ -78,7 +79,7 @@
}
int
-ipforward_off ()
+ipforward_off (void)
{
size_t len;
int ipforwarding = 0;
@@ -115,7 +116,7 @@
};
int
-ipforward_ipv6 ()
+ipforward_ipv6 (void)
{
size_t len;
int ip6forwarding = 0;
@@ -136,7 +137,7 @@
}
int
-ipforward_ipv6_on ()
+ipforward_ipv6_on (void)
{
size_t len;
int ip6forwarding = 1;
@@ -157,7 +158,7 @@
}
int
-ipforward_ipv6_off ()
+ipforward_ipv6_off (void)
{
size_t len;
int ip6forwarding = 0;
diff --git a/zebra/main.c b/zebra/main.c
index 540bf31..acfde80 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -37,6 +37,7 @@
#include "zebra/debug.h"
#include "zebra/router-id.h"
#include "zebra/irdp.h"
+#include "zebra/rtadv.h"
/* Zebra instance */
struct zebra_t zebrad =
@@ -149,7 +150,7 @@
}
/* SIGHUP handler. */
-void
+static void
sighup (void)
{
zlog_info ("SIGHUP received");
@@ -159,7 +160,7 @@
}
/* SIGINT handler. */
-void
+static void
sigint (void)
{
/* Decrared in rib.c */
@@ -177,7 +178,7 @@
}
/* SIGUSR1 handler. */
-void
+static void
sigusr1 (void)
{
zlog_rotate (NULL);
@@ -215,8 +216,6 @@
char *config_file = NULL;
char *progname;
struct thread thread;
- void rib_weed_tables ();
- void zebra_vty_init ();
/* Set umask before anything for security */
umask (0027);
diff --git a/zebra/redistribute.h b/zebra/redistribute.h
index 14b92b0..9e78dfd 100644
--- a/zebra/redistribute.h
+++ b/zebra/redistribute.h
@@ -26,25 +26,25 @@
#include "table.h"
#include "zserv.h"
-void zebra_redistribute_add (int, struct zserv *, int);
-void zebra_redistribute_delete (int, struct zserv *, int);
+extern void zebra_redistribute_add (int, struct zserv *, int);
+extern void zebra_redistribute_delete (int, struct zserv *, int);
-void zebra_redistribute_default_add (int, struct zserv *, int);
-void zebra_redistribute_default_delete (int, struct zserv *, int);
+extern void zebra_redistribute_default_add (int, struct zserv *, int);
+extern void zebra_redistribute_default_delete (int, struct zserv *, int);
-void redistribute_add (struct prefix *, struct rib *);
-void redistribute_delete (struct prefix *, struct rib *);
+extern void redistribute_add (struct prefix *, struct rib *);
+extern void redistribute_delete (struct prefix *, struct rib *);
-void zebra_interface_up_update (struct interface *);
-void zebra_interface_down_update (struct interface *);
+extern void zebra_interface_up_update (struct interface *);
+extern void zebra_interface_down_update (struct interface *);
-void zebra_interface_add_update (struct interface *);
-void zebra_interface_delete_update (struct interface *);
+extern void zebra_interface_add_update (struct interface *);
+extern void zebra_interface_delete_update (struct interface *);
-void zebra_interface_address_add_update (struct interface *,
- struct connected *);
-void zebra_interface_address_delete_update (struct interface *,
- struct connected *c);
+extern void zebra_interface_address_add_update (struct interface *,
+ struct connected *);
+extern void zebra_interface_address_delete_update (struct interface *,
+ struct connected *c);
#endif /* _ZEBRA_REDISTRIBUTE_H */
diff --git a/zebra/rib.h b/zebra/rib.h
index 1e6393e..dbd2a6b 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -201,70 +201,67 @@
struct route_table *stable[AFI_MAX][SAFI_MAX];
};
-struct nexthop *nexthop_ifindex_add (struct rib *, unsigned int);
-struct nexthop *nexthop_ifname_add (struct rib *, char *);
-struct nexthop *nexthop_blackhole_add (struct rib *);
-struct nexthop *nexthop_ipv4_add (struct rib *, struct in_addr *);
+extern struct nexthop *nexthop_ifindex_add (struct rib *, unsigned int);
+extern struct nexthop *nexthop_ifname_add (struct rib *, char *);
+extern struct nexthop *nexthop_blackhole_add (struct rib *);
+extern struct nexthop *nexthop_ipv4_add (struct rib *, struct in_addr *);
#ifdef HAVE_IPV6
-struct nexthop *nexthop_ipv6_add (struct rib *, struct in6_addr *);
+extern struct nexthop *nexthop_ipv6_add (struct rib *, struct in6_addr *);
#endif /* HAVE_IPV6 */
-struct vrf *vrf_lookup (u_int32_t);
-struct route_table *vrf_table (afi_t afi, safi_t safi, u_int32_t id);
-struct route_table *vrf_static_table (afi_t afi, safi_t safi, u_int32_t id);
+extern struct vrf *vrf_lookup (u_int32_t);
+extern struct route_table *vrf_table (afi_t afi, safi_t safi, u_int32_t id);
+extern struct route_table *vrf_static_table (afi_t afi, safi_t safi, u_int32_t id);
-int
-rib_add_ipv4 (int type, int flags, struct prefix_ipv4 *p,
- struct in_addr *gate, unsigned int ifindex, u_int32_t vrf_id,
- u_int32_t, u_char);
+extern int rib_add_ipv4 (int type, int flags, struct prefix_ipv4 *p,
+ struct in_addr *gate, unsigned int ifindex,
+ u_int32_t vrf_id, u_int32_t, u_char);
-int
-rib_add_ipv4_multipath (struct prefix_ipv4 *, struct rib *);
+extern int rib_add_ipv4_multipath (struct prefix_ipv4 *, struct rib *);
-int
-rib_delete_ipv4 (int type, int flags, struct prefix_ipv4 *p,
- struct in_addr *gate, unsigned int ifindex, u_int32_t);
+extern int rib_delete_ipv4 (int type, int flags, struct prefix_ipv4 *p,
+ struct in_addr *gate, unsigned int ifindex,
+ u_int32_t);
-struct rib *
-rib_match_ipv4 (struct in_addr);
+extern struct rib *rib_match_ipv4 (struct in_addr);
-struct rib *
-rib_lookup_ipv4 (struct prefix_ipv4 *);
+extern struct rib *rib_lookup_ipv4 (struct prefix_ipv4 *);
-void rib_update ();
-void rib_sweep_route ();
-void rib_close ();
-void rib_init ();
+extern void rib_update (void);
+extern void rib_weed_tables (void);
+extern void rib_sweep_route (void);
+extern void rib_close (void);
+extern void rib_init (void);
-int
+extern int
static_add_ipv4 (struct prefix *p, struct in_addr *gate, const char *ifname,
u_char flags, u_char distance, u_int32_t vrf_id);
-int
+extern int
static_delete_ipv4 (struct prefix *p, struct in_addr *gate, const char *ifname,
u_char distance, u_int32_t vrf_id);
#ifdef HAVE_IPV6
-int
+extern int
rib_add_ipv6 (int type, int flags, struct prefix_ipv6 *p,
struct in6_addr *gate, unsigned int ifindex, u_int32_t vrf_id);
-int
+extern int
rib_delete_ipv6 (int type, int flags, struct prefix_ipv6 *p,
struct in6_addr *gate, unsigned int ifindex, u_int32_t vrf_id);
-struct rib *rib_lookup_ipv6 (struct in6_addr *);
+extern struct rib *rib_lookup_ipv6 (struct in6_addr *);
-struct rib *rib_match_ipv6 (struct in6_addr *);
+extern struct rib *rib_match_ipv6 (struct in6_addr *);
extern struct route_table *rib_table_ipv6;
-int
+extern int
static_add_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
const char *ifname, u_char flags, u_char distance,
u_int32_t vrf_id);
-int
+extern int
static_delete_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
const char *ifname, u_char distance, u_int32_t vrf_id);
diff --git a/zebra/router-id.c b/zebra/router-id.c
index 6194582..c73b65b 100644
--- a/zebra/router-id.c
+++ b/zebra/router-id.c
@@ -38,6 +38,7 @@
#include "rib.h"
#include "zebra/zserv.h"
+#include "zebra/router-id.h"
static struct list rid_all_sorted_list;
static struct list rid_lo_sorted_list;
@@ -228,7 +229,7 @@
return CMD_SUCCESS;
}
-int
+static int
router_id_cmp (void *a, void *b)
{
unsigned int A, B;
diff --git a/zebra/rt.h b/zebra/rt.h
index faaddab..e902b21 100644
--- a/zebra/rt.h
+++ b/zebra/rt.h
@@ -23,17 +23,17 @@
#ifndef _ZEBRA_RT_H
#define _ZEBRA_RT_H
-int kernel_add_ipv4 (struct prefix *, struct rib *);
-int kernel_delete_ipv4 (struct prefix *, struct rib *);
-int kernel_add_route (struct prefix_ipv4 *, struct in_addr *, int, int);
-int kernel_address_add_ipv4 (struct interface *, struct connected *);
-int kernel_address_delete_ipv4 (struct interface *, struct connected *);
+extern int kernel_add_ipv4 (struct prefix *, struct rib *);
+extern int kernel_delete_ipv4 (struct prefix *, struct rib *);
+extern int kernel_add_route (struct prefix_ipv4 *, struct in_addr *, int, int);
+extern int kernel_address_add_ipv4 (struct interface *, struct connected *);
+extern int kernel_address_delete_ipv4 (struct interface *, struct connected *);
#ifdef HAVE_IPV6
-int kernel_add_ipv6 (struct prefix *, struct rib *);
-int kernel_delete_ipv6 (struct prefix *, struct rib *);
-int kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
- unsigned int index, int flags, int table);
+extern int kernel_add_ipv6 (struct prefix *, struct rib *);
+extern int kernel_delete_ipv6 (struct prefix *, struct rib *);
+extern int kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
+ unsigned int index, int flags, int table);
#endif /* HAVE_IPV6 */
diff --git a/zebra/rt_ioctl.c b/zebra/rt_ioctl.c
index a8e9e52..f4997e2 100644
--- a/zebra/rt_ioctl.c
+++ b/zebra/rt_ioctl.c
@@ -26,19 +26,21 @@
#include "log.h"
#include "if.h"
+#include "zebra/zserv.h"
#include "zebra/rib.h"
#include "zebra/debug.h"
+#include "zebra/rt.h"
/* Initialize of kernel interface. There is no kernel communication
support under ioctl(). So this is dummy stub function. */
void
-kernel_init ()
+kernel_init (void)
{
return;
}
/* Dummy function of routing socket. */
-void
+static void
kernel_read (int sock)
{
return;
@@ -160,7 +162,7 @@
}
/* Interface to ioctl route message. */
-int
+static int
kernel_ioctl_ipv4 (u_long cmd, struct prefix *p, struct rib *rib, int family)
{
int ret;
@@ -360,7 +362,7 @@
#include <linux/ipv6_route.h>
#endif
-int
+static int
kernel_ioctl_ipv6 (u_long type, struct prefix_ipv6 *dest, struct in6_addr *gate,
int index, int flags)
{
@@ -421,7 +423,7 @@
return ret;
}
-int
+static int
kernel_ioctl_ipv6_multipath (u_long cmd, struct prefix *p, struct rib *rib,
int family)
{
@@ -551,7 +553,7 @@
/* Delete IPv6 route from the kernel. */
int
kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
- int index, int flags, int table)
+ unsigned int index, int flags, int table)
{
return kernel_ioctl_ipv6 (SIOCDELRT, dest, gate, index, flags);
}
diff --git a/zebra/rtadv.c b/zebra/rtadv.c
index 3e22398..83c3e77 100644
--- a/zebra/rtadv.c
+++ b/zebra/rtadv.c
@@ -62,10 +62,10 @@
enum rtadv_event {RTADV_START, RTADV_STOP, RTADV_TIMER,
RTADV_TIMER_MSEC, RTADV_READ};
-void rtadv_event (enum rtadv_event, int);
+static void rtadv_event (enum rtadv_event, int);
-int if_join_all_router (int, struct interface *);
-int if_leave_all_router (int, struct interface *);
+static int if_join_all_router (int, struct interface *);
+static int if_leave_all_router (int, struct interface *);
/* Structure which hold status of router advertisement. */
struct rtadv
@@ -81,8 +81,8 @@
struct rtadv *rtadv = NULL;
-struct rtadv *
-rtadv_new ()
+static struct rtadv *
+rtadv_new (void)
{
struct rtadv *new;
new = XMALLOC (MTYPE_TMP, sizeof (struct rtadv));
@@ -90,13 +90,13 @@
return new;
}
-void
+static void
rtadv_free (struct rtadv *rtadv)
{
XFREE (MTYPE_TMP, rtadv);
}
-int
+static int
rtadv_recv_packet (int sock, u_char *buf, int buflen,
struct sockaddr_in6 *from, unsigned int *ifindex,
int *hoplimit)
@@ -149,7 +149,7 @@
#define RTADV_MSG_SIZE 4096
/* Send router advertisement packet. */
-void
+static void
rtadv_send_packet (int sock, struct interface *ifp)
{
struct msghdr msg;
@@ -333,7 +333,7 @@
}
}
-int
+static int
rtadv_timer (struct thread *thread)
{
struct listnode *node, *nnode;
@@ -373,7 +373,7 @@
return 0;
}
-void
+static void
rtadv_process_solicit (struct interface *ifp)
{
zlog_info ("Router solicitation received on %s", ifp->name);
@@ -381,13 +381,13 @@
rtadv_send_packet (rtadv->sock, ifp);
}
-void
-rtadv_process_advert ()
+static void
+rtadv_process_advert (void)
{
zlog_info ("Router advertisement received");
}
-void
+static void
rtadv_process_packet (u_char *buf, unsigned int len, unsigned int ifindex, int hoplimit)
{
struct icmp6_hdr *icmph;
@@ -444,7 +444,7 @@
return;
}
-int
+static int
rtadv_read (struct thread *thread)
{
int sock;
@@ -473,7 +473,7 @@
return 0;
}
-int
+static int
rtadv_make_socket (void)
{
int sock;
@@ -526,7 +526,7 @@
return sock;
}
-struct rtadv_prefix *
+static struct rtadv_prefix *
rtadv_prefix_new ()
{
struct rtadv_prefix *new;
@@ -537,13 +537,13 @@
return new;
}
-void
+static void
rtadv_prefix_free (struct rtadv_prefix *rtadv_prefix)
{
XFREE (MTYPE_RTADV_PREFIX, rtadv_prefix);
}
-struct rtadv_prefix *
+static struct rtadv_prefix *
rtadv_prefix_lookup (struct list *rplist, struct prefix *p)
{
struct listnode *node;
@@ -555,7 +555,7 @@
return NULL;
}
-struct rtadv_prefix *
+static struct rtadv_prefix *
rtadv_prefix_get (struct list *rplist, struct prefix *p)
{
struct rtadv_prefix *rprefix;
@@ -571,7 +571,7 @@
return rprefix;
}
-void
+static void
rtadv_prefix_set (struct zebra_if *zif, struct rtadv_prefix *rp)
{
struct rtadv_prefix *rprefix;
@@ -586,7 +586,7 @@
rprefix->AdvRouterAddressFlag = rp->AdvRouterAddressFlag;
}
-int
+static int
rtadv_prefix_reset (struct zebra_if *zif, struct rtadv_prefix *rp)
{
struct rtadv_prefix *rprefix;
@@ -1448,7 +1448,7 @@
}
-void
+static void
rtadv_event (enum rtadv_event event, int val)
{
switch (event)
@@ -1493,7 +1493,7 @@
}
void
-rtadv_init ()
+rtadv_init (void)
{
int sock;
@@ -1542,7 +1542,7 @@
install_element (INTERFACE_NODE, &no_ipv6_nd_prefix_cmd);
}
-int
+static int
if_join_all_router (int sock, struct interface *ifp)
{
int ret;
@@ -1563,7 +1563,7 @@
return 0;
}
-int
+static int
if_leave_all_router (int sock, struct interface *ifp)
{
int ret;
@@ -1586,7 +1586,7 @@
#else
void
-rtadv_init ()
+rtadv_init (void)
{
/* Empty.*/;
}
diff --git a/zebra/rtadv.h b/zebra/rtadv.h
index d52c2c0..c2855a3 100644
--- a/zebra/rtadv.h
+++ b/zebra/rtadv.h
@@ -52,7 +52,8 @@
};
-void rtadv_config_write (struct vty *, struct interface *);
+extern void rtadv_config_write (struct vty *, struct interface *);
+extern void rtadv_init (void);
/* draft-ietf-mip6-mipext-advapi-03 */
diff --git a/zebra/rtread_proc.c b/zebra/rtread_proc.c
index 491fc98..ab3891a 100644
--- a/zebra/rtread_proc.c
+++ b/zebra/rtread_proc.c
@@ -27,6 +27,9 @@
#include "if.h"
#include "rib.h"
+#include "zebra/zserv.h"
+#include "zebra/rt.h"
+
/* Proc file system to read IPv4 routing table. */
#ifndef _PATH_PROCNET_ROUTE
#define _PATH_PROCNET_ROUTE "/proc/net/route"
@@ -44,8 +47,8 @@
#define RT_BUFSIZ 1024
/* Kernel routing table read up by /proc filesystem. */
-int
-proc_route_read ()
+static int
+proc_route_read (void)
{
FILE *fp;
char buf[RT_BUFSIZ];
@@ -101,7 +104,7 @@
}
#ifdef HAVE_IPV6
-int
+static int
proc_ipv6_route_read ()
{
FILE *fp;
@@ -162,7 +165,7 @@
#endif /* HAVE_IPV6 */
void
-route_read ()
+route_read (void)
{
proc_route_read ();
#ifdef HAVE_IPV6
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index a8aaef3..da6a3a8 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -71,7 +71,7 @@
vector vrf_vector;
/* Allocate new VRF. */
-struct vrf *
+static struct vrf *
vrf_alloc (const char *name)
{
struct vrf *vrf;
@@ -92,7 +92,7 @@
}
/* Free VRF. */
-void
+static void
vrf_free (struct vrf *vrf)
{
if (vrf->name)
@@ -108,7 +108,7 @@
}
/* Lookup VRF by name. */
-struct vrf *
+static struct vrf *
vrf_lookup_by_name (char *name)
{
unsigned int i;
@@ -122,8 +122,8 @@
}
/* Initialize VRF. */
-void
-vrf_init ()
+static void
+vrf_init (void)
{
struct vrf *default_table;
@@ -164,7 +164,7 @@
}
/* Add nexthop to the end of the list. */
-void
+static void
nexthop_add (struct rib *rib, struct nexthop *nexthop)
{
struct nexthop *last;
@@ -181,7 +181,7 @@
}
/* Delete specified nexthop from the list. */
-void
+static void
nexthop_delete (struct rib *rib, struct nexthop *nexthop)
{
if (nexthop->next)
@@ -194,7 +194,7 @@
}
/* Free nexthop. */
-void
+static void
nexthop_free (struct nexthop *nexthop)
{
if (nexthop->ifname)
@@ -247,7 +247,7 @@
return nexthop;
}
-struct nexthop *
+static struct nexthop *
nexthop_ipv4_ifindex_add (struct rib *rib, struct in_addr *ipv4,
unsigned int ifindex)
{
@@ -280,7 +280,7 @@
return nexthop;
}
-struct nexthop *
+static struct nexthop *
nexthop_ipv6_ifname_add (struct rib *rib, struct in6_addr *ipv6,
char *ifname)
{
@@ -297,7 +297,7 @@
return nexthop;
}
-struct nexthop *
+static struct nexthop *
nexthop_ipv6_ifindex_add (struct rib *rib, struct in6_addr *ipv6,
unsigned int ifindex)
{
@@ -332,7 +332,7 @@
/* If force flag is not set, do not modify falgs at all for uninstall
the route from FIB. */
-int
+static int
nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
struct route_node *top)
{
@@ -429,7 +429,7 @@
#ifdef HAVE_IPV6
/* If force flag is not set, do not modify falgs at all for uninstall
the route from FIB. */
-int
+static int
nexthop_active_ipv6 (struct rib *rib, struct nexthop *nexthop, int set,
struct route_node *top)
{
@@ -685,7 +685,7 @@
}
#endif /* HAVE_IPV6 */
-int
+static int
nexthop_active_check (struct route_node *rn, struct rib *rib,
struct nexthop *nexthop, int set)
{
@@ -757,7 +757,7 @@
return CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
}
-int
+static int
nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
{
struct nexthop *nexthop;
@@ -816,7 +816,7 @@
return rib;
}
-void
+static void
rib_install_kernel (struct route_node *rn, struct rib *rib)
{
int ret = 0;
@@ -842,7 +842,7 @@
}
/* Uninstall the route from kernel. */
-int
+static int
rib_uninstall_kernel (struct route_node *rn, struct rib *rib)
{
int ret = 0;
@@ -867,7 +867,7 @@
}
/* Uninstall the route from kernel. */
-void
+static void
rib_uninstall (struct route_node *rn, struct rib *rib)
{
if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
@@ -880,7 +880,7 @@
}
/* Core function for processing routing information base. */
-wq_item_status
+static wq_item_status
rib_process (struct zebra_queue_node_t *qnode)
{
struct rib *rib;
@@ -999,7 +999,7 @@
}
/* Add work queue item to work queue and schedule processing */
-void
+static void
rib_queue_add_qnode (struct zebra_t *zebra, struct zebra_queue_node_t *qnode)
{
route_lock_node (qnode->node);
@@ -1025,7 +1025,7 @@
}
/* Add route node and rib to work queue and schedule processing */
-void
+static void
rib_queue_add (struct zebra_t *zebra, struct route_node *rn, struct rib *del)
{
struct zebra_queue_node_t *qnode;
@@ -1051,7 +1051,7 @@
}
/* free zebra_queue_node_t */
-void
+static void
rib_queue_qnode_del (struct zebra_queue_node_t *qnode)
{
route_unlock_node (qnode->node);
@@ -1063,7 +1063,7 @@
}
/* initialise zebra rib work queue */
-void
+static void
rib_queue_init (struct zebra_t *zebra)
{
assert (zebra);
@@ -1088,7 +1088,7 @@
}
/* Add RIB to head of the route node. */
-void
+static void
rib_addnode (struct route_node *rn, struct rib *rib)
{
struct rib *head;
@@ -1105,7 +1105,7 @@
rn->info = rib;
}
-void
+static void
rib_delnode (struct route_node *rn, struct rib *rib)
{
assert (rn && rib);
@@ -1418,7 +1418,7 @@
}
/* Install static route into rib. */
-void
+static void
static_install_ipv4 (struct prefix *p, struct static_ipv4 *si)
{
struct rib *rib;
@@ -1489,7 +1489,7 @@
}
}
-int
+static int
static_ipv4_nexthop_same (struct nexthop *nexthop, struct static_ipv4 *si)
{
if (nexthop->type == NEXTHOP_TYPE_IPV4
@@ -1507,7 +1507,7 @@
}
/* Uninstall static route from RIB. */
-void
+static void
static_uninstall_ipv4 (struct prefix *p, struct static_ipv4 *si)
{
struct route_node *rn;
@@ -1725,7 +1725,7 @@
#ifdef HAVE_IPV6
-int
+static int
rib_bogus_ipv6 (int type, struct prefix_ipv6 *p,
struct in6_addr *gate, unsigned int ifindex, int table)
{
@@ -1967,7 +1967,7 @@
}
/* Install static route into rib. */
-void
+static void
static_install_ipv6 (struct prefix *p, struct static_ipv6 *si)
{
struct rib *rib;
@@ -2039,7 +2039,7 @@
}
}
-int
+static int
static_ipv6_nexthop_same (struct nexthop *nexthop, struct static_ipv6 *si)
{
if (nexthop->type == NEXTHOP_TYPE_IPV6
@@ -2058,7 +2058,7 @@
return 0;;
}
-void
+static void
static_uninstall_ipv6 (struct prefix *p, struct static_ipv6 *si)
{
struct route_table *table;
@@ -2250,7 +2250,7 @@
/* RIB update function. */
void
-rib_update ()
+rib_update (void)
{
struct route_node *rn;
struct route_table *table;
@@ -2269,21 +2269,21 @@
}
/* Interface goes up. */
-void
+static void
rib_if_up (struct interface *ifp)
{
rib_update ();
}
/* Interface goes down. */
-void
+static void
rib_if_down (struct interface *ifp)
{
rib_update ();
}
/* Remove all routes which comes from non main table. */
-void
+static void
rib_weed_table (struct route_table *table)
{
struct route_node *rn;
@@ -2304,14 +2304,14 @@
/* Delete all routes from non main table. */
void
-rib_weed_tables ()
+rib_weed_tables (void)
{
rib_weed_table (vrf_table (AFI_IP, SAFI_UNICAST, 0));
rib_weed_table (vrf_table (AFI_IP6, SAFI_UNICAST, 0));
}
/* Delete self installed routes after zebra is relaunched. */
-void
+static void
rib_sweep_table (struct route_table *table)
{
struct route_node *rn;
@@ -2337,14 +2337,14 @@
/* Sweep all RIB tables. */
void
-rib_sweep_route ()
+rib_sweep_route (void)
{
rib_sweep_table (vrf_table (AFI_IP, SAFI_UNICAST, 0));
rib_sweep_table (vrf_table (AFI_IP6, SAFI_UNICAST, 0));
}
/* Close RIB and clean up kernel routes. */
-void
+static void
rib_close_table (struct route_table *table)
{
struct route_node *rn;
@@ -2360,7 +2360,7 @@
/* Close all RIB tables. */
void
-rib_close ()
+rib_close (void)
{
rib_close_table (vrf_table (AFI_IP, SAFI_UNICAST, 0));
rib_close_table (vrf_table (AFI_IP6, SAFI_UNICAST, 0));
@@ -2368,7 +2368,7 @@
/* Routing information base initialize. */
void
-rib_init ()
+rib_init (void)
{
rib_queue_init (&zebrad);
/* VRF initialization. */
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index 9830e5b..ad91d95 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -27,8 +27,10 @@
#include "table.h"
#include "rib.h"
+#include "zebra/zserv.h"
+
/* Return route type string for VTY output. */
-const char *
+static const char *
route_type_str (u_char type)
{
switch (type)
@@ -59,7 +61,7 @@
};
/* Return route type string for VTY output. */
-char
+static const char
route_type_char (u_char type)
{
switch (type)
@@ -90,7 +92,7 @@
};
/* General fucntion for static route. */
-int
+static int
zebra_static_ipv4 (struct vty *vty, int add_cmd, const char *dest_str,
const char *mask_str, const char *gate_str,
const char *flag_str, const char *distance_str)
@@ -535,7 +537,7 @@
}
/* New RIB. Detailed information for IPv4 route. */
-void
+static void
vty_show_ip_route_detail (struct vty *vty, struct route_node *rn)
{
struct rib *rib;
@@ -641,7 +643,7 @@
}
}
-void
+static void
vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib)
{
struct nexthop *nexthop;
@@ -1008,7 +1010,7 @@
return CMD_SUCCESS;
}
-void
+static void
zebra_show_ip_route (struct vty *vty, struct vrf *vrf)
{
vty_out (vty, "IP routing table name is %s(%d)%s",
@@ -1059,7 +1061,7 @@
}
/* Write IPv4 static route configuration. */
-int
+static int
static_config_ipv4 (struct vty *vty)
{
struct route_node *rn;
@@ -1115,7 +1117,7 @@
#ifdef HAVE_IPV6
/* General fucntion for IPv6 static route. */
-int
+static int
static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str,
const char *gate_str, const char *ifname,
const char *flag_str, const char *distance_str)
@@ -1420,7 +1422,7 @@
}
/* New RIB. Detailed information for IPv6 route. */
-void
+static void
vty_show_ipv6_route_detail (struct vty *vty, struct route_node *rn)
{
struct rib *rib;
@@ -1535,7 +1537,7 @@
}
}
-void
+static void
vty_show_ipv6_route (struct vty *vty, struct route_node *rn,
struct rib *rib)
{
@@ -1867,7 +1869,7 @@
/* Write IPv6 static route configuration. */
-int
+static int
static_config_ipv6 (struct vty *vty)
{
struct route_node *rn;
@@ -1921,7 +1923,7 @@
#endif /* HAVE_IPV6 */
/* Static ip route configuration write function. */
-int
+static int
zebra_ip_config (struct vty *vty)
{
int write = 0;
@@ -1939,7 +1941,7 @@
/* Route VTY. */
void
-zebra_vty_route_init ()
+zebra_vty_init (void)
{
install_node (&ip_node, zebra_ip_config);
@@ -2014,9 +2016,3 @@
install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd);
#endif /* HAVE_IPV6 */
}
-
-void
-zebra_vty_init ()
-{
- zebra_vty_route_init ();
-}
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 17e7888..f08f7ce 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -1729,7 +1729,7 @@
/* Initialisation of zebra and installation of commands. */
void
-zebra_init ()
+zebra_init (void)
{
/* Client list init. */
zebrad.client_list = list_new ();
diff --git a/zebra/zserv.h b/zebra/zserv.h
index 6627015..8e67c60 100644
--- a/zebra/zserv.h
+++ b/zebra/zserv.h
@@ -85,25 +85,26 @@
#define PSIZE(a) (((a) + 7) / (8))
/* Prototypes. */
-void zebra_init ();
-void zebra_if_init ();
-void hostinfo_get ();
-void rib_init ();
-void interface_list ();
-void kernel_init ();
-void route_read ();
-void rtadv_init ();
-void zebra_snmp_init ();
+extern void zebra_init (void);
+extern void zebra_if_init (void);
+extern void hostinfo_get (void);
+extern void rib_init (void);
+extern void interface_list (void);
+extern void kernel_init (void);
+extern void route_read (void);
+extern void zebra_snmp_init (void);
+extern void zebra_vty_init (void);
-int zsend_interface_add (struct zserv *, struct interface *);
+extern int zsend_interface_add (struct zserv *, struct interface *);
#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
-int zsend_interface_delete (struct zserv *, struct interface *);
+extern int zsend_interface_delete (struct zserv *, struct interface *);
#endif
-int zsend_interface_address (int, struct zserv *, struct interface *,
- struct connected *);
-int zsend_interface_update (int, struct zserv *, struct interface *);
-int zsend_route_multipath (int, struct zserv *, struct prefix *, struct rib *);
-int zsend_router_id_update(struct zserv *, struct prefix *);
+extern int zsend_interface_address (int, struct zserv *, struct interface *,
+ struct connected *);
+extern int zsend_interface_update (int, struct zserv *, struct interface *);
+extern int zsend_route_multipath (int, struct zserv *, struct prefix *,
+ struct rib *);
+extern int zsend_router_id_update(struct zserv *, struct prefix *);
extern pid_t pid;
extern pid_t old_pid;