diff options
Diffstat (limited to 'sysdep/bsd/krt-sock.c')
-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 d991ea13..9c8b71f7 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) |