summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proto/rip/rip.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 6085967..3289717 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -223,7 +223,8 @@ advertise_entry( struct proto *p, struct rip_block *b, ip_addr whotoldme )
rta *a, A;
rte *r;
net *n;
-
+
+ debug( "rip: Advertising entry..." );
bzero(&A, sizeof(A));
A.proto = p;
A.source = RTS_RIP;
@@ -243,6 +244,7 @@ advertise_entry( struct proto *p, struct rip_block *b, ip_addr whotoldme )
r->u.rip.tag = ntohl(b->tag);
r->pflags = 0; /* Here go my flags */
rte_update( n, p, r );
+ debug( "done\n" );
}
static void
@@ -464,12 +466,12 @@ rip_rt_notify(struct proto *p, struct network *net, struct rte *new, struct rte
struct rip_entry *e = new_entry( p );
debug( "inserting new\n" );
- e->whotoldme = IPA_NONE;
e->network = net->n.prefix;
e->pxlen = net->n.pxlen;
- e->nexthop = IPA_NONE; /* FIXME: is it correct? */
+ e->nexthop = new->attrs->gw;
e->tag = new->u.rip.tag;
e->metric = new->u.rip.metric;
+ e->whotoldme = new->attrs->from;
e->updated = e->changed = now;
e->flags = 0;