|
|
@@ -2914,7 +2914,7 @@ static void setup_ipaccess()
|
|
|
ipaccess[ips].mask = 0;
|
|
|
while (mask-- >= 0) {
|
|
|
octet = 1 << (mask % 8);
|
|
|
- ipaccess[ips].mask |= (octet << (8 * (mask >> 3)));
|
|
|
+ ipaccess[ips].mask |= (octet << (24 - (8 * (mask >> 3))));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2928,7 +2928,7 @@ static void setup_ipaccess()
|
|
|
if (octet < 0 || octet > 0xff)
|
|
|
goto popipo; // skip invalid
|
|
|
|
|
|
- ipaccess[ips].ip |= (octet << (i * 8));
|
|
|
+ ipaccess[ips].ip |= (octet << (24 - (i * 8)));
|
|
|
|
|
|
ptr = dot;
|
|
|
}
|
|
|
@@ -3095,8 +3095,9 @@ void api(int api_thr_id)
|
|
|
addrok = false;
|
|
|
group = NOPRIVGROUP;
|
|
|
if (opt_api_allow) {
|
|
|
+ int client_ip = htonl(cli.sin_addr.s_addr);
|
|
|
for (i = 0; i < ips; i++) {
|
|
|
- if ((cli.sin_addr.s_addr & ipaccess[i].mask) == ipaccess[i].ip) {
|
|
|
+ if ((client_ip & ipaccess[i].mask) == ipaccess[i].ip) {
|
|
|
addrok = true;
|
|
|
group = ipaccess[i].group;
|
|
|
break;
|