summaryrefslogtreecommitdiff
path: root/zebra/irdp_interface.c
diff options
context:
space:
mode:
authorajs <ajs>2005-03-30 16:33:13 +0000
committerajs <ajs>2005-03-30 16:33:13 +0000
commit2da40f4919f6268d4935c42a358739ffdf3a48dc (patch)
treeaa40f9570647e8631ed5d74371f9c11bec25a98f /zebra/irdp_interface.c
parenta608bbf27b48b7bd5e63f1c46380a1c5288ba48a (diff)
2005-03-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* irdp.h: Add prototype for irdp_sock_init, and fix protos for other irdp_* functions. * irdp_interface.c: (irdp_if_start) If irdp_sock is negative, call irdp_sock_init to create the IRDP socket. (irdp_if_init) Rename to irdp_init(). (get_iflist_ifp) Remove function that is a duplicate of if_lookup_by_index. (*) Make many functions static. And remove superfluous "\n" from several zlog messages. * irdp_main.c: (irdp_init) Remove function that used to call irdp_if_init() and irdp_sock_init(), since we will now create the socket only upon first use. (irdp_sock_init) Do not update global irdp_sock variable, just return the fd and assume that the caller will do so. If setsockopt calls fail, close the socket before returning -1. (*) Make many functions static. * irdp_packet.c: Initialize irdp_sock to -1. (irdp_read_raw) Call standard library function if_lookup_by_index instead of get_iflist_ifp. (irdp_recvmsg) Should be static, not global.
Diffstat (limited to 'zebra/irdp_interface.c')
-rw-r--r--zebra/irdp_interface.c69
1 files changed, 36 insertions, 33 deletions
diff --git a/zebra/irdp_interface.c b/zebra/irdp_interface.c
index 983969f1..5f913856 100644
--- a/zebra/irdp_interface.c
+++ b/zebra/irdp_interface.c
@@ -74,7 +74,8 @@ void irdp_advert_off(struct interface *ifp);
char b1[16], b2[16], b3[16], b4[16]; /* For inet_2a */
-struct prefix *irdp_get_prefix(struct interface *ifp)
+static struct prefix *
+irdp_get_prefix(struct interface *ifp)
{
struct listnode *node;
struct connected *ifc;
@@ -87,7 +88,8 @@ struct prefix *irdp_get_prefix(struct interface *ifp)
}
/* Join to the add/leave multicast group. */
-int if_group (struct interface *ifp,
+static int
+if_group (struct interface *ifp,
int sock,
u_int32_t group,
int add_leave)
@@ -121,7 +123,8 @@ int if_group (struct interface *ifp,
return ret;
}
-int if_add_group (struct interface *ifp)
+static int
+if_add_group (struct interface *ifp)
{
struct zebra_if *zi= ifp->info;
struct irdp_interface *irdp = &zi->irdp;
@@ -133,12 +136,14 @@ int if_add_group (struct interface *ifp)
}
if(irdp->flags & IF_DEBUG_MISC )
- zlog_debug("IRDP: Adding group %s for %s\n",
+ zlog_debug("IRDP: Adding group %s for %s",
inet_2a(htonl(INADDR_ALLRTRS_GROUP), b1),
ifp->name);
return 0;
}
-int if_drop_group (struct interface *ifp)
+
+static int
+if_drop_group (struct interface *ifp)
{
struct zebra_if *zi= ifp->info;
struct irdp_interface *irdp = &zi->irdp;
@@ -149,25 +154,13 @@ int if_drop_group (struct interface *ifp)
return ret;
if(irdp->flags & IF_DEBUG_MISC)
- zlog_debug("IRDP: Leaving group %s for %s\n",
+ zlog_debug("IRDP: Leaving group %s for %s",
inet_2a(htonl(INADDR_ALLRTRS_GROUP), b1),
ifp->name);
return 0;
}
-struct interface *get_iflist_ifp(unsigned int idx)
-{
- struct listnode *node;
- struct interface *ifp;
-
- LIST_LOOP (iflist, ifp, node)
- if(ifp->ifindex == idx)
- return ifp;
-
- return NULL;
-}
-
-void
+static void
if_set_defaults(struct interface *ifp)
{
struct zebra_if *zi=ifp->info;
@@ -180,7 +173,7 @@ if_set_defaults(struct interface *ifp)
}
-struct Adv *Adv_new ()
+struct Adv *Adv_new (void)
{
struct Adv *new;
new = XMALLOC (MTYPE_TMP, sizeof (struct Adv));
@@ -188,12 +181,14 @@ struct Adv *Adv_new ()
return new;
}
-void Adv_free (struct Adv *adv)
+static void
+Adv_free (struct Adv *adv)
{
XFREE (MTYPE_TMP, adv);
}
-void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
+static void
+irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
{
struct zebra_if *zi= ifp->info;
struct irdp_interface *irdp = &zi->irdp;
@@ -202,7 +197,12 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
u_int32_t timer, seed;
if (irdp->flags & IF_ACTIVE ) {
- zlog_warn("IRDP: Interface is already active %s\n", ifp->name);
+ zlog_warn("IRDP: Interface is already active %s", ifp->name);
+ return;
+ }
+ if ((irdp_sock < 0) && ((irdp_sock = irdp_sock_init()) < 0)) {
+ zlog_warn("IRDP: Cannot activate interface %s (cannot create "
+ "IRDP socket)", ifp->name);
return;
}
irdp->flags |= IF_ACTIVE;
@@ -213,7 +213,7 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
if_add_update(ifp);
if (! (ifp->flags & IFF_UP)) {
- zlog_warn("IRDP: Interface is down %s\n", ifp->name);
+ zlog_warn("IRDP: Interface is down %s", ifp->name);
}
/* Shall we cancel if_start if if_add_group fails? */
@@ -222,7 +222,7 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
if_add_group(ifp);
if (! (ifp->flags & (IFF_MULTICAST|IFF_ALLMULTI))) {
- zlog_warn("IRDP: Interface not multicast enabled %s\n", ifp->name);
+ zlog_warn("IRDP: Interface not multicast enabled %s", ifp->name);
}
}
@@ -256,7 +256,7 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
if(irdp->flags & IF_DEBUG_MISC)
- zlog_debug("IRDP: Init timer for %s set to %u\n",
+ zlog_debug("IRDP: Init timer for %s set to %u",
ifp->name,
timer);
@@ -266,7 +266,8 @@ void irdp_if_start(struct interface *ifp, int multicast, int set_defaults)
timer);
}
-void irdp_if_stop(struct interface *ifp)
+static void
+irdp_if_stop(struct interface *ifp)
{
struct zebra_if *zi=ifp->info;
struct irdp_interface *irdp=&zi->irdp;
@@ -277,7 +278,7 @@ void irdp_if_stop(struct interface *ifp)
}
if (! (irdp->flags & IF_ACTIVE )) {
- zlog_warn("Interface is not active %s\n", ifp->name);
+ zlog_warn("Interface is not active %s", ifp->name);
return;
}
@@ -293,13 +294,14 @@ void irdp_if_stop(struct interface *ifp)
}
-void irdp_if_shutdown(struct interface *ifp)
+static void
+irdp_if_shutdown(struct interface *ifp)
{
struct zebra_if *zi= ifp->info;
struct irdp_interface *irdp = &zi->irdp;
if (irdp->flags & IF_SHUTDOWN ) {
- zlog_warn("IRDP: Interface is already shutdown %s\n", ifp->name);
+ zlog_warn("IRDP: Interface is already shutdown %s", ifp->name);
return;
}
@@ -313,13 +315,14 @@ void irdp_if_shutdown(struct interface *ifp)
irdp_advert_off(ifp);
}
-void irdp_if_no_shutdown(struct interface *ifp)
+static void
+irdp_if_no_shutdown(struct interface *ifp)
{
struct zebra_if *zi= ifp->info;
struct irdp_interface *irdp = &zi->irdp;
if (! (irdp->flags & IF_SHUTDOWN )) {
- zlog_warn("IRDP: Interface is not shutdown %s\n", ifp->name);
+ zlog_warn("IRDP: Interface is not shutdown %s", ifp->name);
return;
}
@@ -760,7 +763,7 @@ DEFUN (ip_irdp_debug_disable,
}
void
-irdp_if_init ()
+irdp_init ()
{
install_element (INTERFACE_NODE, &ip_irdp_broadcast_cmd);
install_element (INTERFACE_NODE, &ip_irdp_multicast_cmd);