Tom Haynes wrote: > Robert Gordon wrote: >> >> I think this: >> >> 1460 } else { >> 1461 if ((addr & 0x00ffffff) == 0) >> 1462 mask = 0xff000000; >> 1463 else if ((addr & 0x0000ffff) == 0) >> 1464 mask = 0xffff0000; >> 1465 else if ((addr & 0x000000ff) == 0) >> 1466 mask = 0xffffff00; >> 1467 else >> 1468 mask = 0xffffffff; >> 1469 } >> >> reads better as: >> >> if (IN_CLASSA(addr)) >> mask = IN_CLASSA_NET; >> else if (IN_CLASSB(addr)) >> mask = IN_CLASSB_NET; >> else if (IN_CLASSC(addr)) >> mask = IN_CLASSC_NET; >> else >> mask = IP_HOST_MASK; > > Might read better, but appears not to work correctly: > >
... > > > if ((addr & IN_CLASSA_HOST) == 0) { > mask = IN_CLASSA_NET; > } else if ((addr & IN_CLASSB_HOST) == 0) { > mask = IN_CLASSB_NET; > } else if ((addr & IN_CLASSC_HOST) == 0) { > mask = IN_CLASSC_NET; > } else { > mask = IN_CLASSE_NET; > } > > > And that pans out via the attached test case... > So I've updated the webrev with the above change: http://cr.opensolaris.org/~tdh/oneaddr/ I still need a second reviewer for this change....