diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-04-08 18:41:17 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-04-08 18:41:17 +0200 |
commit | a9f380fe83187a95ead715e516696024e73f3fb7 (patch) | |
tree | 44e75a620ea17fc05254e5bf3d71ce38b7a8f9e1 /sysdep | |
parent | 6b5a8649a48d7616efbc798095eee2c10563b4e6 (diff) | |
download | bird-a9f380fe83187a95ead715e516696024e73f3fb7.tar bird-a9f380fe83187a95ead715e516696024e73f3fb7.zip |
On BSD, consider unmarked non-device routes as alien.
Diffstat (limited to 'sysdep')
-rw-r--r-- | sysdep/bsd/krt-sock.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index d991ea1..9c8b71f 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -296,7 +296,7 @@ krt_read_rt(struct ks_msg *msg, struct krt_proto *p, int scan) { log(L_ERR "%s (%I/%d) - missing gateway", errmsg, idst, pxlen); return; } u32 self_mask = RTF_PROTO1; - u32 alien_mask = RTF_STATIC | RTF_PROTO1; + u32 alien_mask = RTF_STATIC | RTF_PROTO1 | RTF_GATEWAY; #ifdef RTF_PROTO2 alien_mask |= RTF_PROTO2; @@ -306,6 +306,14 @@ krt_read_rt(struct ks_msg *msg, struct krt_proto *p, int scan) alien_mask |= RTF_PROTO3; #endif +#ifdef RTF_REJECT + alien_mask |= RTF_REJECT; +#endif + +#ifdef RTF_BLACKHOLE + alien_mask |= RTF_BLACKHOLE; +#endif + if (flags & (RTF_DYNAMIC | RTF_MODIFIED)) src = KRT_SRC_REDIRECT; else if (flags & self_mask) |