Mercurial > hg > nginx
diff src/http/modules/ngx_http_geoip_module.c @ 3859:30d4d6187316
utf8 parameter of geoip_country and geoip_city
patch by Denis F. Latypoff
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 27 Jan 2011 12:51:59 +0000 |
parents | 01691af60f94 |
children | 2b92090d8a43 |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_geoip_module.c Thu Jan 27 12:43:11 2011 +0000 +++ b/src/http/modules/ngx_http_geoip_module.c Thu Jan 27 12:51:59 2011 +0000 @@ -50,14 +50,14 @@ static ngx_command_t ngx_http_geoip_commands[] = { { ngx_string("geoip_country"), - NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, + NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE12, ngx_http_geoip_country, NGX_HTTP_MAIN_CONF_OFFSET, 0, NULL }, { ngx_string("geoip_city"), - NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, + NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE12, ngx_http_geoip_city, NGX_HTTP_MAIN_CONF_OFFSET, 0, @@ -446,6 +446,17 @@ return NGX_CONF_ERROR; } + if (cf->args->nelts == 3) { + if (ngx_strcmp(value[2].data, "utf8") == 0) { + GeoIP_set_charset (gcf->country, GEOIP_CHARSET_UTF8); + + } else { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "invalid parameter \"%V\"", &value[2]); + return NGX_CONF_ERROR; + } + } + switch (gcf->country->databaseType) { case GEOIP_COUNTRY_EDITION: @@ -485,6 +496,17 @@ return NGX_CONF_ERROR; } + if (cf->args->nelts == 3) { + if (ngx_strcmp(value[2].data, "utf8") == 0) { + GeoIP_set_charset (gcf->city, GEOIP_CHARSET_UTF8); + + } else { + ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, + "invalid parameter \"%V\"", &value[2]); + return NGX_CONF_ERROR; + } + } + switch (gcf->city->databaseType) { case GEOIP_CITY_EDITION_REV0: