|
|
@ -385,10 +385,10 @@ void accesslist_cleanup( void ) { |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
int address_in_net( const ot_ip6 address, const ot_net *net ) { |
|
|
|
int address_in_net( const ot_ip6 address, const ot_net *net ) { |
|
|
|
int bits = net->bits; |
|
|
|
int bits = net->bits, checkbits = ( 0x7f00 >> ( bits & 7 )); |
|
|
|
int result = memcmp( address, &net->address, bits >> 3 ); |
|
|
|
int result = memcmp( address, &net->address, bits >> 3 ); |
|
|
|
if( !result && ( bits & 7 ) ) |
|
|
|
if( !result && ( bits & 7 ) ) |
|
|
|
result = ( ( 0x7f00 >> ( bits & 7 ) ) & address[bits>>3] ) - net->address[bits>>3]; |
|
|
|
result = ( checkbits & address[bits>>3] ) - ( checkbits & net->address[bits>>3]); |
|
|
|
return result == 0; |
|
|
|
return result == 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|