mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 02:25:40 +08:00
use uint16 instead of char
This commit is contained in:
parent
5861de176e
commit
92d501ff92
17
src/auth.c
17
src/auth.c
@ -255,18 +255,19 @@ int handleredirect(struct clientparam * param, struct ace * acentry){
|
||||
if(SAISNULL(¶m->sinsl))param->sinsl = param->sincr;
|
||||
#ifndef NOIPV6
|
||||
else if(cur->cidr && *SAFAMILY(¶m->sinsl) == AF_INET6){
|
||||
char c;
|
||||
uint16_t c;
|
||||
int i;
|
||||
|
||||
for(i = 0; i < 16; i++){
|
||||
if(i%8)myrand(¶m->sincr, sizeof(param->sincr));
|
||||
else if(i%4) myrand(¶m->req, sizeof(param->req));
|
||||
for(i = 0; i < 8; i++){
|
||||
if(i==4)myrand(¶m->sincr, sizeof(param->sincr));
|
||||
else if(i==6) myrand(¶m->req, sizeof(param->req));
|
||||
|
||||
if(i*8 >= cur->cidr) ((char *)SAADDR(¶m->sinsl))[i] = rand();
|
||||
else if ((i+1)*8 > cur->cidr){
|
||||
if(i*16 >= cur->cidr) ((uint16_t *)SAADDR(¶m->sinsl))[i] |= rand();
|
||||
else if ((i+1)*16 > cur->cidr){
|
||||
c = rand();
|
||||
c >>= (cur->cidr - (i*8));
|
||||
((char *)SAADDR(¶m->sinsl))[i] |= c;
|
||||
c >>= (cur->cidr - (i*16));
|
||||
c |= ntohs(((uint16_t *)SAADDR(¶m->sinsl))[i]);
|
||||
((uint16_t *)SAADDR(¶m->sinsl))[i] = htons(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user