svn commit: r312770 - in head/sys: net netinet netinet6
Bruce Evans
brde at optusnet.com.au
Fri Jan 27 06:34:55 UTC 2017
On Thu, 26 Jan 2017, Gleb Smirnoff wrote:
> On Thu, Jan 26, 2017 at 02:03:05PM +1100, Bruce Evans wrote:
> B> On Thu, 26 Jan 2017, Konstantin Belousov wrote:
> B>
> B> > On Wed, Jan 25, 2017 at 02:20:06PM -0800, Gleb Smirnoff wrote:
> B> >> Thanks, Luiz!
> B> >>
> B> >> One stylistic nit that I missed in review:
> B> >>
> B> >> L> static int
> B> >> L> -in_difaddr_ioctl(caddr_t data, struct ifnet *ifp, struct thread *td)
> B> >> L> +in_difaddr_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, struct thread *td)
> B> >> L> {
> B> >> L> const struct ifreq *ifr = (struct ifreq *)data;
> B> >> L> const struct sockaddr_in *addr = (const struct sockaddr_in *)
> B> >> L> @@ -618,7 +618,8 @@ in_difaddr_ioctl(caddr_t data, struct if
> B> >> L> in_ifadown(&ia->ia_ifa, 1);
> B> >> L>
> B> >> L> if (ia->ia_ifa.ifa_carp)
> B> >> L> - (*carp_detach_p)(&ia->ia_ifa);
> B> >> L> + (*carp_detach_p)(&ia->ia_ifa,
> B> >> L> + (cmd == SIOCDIFADDR) ? false : true);
> B> >>
> B> >> Can we change the very last line to:
> B> >>
> B> >> (cmd == SIOCAIFADDR) ? true : false);
> B>
> B> That is not stylistic, but invert the result. Perhaps you meant to
> B> reverse the test to avoid negative logic for the result.
>
> It uses different ioctl value, so it doesn't invert result. Instead
> of !SIOCDIFADDR I want more explicit SIOCAIFADDR.
Oops. So it is non-stylistic in a different way. cmd can only be
SIOCDIFADDR, or one or both of SIOCAIFADDR. Than is unclear. Assuming
that the original code is correct and that all 3 cases can occur,
inversion would break all 3 cases, while the non-stylistic change breaks
only the O_SIOCAIFADDR case.
Since there can be more than 2 cases and it isn't clear that there are
at most 3, any boolean test on 1 of the cases is going to be unclear.
Positive logic will be clearer, but that requires comparison with 2
cases. The current code use negative logic to select these 2 cases as
the complement of the other case.
Bruce
More information about the svn-src-all
mailing list