Loading net/ipv4/arp.c +27 −20 Original line number Diff line number Diff line Loading @@ -1074,17 +1074,14 @@ static int arp_req_get(struct arpreq *r, struct net_device *dev) return err; } static int arp_req_delete(struct arpreq *r, struct net_device * dev) static int arp_req_delete_public(struct arpreq *r, struct net_device *dev) { int err; __be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr; struct neighbour *neigh; __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; if (r->arp_flags & ATF_PUBL) { __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; if (mask == htonl(0xFFFFFFFF)) return pneigh_delete(&arp_tbl, &ip, dev); if (mask == 0) { if (dev == NULL) { IPV4_DEVCONF_ALL(PROXY_ARP) = 0; Loading @@ -1100,6 +1097,16 @@ static int arp_req_delete(struct arpreq *r, struct net_device * dev) return -EINVAL; } static int arp_req_delete(struct arpreq *r, struct net_device * dev) { int err; __be32 ip; struct neighbour *neigh; if (r->arp_flags & ATF_PUBL) return arp_req_delete_public(r, dev); ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr; if (dev == NULL) { struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip, .tos = RTO_ONLINK } } }; Loading Loading
net/ipv4/arp.c +27 −20 Original line number Diff line number Diff line Loading @@ -1074,17 +1074,14 @@ static int arp_req_get(struct arpreq *r, struct net_device *dev) return err; } static int arp_req_delete(struct arpreq *r, struct net_device * dev) static int arp_req_delete_public(struct arpreq *r, struct net_device *dev) { int err; __be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr; struct neighbour *neigh; __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; if (r->arp_flags & ATF_PUBL) { __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; if (mask == htonl(0xFFFFFFFF)) return pneigh_delete(&arp_tbl, &ip, dev); if (mask == 0) { if (dev == NULL) { IPV4_DEVCONF_ALL(PROXY_ARP) = 0; Loading @@ -1100,6 +1097,16 @@ static int arp_req_delete(struct arpreq *r, struct net_device * dev) return -EINVAL; } static int arp_req_delete(struct arpreq *r, struct net_device * dev) { int err; __be32 ip; struct neighbour *neigh; if (r->arp_flags & ATF_PUBL) return arp_req_delete_public(r, dev); ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr; if (dev == NULL) { struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip, .tos = RTO_ONLINK } } }; Loading