version 1.41, 2018/02/08 07:00:33 |
version 1.42, 2018/09/07 12:43:30 |
|
|
} |
} |
|
|
int |
int |
unmask(struct pf_addr * m, u_int8_t af) |
unmask(struct pf_addr * m) |
{ |
{ |
int i = 31, j = 0, b = 0, msize; |
int i = 31, j = 0, b = 0; |
u_int32_t tmp; |
u_int32_t tmp; |
|
|
if (af == AF_INET) |
while (j < 4 && m->addr32[j] == 0xffffffff) { |
msize = 1; |
|
else |
|
msize = 4; |
|
while (j < msize && m->addr32[j] == 0xffffffff) { |
|
b += 32; |
b += 32; |
j++; |
j++; |
} |
} |
if (j < msize) { |
if (j < 4) { |
tmp = ntohl(m->addr32[j]); |
tmp = ntohl(m->addr32[j]); |
for (i = 31; tmp & (1 << i); --i) |
for (i = 31; tmp & (1 << i); --i) |
b++; |
b++; |
|
|
|
|
if (mask != NULL) { |
if (mask != NULL) { |
if (!PF_AZERO(mask, af)) |
if (!PF_AZERO(mask, af)) |
tbprintf("/%u", unmask(mask, af)); |
tbprintf("/%u", unmask(mask)); |
} |
} |
} |
} |
|
|