summaryrefslogtreecommitdiffhomepage
path: root/src/core/ngx_inet.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-09-22 19:02:39 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-09-22 19:02:39 +0000
commit72963cd4e7e7efa954162066fbe1506208698106 (patch)
tree0d52a9cdf73b78a9773da2f65cb38a1e76d7cb1a /src/core/ngx_inet.c
parent5963fbae8ee06329e347d5fe113c649ed1aa179e (diff)
downloadnginx-72963cd4e7e7efa954162066fbe1506208698106.tar.gz
nginx-72963cd4e7e7efa954162066fbe1506208698106.tar.bz2
r1381 merge:
ignore meaningless bits in CIDR and warn about them
Diffstat (limited to 'src/core/ngx_inet.c')
-rw-r--r--src/core/ngx_inet.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index de4cae280..31094ba59 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -214,7 +214,13 @@ ngx_ptocidr(ngx_str_t *text, void *cidr)
in_cidr->mask = htonl((ngx_uint_t) (0 - (1 << (32 - m))));
- return NGX_OK;
+ if (in_cidr->addr == (in_cidr->addr & in_cidr->mask)) {
+ return NGX_OK;
+ }
+
+ in_cidr->addr &= in_cidr->mask;
+
+ return NGX_DONE;
}