diff -ru nginx-0.9.3/src/http/modules/ngx_http_geoip_module.c nginx-0.9.3.GeoIP-utf8/src/http/modules/ngx_http_geoip_module.c --- nginx-0.9.3/src/http/modules/ngx_http_geoip_module.c 2010-08-03 13:38:08.000000000 -0500 +++ nginx-0.9.3.GeoIP-utf8/src/http/modules/ngx_http_geoip_module.c 2011-01-27 04:06:09.000000000 -0600 @@ -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,20 @@ 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 +499,20 @@ 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: