]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/core/neighbour.c
[IPV6] NDISC: Set per-entry is_router flag in Proxy NA.
[net-next-2.6.git] / net / core / neighbour.c
index a45bd2124d6b21a3c93c1aa846a780e759c20f40..b6c69e1463e87f0dc756022ade88e52e4062dea0 100644 (file)
@@ -1544,9 +1544,14 @@ int neigh_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
                lladdr = tb[NDA_LLADDR] ? nla_data(tb[NDA_LLADDR]) : NULL;
 
                if (ndm->ndm_flags & NTF_PROXY) {
-                       err = 0;
-                       if (pneigh_lookup(tbl, dst, dev, 1) == NULL)
-                               err = -ENOBUFS;
+                       struct pneigh_entry *pn;
+
+                       err = -ENOBUFS;
+                       pn = pneigh_lookup(tbl, dst, dev, 1);
+                       if (pn) {
+                               pn->flags = ndm->ndm_flags;
+                               err = 0;
+                       }
                        goto out_dev_put;
                }