diff options
Diffstat (limited to 'src/qcommon/net_ip.c')
-rw-r--r-- | src/qcommon/net_ip.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/src/qcommon/net_ip.c b/src/qcommon/net_ip.c index e3a95e4a..a64cd04e 100644 --- a/src/qcommon/net_ip.c +++ b/src/qcommon/net_ip.c @@ -390,7 +390,6 @@ Compare without port, and up to the bit number given in netmask. */ qboolean NET_CompareBaseAdrMask(netadr_t a, netadr_t b, int netmask) { - qboolean differed; byte cmpmask, *addra, *addrb; int curbyte; @@ -422,24 +421,12 @@ qboolean NET_CompareBaseAdrMask(netadr_t a, netadr_t b, int netmask) return qfalse; } - differed = qfalse; - curbyte = 0; + curbyte = netmask >> 3; - while(netmask > 7) - { - if(addra[curbyte] != addrb[curbyte]) - { - differed = qtrue; - break; - } - - curbyte++; - netmask -= 8; - } - - if(differed) - return qfalse; + if(curbyte && memcmp(addra, addrb, curbyte)) + return qfalse; + netmask &= ~0x07; if(netmask) { cmpmask = (1 << netmask) - 1; |