|
|
nlm->rt.rtm_dst_len = inet_ntocidr(*netmask); | nlm->rt.rtm_dst_len = inet_ntocidr(*netmask); |
add_attr_l(&nlm->hdr, sizeof(*nlm), RTA_DST, | add_attr_l(&nlm->hdr, sizeof(*nlm), RTA_DST, |
&destination->s_addr, sizeof(destination->s_addr)); | &destination->s_addr, sizeof(destination->s_addr)); |
add_attr_l(&nlm->hdr, sizeof(*nlm), RTA_GATEWAY, |
/* If destination == gateway then don't add the gateway */ |
&gateway->s_addr, sizeof(gateway->s_addr)); |
if (destination->s_addr != gateway->s_addr || |
|
netmask->s_addr != INADDR_BROADCAST) |
|
add_attr_l(&nlm->hdr, sizeof(*nlm), RTA_GATEWAY, |
|
&gateway->s_addr, sizeof(gateway->s_addr)); |
| |
add_attr_32(&nlm->hdr, sizeof(*nlm), RTA_OIF, ifindex); | add_attr_32(&nlm->hdr, sizeof(*nlm), RTA_OIF, ifindex); |
add_attr_32(&nlm->hdr, sizeof(*nlm), RTA_PRIORITY, metric); | add_attr_32(&nlm->hdr, sizeof(*nlm), RTA_PRIORITY, metric); |