diff options
author | hasso <hasso> | 2003-05-25 19:21:25 +0000 |
---|---|---|
committer | hasso <hasso> | 2003-05-25 19:21:25 +0000 |
commit | 6cbcce0a3b204f50b4e78db188c78fae4cd2191a (patch) | |
tree | defb4c4c8257c0ae276362d38f1904ced66113ad /zebra/kernel_socket.c | |
parent | 1e1bb742e7b9d5065179e6b38bad9b86707e6876 (diff) | |
download | quagga-6cbcce0a3b204f50b4e78db188c78fae4cd2191a.tar.bz2 quagga-6cbcce0a3b204f50b4e78db188c78fae4cd2191a.tar.xz |
Route (reject|blackhole) support from 6Wind patch.
Diffstat (limited to 'zebra/kernel_socket.c')
-rw-r--r-- | zebra/kernel_socket.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c index a47f4f63..1e915d1d 100644 --- a/zebra/kernel_socket.c +++ b/zebra/kernel_socket.c @@ -148,6 +148,7 @@ rtm_flag_dump (int flag) struct message *mes; static char buf[BUFSIZ]; + buf[0] = '0'; for (mes = rtm_flag_str; mes->key != 0; mes++) { if (mes->key & flag) @@ -476,6 +477,12 @@ rtm_read (struct rt_msghdr *rtm) if (flags & RTF_STATIC) SET_FLAG (zebra_flags, ZEBRA_FLAG_STATIC); + /* This is a reject or blackhole route */ + if (flags & RTF_REJECT) + SET_FLAG (zebra_flags, ZEBRA_FLAG_REJECT); + if (flags & RTF_BLACKHOLE) + SET_FLAG (zebra_flags, ZEBRA_FLAG_BLACKHOLE); + if (dest.sa.sa_family == AF_INET) { struct prefix_ipv4 p; @@ -619,6 +626,9 @@ rtm_write (int message, /* Additional flags. */ if (zebra_flags & ZEBRA_FLAG_BLACKHOLE) msg.rtm.rtm_flags |= RTF_BLACKHOLE; + if (zebra_flags & ZEBRA_FLAG_REJECT) + msg.rtm.rtm_flags |= RTF_REJECT; + #ifdef HAVE_SIN_LEN #define SOCKADDRSET(X,R) \ |