Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
3858:ae3a84966b98 | 3859:30d4d6187316 |
---|---|
48 | 48 |
49 | 49 |
50 static ngx_command_t ngx_http_geoip_commands[] = { | 50 static ngx_command_t ngx_http_geoip_commands[] = { |
51 | 51 |
52 { ngx_string("geoip_country"), | 52 { ngx_string("geoip_country"), |
53 NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, | 53 NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE12, |
54 ngx_http_geoip_country, | 54 ngx_http_geoip_country, |
55 NGX_HTTP_MAIN_CONF_OFFSET, | 55 NGX_HTTP_MAIN_CONF_OFFSET, |
56 0, | 56 0, |
57 NULL }, | 57 NULL }, |
58 | 58 |
59 { ngx_string("geoip_city"), | 59 { ngx_string("geoip_city"), |
60 NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1, | 60 NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE12, |
61 ngx_http_geoip_city, | 61 ngx_http_geoip_city, |
62 NGX_HTTP_MAIN_CONF_OFFSET, | 62 NGX_HTTP_MAIN_CONF_OFFSET, |
63 0, | 63 0, |
64 NULL }, | 64 NULL }, |
65 | 65 |
444 "GeoIO_open(\"%V\") failed", &value[1]); | 444 "GeoIO_open(\"%V\") failed", &value[1]); |
445 | 445 |
446 return NGX_CONF_ERROR; | 446 return NGX_CONF_ERROR; |
447 } | 447 } |
448 | 448 |
449 if (cf->args->nelts == 3) { | |
450 if (ngx_strcmp(value[2].data, "utf8") == 0) { | |
451 GeoIP_set_charset (gcf->country, GEOIP_CHARSET_UTF8); | |
452 | |
453 } else { | |
454 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
455 "invalid parameter \"%V\"", &value[2]); | |
456 return NGX_CONF_ERROR; | |
457 } | |
458 } | |
459 | |
449 switch (gcf->country->databaseType) { | 460 switch (gcf->country->databaseType) { |
450 | 461 |
451 case GEOIP_COUNTRY_EDITION: | 462 case GEOIP_COUNTRY_EDITION: |
452 case GEOIP_PROXY_EDITION: | 463 case GEOIP_PROXY_EDITION: |
453 case GEOIP_NETSPEED_EDITION: | 464 case GEOIP_NETSPEED_EDITION: |
483 "GeoIO_open(\"%V\") failed", &value[1]); | 494 "GeoIO_open(\"%V\") failed", &value[1]); |
484 | 495 |
485 return NGX_CONF_ERROR; | 496 return NGX_CONF_ERROR; |
486 } | 497 } |
487 | 498 |
499 if (cf->args->nelts == 3) { | |
500 if (ngx_strcmp(value[2].data, "utf8") == 0) { | |
501 GeoIP_set_charset (gcf->city, GEOIP_CHARSET_UTF8); | |
502 | |
503 } else { | |
504 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
505 "invalid parameter \"%V\"", &value[2]); | |
506 return NGX_CONF_ERROR; | |
507 } | |
508 } | |
509 | |
488 switch (gcf->city->databaseType) { | 510 switch (gcf->city->databaseType) { |
489 | 511 |
490 case GEOIP_CITY_EDITION_REV0: | 512 case GEOIP_CITY_EDITION_REV0: |
491 case GEOIP_CITY_EDITION_REV1: | 513 case GEOIP_CITY_EDITION_REV1: |
492 | 514 |