summaryrefslogtreecommitdiff
path: root/proto/pipe/pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/pipe/pipe.c')
-rw-r--r--proto/pipe/pipe.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/proto/pipe/pipe.c b/proto/pipe/pipe.c
index de86b62b..97862780 100644
--- a/proto/pipe/pipe.c
+++ b/proto/pipe/pipe.c
@@ -43,6 +43,10 @@
#include "pipe.h"
+#ifdef CONFIG_BGP
+#include "proto/bgp/bgp.h"
+#endif
+
static void
pipe_rt_notify(struct proto *P, struct channel *src_ch, net *n, rte *new, rte *old)
{
@@ -73,16 +77,12 @@ pipe_rt_notify(struct proto *P, struct channel *src_ch, net *n, rte *new, rte *o
a->cached = 0;
a->hostentry = NULL;
e = rte_get_temp(a, src);
- e->pflags = 0;
-
- /* Copy protocol specific embedded attributes. */
- memcpy(&(e->u), &(new->u), sizeof(e->u));
e->pflags = new->pflags;
#ifdef CONFIG_BGP
/* Hack to cleanup cached value */
if (e->src->proto->proto == &proto_bgp)
- e->u.bgp.stale = -1;
+ e->pflags &= ~(BGP_REF_STALE | BGP_REF_NOT_STALE);
#endif
}
else