Mercurial > hg > dhcpcd
changeset 4475:0f69a209f608 draft
sun: Fix adding IPv4LL default route
| author | Roy Marples <roy@marples.name> |
|---|---|
| date | Wed, 24 Apr 2019 11:00:57 +0000 |
| parents | 5038198ddbae |
| children | 60b8905c878e |
| files | src/if-sun.c |
| diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if-sun.c Tue Apr 23 18:54:39 2019 +0000 +++ b/src/if-sun.c Wed Apr 24 11:00:57 2019 +0000 @@ -526,6 +526,7 @@ struct rt_msghdr *rtm; char *bp = rtmsg->buffer; socklen_t sl; + bool gateway_unspec; /* WARNING: Solaris will not allow you to delete RTF_KERNEL routes. * This includes subnet/prefix routes. */ @@ -544,6 +545,8 @@ rtm->rtm_flags = rt->rt_flags; rtm->rtm_addrs = RTA_DST | RTA_GATEWAY; + gateway_unspec = sa_is_unspecified(&rt->rt_gateway); + if (cmd == RTM_ADD || cmd == RTM_CHANGE) { bool netmask_bcast = sa_is_allones(&rt->rt_netmask); @@ -563,7 +566,7 @@ if (netmask_bcast) rtm->rtm_flags |= RTF_HOST; - else + else if (!gateway_unspec) rtm->rtm_flags |= RTF_GATEWAY; /* Emulate the kernel by marking address generated @@ -582,7 +585,7 @@ ADDSA(&rt->rt_dest); - if (sa_is_unspecified(&rt->rt_gateway)) + if (gateway_unspec) ADDSA(&rt->rt_ifa); else ADDSA(&rt->rt_gateway);
