Commit Graph

63 Commits

Author SHA1 Message Date
Ruslan Ermilov
f1819242fc Geo: ensure that default entry is always present.
If 0.0.0.0/32 entry was present and there was no explicit "default",
we failed to add an empty string as a default value.
2012-12-21 08:46:52 +00:00
Ruslan Ermilov
a0caa70c98 There's no need to normalize address returned by ngx_ptocidr(). 2012-12-21 08:44:39 +00:00
Ruslan Ermilov
c865f8dfa2 Added checks that disallow adding a variable with an empty name.
Added variable name syntax checks to "geo" and "map" directives.
2012-12-17 19:03:33 +00:00
Ruslan Ermilov
18a7e1b359 Geo: fixed the "ranges" without ranges case.
The following configuration returned an empty value for $geo:

    geo $geo {
        ranges;
        default default;
    }
2012-12-14 19:56:03 +00:00
Ruslan Ermilov
cd04ca3546 Geo: improved ngx_http_geo_block() code readability. 2012-12-14 19:35:37 +00:00
Ruslan Ermilov
ba290091cf Fixed variable syntax checking in "set", "geo", "limit_conn_zone",
and "perl_set" directives.
2012-12-13 15:05:19 +00:00
Ruslan Ermilov
d469482cda Fixed strict aliasing bugs when dealing with IPv4-mapped IPv6 addresses
(closes #201).
2012-08-30 14:58:11 +00:00
Maxim Dounin
5425263436 Geo: fixed handling of ranges without default set.
The bug had appeared in 0.8.43 (r3653).  Patch by Weibin Yao.
2012-08-16 13:01:41 +00:00
Ruslan Ermilov
d4353c6fd3 Fixed spelling of "endianness", and called it "byte ordering" in the
user visible part.
2012-06-08 09:41:55 +00:00
Ruslan Ermilov
69521ddebf geo: chains of trusted proxies and partial IPv6 support.
The module now supports recursive search of client address through
the chain of trusted proxies, controlled by the "proxy_recursive"
directive in the "geo" block.  It also gets partial IPv6 support:
now proxies may be specified with IPv6 addresses.

Example:
    geo $test {
        ...
        proxy 127.0.0.1;
        proxy ::1;
        proxy_recursive;
    }

There's also a slight change in behavior.  When original client
address (as specified by the "geo" directive) is one of the
trusted proxies, and the value of the X-Forwarded-For request
header cannot not be parsed as a valid address, an original client
address will be used for lookup.  Previously, 255.255.255.255 was
used in this case.
2012-05-14 13:53:22 +00:00
Ruslan Ermilov
43d2b1c045 Fixed grammar in error messages. 2012-04-12 19:35:41 +00:00
Maxim Konovalov
f8d59e33f3 Copyright updated. 2012-01-18 15:07:43 +00:00
Igor Sysoev
529b5f1938 support IPv4 mapped to IPv6 in geo module 2011-05-16 13:54:42 +00:00
Igor Sysoev
d63104eea4 use memmove() in appropriate places 2011-04-12 08:02:46 +00:00
Igor Sysoev
178cd2da2b style fix: remove tabs 2010-06-30 14:28:54 +00:00
Igor Sysoev
ffcc2f4a9e test binary geo range base size 2010-06-30 10:13:51 +00:00
Igor Sysoev
3b0ddc2097 test the second binary geo range base existence 2010-06-30 10:12:46 +00:00
Igor Sysoev
e3d88fb8eb test binary geo ranges base only for ranges 2010-06-30 10:05:56 +00:00
Igor Sysoev
4655c721e8 test binary gep range base mtime 2010-06-30 10:02:05 +00:00
Igor Sysoev
edf29ef8cd binary geo ranges base cache 2010-06-29 16:06:20 +00:00
Igor Sysoev
325bd4ea98 change duplicate default geo range processing 2010-06-29 13:36:16 +00:00
Igor Sysoev
70485d6b7c eliminate a number of ranges: about 18,000 /16 networks are empty,
this change saves about 70K/140K on 32/64-bit platforms
2010-06-24 15:26:05 +00:00
Igor Sysoev
e3693e3b37 break cycle early 2010-06-24 13:16:19 +00:00
Igor Sysoev
aa6936e61a style fix 2010-06-23 16:34:54 +00:00
Igor Sysoev
0923d08148 change ngx_http_variable_value_node_t to more generic ngx_str_node_t 2010-06-23 15:31:33 +00:00
Igor Sysoev
bd4b6e68af fix a geo range if the range includes two or more /16 networks
and does not begin at /16 network boundary
2010-02-25 17:26:01 +00:00
Igor Sysoev
e0f1d0afcc style fix 2009-09-11 13:57:50 +00:00
Igor Sysoev
15e3b01819 geo module supports trusted proxies 2009-07-22 09:43:14 +00:00
Igor Sysoev
36860101ec prepare ngx_ptocidr() for IPv6 2009-02-24 14:01:40 +00:00
Igor Sysoev
a35eaccdec a prelimiary IPv6 support, HTTP listen 2009-02-21 07:02:02 +00:00
Igor Sysoev
cd55a93cce fix segfault when geo range replaces starting part of another range 2009-01-19 16:42:14 +00:00
Igor Sysoev
c1a2b978de allow insertion range if its start or end is the same as existent one 2009-01-16 16:29:23 +00:00
Igor Sysoev
53554ae54d fix single address range 2009-01-16 16:09:58 +00:00
Igor Sysoev
6ff8cda061 fix range deletion 2009-01-16 16:02:30 +00:00
Igor Sysoev
95cff3e9d0 repeat r2448 for range deletion 2009-01-16 15:58:27 +00:00
Igor Sysoev
287c22f788 log both overrlaped ranges 2009-01-16 15:47:05 +00:00
Igor Sysoev
f8fdbcaaa2 fix range start for ranges those spread in two or more slots 2009-01-16 15:44:39 +00:00
Igor Sysoev
73f9bb4d01 *) fix duplicate geo ranges
*) split existent range and insert a new one
2009-01-16 13:17:12 +00:00
Igor Sysoev
2d83ed000f style fix: remove tabs 2008-12-11 10:22:25 +00:00
Igor Sysoev
9a1d46684c $geo variable support 2008-12-11 09:46:45 +00:00
Igor Sysoev
976603a646 remove before nginx-0.1.25 compatibility code 2008-12-11 07:48:48 +00:00
Igor Sysoev
84b7651ac2 fix "delete CIDR" 2008-12-02 15:02:36 +00:00
Igor Sysoev
69b5a6ddfb create empty radix tree for "geo $geo { }" case 2008-11-28 17:22:35 +00:00
Igor Sysoev
1c6c63332c *) descrease geo configuration memory usage
*) geo delete
*) geo ranges
2008-11-25 15:59:06 +00:00
Igor Sysoev
de2f8c4ca5 use value rbtree instead of array in geo configuration 2008-11-22 20:42:51 +00:00
Igor Sysoev
2d3f3f6eb6 fix English grammar 2007-10-14 18:56:15 +00:00
Igor Sysoev
0d4b372e44 use %v for ngx_variable_value_t in ngx_sprintf(),
this fixes nginx on FreeBSD/sparc64
2007-08-20 09:57:19 +00:00
Igor Sysoev
845f6d553a ignore meaningless bits in CIDR and warn about them 2007-08-10 13:13:28 +00:00
Igor Sysoev
a1df416d65 --sysconfdir=DIR 2007-07-29 18:05:45 +00:00
Igor Sysoev
7bdb720d6a nginx-0.3.40-RELEASE import
*) Feature: the ngx_http_dav_module supports the MKCOL method.

    *) Feature: the "create_full_put_path" directive.

    *) Feature: the "$limit_rate" variable.
2006-04-19 15:30:56 +00:00