diff -urNp lighttpd-1.4.13/src/array.h lighttpd-1.4.13-new/src/array.h --- lighttpd-1.4.13/src/array.h 2006-10-04 15:29:17.000000000 +0200 +++ lighttpd-1.4.13-new/src/array.h 2007-04-13 20:35:49.000000000 +0200 @@ -87,6 +87,7 @@ typedef enum { COMP_HTTP_HOST, COMP_HTTP_REFERER, COMP_HTTP_USERAGENT, + COMP_HTTP_LANGUAGE, COMP_HTTP_COOKIE, COMP_HTTP_REMOTEIP, COMP_HTTP_QUERYSTRING diff -urNp lighttpd-1.4.13/src/configfile-glue.c lighttpd-1.4.13-new/src/configfile-glue.c --- lighttpd-1.4.13/src/configfile-glue.c 2006-10-04 15:29:17.000000000 +0200 +++ lighttpd-1.4.13-new/src/configfile-glue.c 2007-04-13 20:35:49.000000000 +0200 @@ -344,6 +344,15 @@ static cond_result_t config_check_cond_n } break; } + case COMP_HTTP_LANGUAGE: { + data_string *ds; + if (NULL != (ds = (data_string *)array_get_element(con->request.headers, "Accept-Language"))) { + l = ds->value; + } else { + l = srv->empty_string; + } + break; + } default: return COND_RESULT_FALSE; diff -urNp lighttpd-1.4.13/src/configparser.c lighttpd-1.4.13-new/src/configparser.c --- lighttpd-1.4.13/src/configparser.c 2006-10-07 19:37:17.000000000 +0200 +++ lighttpd-1.4.13-new/src/configparser.c 2007-04-13 20:35:49.000000000 +0200 @@ -1201,6 +1201,7 @@ static void yy_reduce( { COMP_HTTP_HOST, CONST_STR_LEN("HTTP[\"host\"]" ) }, { COMP_HTTP_REFERER, CONST_STR_LEN("HTTP[\"referer\"]" ) }, { COMP_HTTP_USERAGENT, CONST_STR_LEN("HTTP[\"useragent\"]" ) }, + { COMP_HTTP_LANGUAGE, CONST_STR_LEN("HTTP[\"language\"]" ) }, { COMP_HTTP_COOKIE, CONST_STR_LEN("HTTP[\"cookie\"]" ) }, { COMP_HTTP_REMOTEIP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) }, { COMP_HTTP_QUERYSTRING, CONST_STR_LEN("HTTP[\"querystring\"]") }, diff -urNp lighttpd-1.4.13/src/configparser.y lighttpd-1.4.13-new/src/configparser.y --- lighttpd-1.4.13/src/configparser.y 2006-10-04 15:29:17.000000000 +0200 +++ lighttpd-1.4.13-new/src/configparser.y 2007-04-13 20:35:49.000000000 +0200 @@ -418,6 +418,7 @@ context ::= DOLLAR SRVVARNAME(B) LBRACKE { COMP_HTTP_HOST, CONST_STR_LEN("HTTP[\"host\"]" ) }, { COMP_HTTP_REFERER, CONST_STR_LEN("HTTP[\"referer\"]" ) }, { COMP_HTTP_USERAGENT, CONST_STR_LEN("HTTP[\"useragent\"]" ) }, + { COMP_HTTP_LANGUAGE, CONST_STR_LEN("HTTP[\"language\"]" ) }, { COMP_HTTP_COOKIE, CONST_STR_LEN("HTTP[\"cookie\"]" ) }, { COMP_HTTP_REMOTEIP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) }, { COMP_HTTP_QUERYSTRING, CONST_STR_LEN("HTTP[\"querystring\"]") }, diff -urNp lighttpd-1.4.13/src/response.c lighttpd-1.4.13-new/src/response.c --- lighttpd-1.4.13/src/response.c 2006-10-04 15:29:17.000000000 +0200 +++ lighttpd-1.4.13-new/src/response.c 2007-04-13 20:52:56.000000000 +0200 @@ -181,6 +181,7 @@ handler_t http_response_prepare(server * config_patch_connection(srv, con, COMP_HTTP_REMOTEIP); /* Client-IP */ config_patch_connection(srv, con, COMP_HTTP_REFERER); /* Referer: */ config_patch_connection(srv, con, COMP_HTTP_USERAGENT); /* User-Agent: */ + config_patch_connection(srv, con, COMP_HTTP_LANGUAGE); /* Accept-Language: */ config_patch_connection(srv, con, COMP_HTTP_COOKIE); /* Cookie: */ /** their might be a fragment which has to be cut away */