Browse Source

mask bits to be checked in ot_net

master
Dirk Engling 8 months ago
parent
commit
a3251ffac7
  1. 4
      ot_accesslist.c

4
ot_accesslist.c

@ -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;
} }

Loading…
Cancel
Save