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;

it makes it quite obvious the code only supports class A, B or C for  
non CIDR
defined networks.

also just as an extra sanity check, should sin_family be
verified to be AF_INET ?

Robert.

Reply via email to