From: Roy Marples Date: Mon, 28 Apr 2014 23:56:21 +0000 (+0000) Subject: Support IFA_F_NOPREFIXROUTE on Linux. X-Git-Tag: v6.4.0~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b94eea5aa7b22adc63c01c2d00fa796335d1116b;p=thirdparty%2Fdhcpcd.git Support IFA_F_NOPREFIXROUTE on Linux. --- diff --git a/if-linux.c b/if-linux.c index 546be369..ad52bba7 100644 --- a/if-linux.c +++ b/if-linux.c @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -992,6 +993,9 @@ if_address6(const struct ipv6_addr *ap, int action) struct nlma nlm; struct ifa_cacheinfo cinfo; int retval = 0; +#ifdef IFA_F_NOPREFIXROUTE + uint32_t flags; +#endif memset(&nlm, 0, sizeof(nlm)); nlm.hdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg)); @@ -1018,6 +1022,11 @@ if_address6(const struct ipv6_addr *ap, int action) &cinfo, sizeof(cinfo)); } +#ifdef IFA_F_NOPREFIXROUTE + flags = IFA_F_NOPREFIXROUTE; + add_attr_32(&nlm.hdr, sizeof(nlm), IFA_FLAGS, flags); +#endif + if (send_netlink(ap->iface->ctx, &nlm.hdr) == -1) retval = -1; return retval;