summaryrefslogtreecommitdiff
path: root/ripd
diff options
context:
space:
mode:
Diffstat (limited to 'ripd')
-rw-r--r--ripd/.cvsignore14
-rw-r--r--ripd/rip_interface.c17
-rw-r--r--ripd/rip_main.c8
-rw-r--r--ripd/rip_zebra.c5
4 files changed, 16 insertions, 28 deletions
diff --git a/ripd/.cvsignore b/ripd/.cvsignore
deleted file mode 100644
index 41fd8c82..00000000
--- a/ripd/.cvsignore
+++ /dev/null
@@ -1,14 +0,0 @@
-Makefile
-Makefile.in
-*.o
-ripd
-ripd.conf
-tags
-TAGS
-.deps
-.nfs*
-*.lo
-*.la
-*.libs
-.arch-inventory
-.arch-ids
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index d3b55fc0..810b71c0 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -78,9 +78,8 @@ ipv4_multicast_join (int sock,
{
int ret;
- ret = setsockopt_multicast_ipv4 (sock,
+ ret = setsockopt_ipv4_multicast (sock,
IP_ADD_MEMBERSHIP,
- ifa,
group.s_addr,
ifindex);
@@ -100,9 +99,8 @@ ipv4_multicast_leave (int sock,
{
int ret;
- ret = setsockopt_multicast_ipv4 (sock,
+ ret = setsockopt_ipv4_multicast (sock,
IP_DROP_MEMBERSHIP,
- ifa,
group.s_addr,
ifindex);
@@ -138,18 +136,13 @@ rip_interface_new (void)
void
rip_interface_multicast_set (int sock, struct connected *connected)
{
- struct in_addr addr;
-
assert (connected != NULL);
- addr = CONNECTED_ID(connected)->u.prefix4;
-
- if (setsockopt_multicast_ipv4 (sock, IP_MULTICAST_IF, addr, 0,
- connected->ifp->ifindex) < 0)
+ if (setsockopt_ipv4_multicast_if (sock, connected->ifp->ifindex) < 0)
{
zlog_warn ("Can't setsockopt IP_MULTICAST_IF on fd %d to "
- "source address %s for interface %s",
- sock, inet_ntoa(addr),
+ "ifindex %d for interface %s",
+ sock, connected->ifp->ifindex,
connected->ifp->name);
}
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index 57b5f3af..ccb5fa01 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -32,6 +32,7 @@
#include "log.h"
#include "privs.h"
#include "sigevent.h"
+#include "zclient.h"
#include "ripd/ripd.h"
@@ -41,6 +42,7 @@ static struct option longopts[] =
{ "daemon", no_argument, NULL, 'd'},
{ "config_file", required_argument, NULL, 'f'},
{ "pid_file", required_argument, NULL, 'i'},
+ { "socket", required_argument, NULL, 'z'},
{ "help", no_argument, NULL, 'h'},
{ "dryrun", no_argument, NULL, 'C'},
{ "vty_addr", required_argument, NULL, 'A'},
@@ -109,6 +111,7 @@ Daemon which manages RIP version 1 and 2.\n\n\
-d, --daemon Runs in daemon mode\n\
-f, --config_file Set configuration file name\n\
-i, --pid_file Set process identifier file name\n\
+-z, --socket Set path of zebra socket\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
-C, --dryrun Check configuration for validity and exit\n\
@@ -206,7 +209,7 @@ main (int argc, char **argv)
{
int opt;
- opt = getopt_long (argc, argv, "df:i:hA:P:u:g:rvC", longopts, 0);
+ opt = getopt_long (argc, argv, "df:i:z:hA:P:u:g:rvC", longopts, 0);
if (opt == EOF)
break;
@@ -227,6 +230,9 @@ main (int argc, char **argv)
case 'i':
pid_file = optarg;
break;
+ case 'z':
+ zclient_serv_path_set (optarg);
+ break;
case 'P':
/* Deal with atoi() returning 0 on failure, and ripd not
listening on rip port... */
diff --git a/ripd/rip_zebra.c b/ripd/rip_zebra.c
index c476d8f4..199e85e8 100644
--- a/ripd/rip_zebra.c
+++ b/ripd/rip_zebra.c
@@ -46,6 +46,7 @@ rip_zebra_ipv4_add (struct prefix_ipv4 *p, struct in_addr *nexthop,
api.type = ZEBRA_ROUTE_RIP;
api.flags = 0;
api.message = 0;
+ api.safi = SAFI_UNICAST;
SET_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP);
api.nexthop_num = 1;
api.nexthop = &nexthop;
@@ -76,6 +77,7 @@ rip_zebra_ipv4_delete (struct prefix_ipv4 *p, struct in_addr *nexthop,
api.type = ZEBRA_ROUTE_RIP;
api.flags = 0;
api.message = 0;
+ api.safi = SAFI_UNICAST;
SET_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP);
api.nexthop_num = 1;
api.nexthop = &nexthop;
@@ -205,7 +207,8 @@ static struct {
{ZEBRA_ROUTE_CONNECT, 1, "connected"},
{ZEBRA_ROUTE_STATIC, 1, "static"},
{ZEBRA_ROUTE_OSPF, 1, "ospf"},
- {ZEBRA_ROUTE_BGP, 1, "bgp"},
+ {ZEBRA_ROUTE_BGP, 2, "bgp"},
+ {ZEBRA_ROUTE_BABEL, 2, "babel"},
{0, 0, NULL}
};