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....