merged part of [1528] from trunk: added the new options and added alternative names for user-agent, remote-ip and query-string
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2112 152afb58-edef-0310-8abb-c4023f1b3aa9svn/tags/lighttpd-1.4.19
parent
52840fa1ed
commit
9ffe08a583
|
@ -86,11 +86,12 @@ typedef enum {
|
|||
COMP_HTTP_URL,
|
||||
COMP_HTTP_HOST,
|
||||
COMP_HTTP_REFERER,
|
||||
COMP_HTTP_USERAGENT,
|
||||
COMP_HTTP_USER_AGENT,
|
||||
COMP_HTTP_COOKIE,
|
||||
COMP_HTTP_REMOTEIP,
|
||||
COMP_HTTP_QUERYSTRING,
|
||||
COMP_HTTP_REMOTE_IP,
|
||||
COMP_HTTP_QUERY_STRING,
|
||||
COMP_HTTP_SCHEME,
|
||||
COMP_HTTP_REQUEST_METHOD,
|
||||
|
||||
COMP_LAST_ELEMENT
|
||||
} comp_key_t;
|
||||
|
|
|
@ -277,7 +277,7 @@ static cond_result_t config_check_cond_nocache(server *srv, connection *con, dat
|
|||
}
|
||||
break;
|
||||
}
|
||||
case COMP_HTTP_REMOTEIP: {
|
||||
case COMP_HTTP_REMOTE_IP: {
|
||||
char *nm_slash;
|
||||
/* handle remoteip limitations
|
||||
*
|
||||
|
@ -349,7 +349,7 @@ static cond_result_t config_check_cond_nocache(server *srv, connection *con, dat
|
|||
l = con->uri.path;
|
||||
break;
|
||||
|
||||
case COMP_HTTP_QUERYSTRING:
|
||||
case COMP_HTTP_QUERY_STRING:
|
||||
l = con->uri.query;
|
||||
break;
|
||||
|
||||
|
@ -376,7 +376,7 @@ static cond_result_t config_check_cond_nocache(server *srv, connection *con, dat
|
|||
}
|
||||
break;
|
||||
}
|
||||
case COMP_HTTP_USERAGENT: {
|
||||
case COMP_HTTP_USER_AGENT: {
|
||||
data_string *ds;
|
||||
if (NULL != (ds = (data_string *)array_get_element(con->request.headers, "User-Agent"))) {
|
||||
l = ds->value;
|
||||
|
@ -385,7 +385,17 @@ static cond_result_t config_check_cond_nocache(server *srv, connection *con, dat
|
|||
}
|
||||
break;
|
||||
}
|
||||
case COMP_HTTP_REQUEST_METHOD: {
|
||||
const char *method = get_http_method_name(con->request.http_method);
|
||||
|
||||
/* we only have the request method as const char but we need a buffer for comparing */
|
||||
|
||||
buffer_copy_string(srv->tmp_buf, method);
|
||||
|
||||
l = srv->tmp_buf;
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return COND_RESULT_FALSE;
|
||||
}
|
||||
|
|
|
@ -421,10 +421,14 @@ context ::= DOLLAR SRVVARNAME(B) LBRACKET stringop(C) RBRACKET cond(E) expressio
|
|||
{ COMP_HTTP_URL, CONST_STR_LEN("HTTP[\"url\"]" ) },
|
||||
{ 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_USER_AGENT, CONST_STR_LEN("HTTP[\"useragent\"]" ) },
|
||||
{ COMP_HTTP_USER_AGENT, CONST_STR_LEN("HTTP[\"user-agent\"]" ) },
|
||||
{ COMP_HTTP_COOKIE, CONST_STR_LEN("HTTP[\"cookie\"]" ) },
|
||||
{ COMP_HTTP_REMOTEIP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) },
|
||||
{ COMP_HTTP_QUERYSTRING, CONST_STR_LEN("HTTP[\"querystring\"]") },
|
||||
{ COMP_HTTP_REMOTE_IP, CONST_STR_LEN("HTTP[\"remoteip\"]" ) },
|
||||
{ COMP_HTTP_REMOTE_IP, CONST_STR_LEN("HTTP[\"remote-ip\"]" ) },
|
||||
{ COMP_HTTP_QUERY_STRING, CONST_STR_LEN("HTTP[\"querystring\"]") },
|
||||
{ COMP_HTTP_QUERY_STRING, CONST_STR_LEN("HTTP[\"query-string\"]") },
|
||||
{ COMP_HTTP_REQUEST_METHOD, CONST_STR_LEN("HTTP[\"request-method\"]") },
|
||||
{ COMP_HTTP_SCHEME, CONST_STR_LEN("HTTP[\"scheme\"]" ) },
|
||||
{ COMP_UNSET, NULL, 0 },
|
||||
};
|
||||
|
|
|
@ -187,9 +187,9 @@ handler_t http_response_prepare(server *srv, connection *con) {
|
|||
|
||||
config_patch_connection(srv, con, COMP_HTTP_SCHEME); /* Scheme: */
|
||||
config_patch_connection(srv, con, COMP_HTTP_HOST); /* Host: */
|
||||
config_patch_connection(srv, con, COMP_HTTP_REMOTEIP); /* Client-IP */
|
||||
config_patch_connection(srv, con, COMP_HTTP_REMOTE_IP); /* 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_USER_AGENT);/* User-Agent: */
|
||||
config_patch_connection(srv, con, COMP_HTTP_COOKIE); /* Cookie: */
|
||||
|
||||
/** their might be a fragment which has to be cut away */
|
||||
|
@ -276,7 +276,6 @@ handler_t http_response_prepare(server *srv, connection *con) {
|
|||
*/
|
||||
|
||||
config_patch_connection(srv, con, COMP_HTTP_URL); /* HTTPurl */
|
||||
config_patch_connection(srv, con, COMP_HTTP_QUERYSTRING); /* HTTPqs */
|
||||
|
||||
/* do we have to downgrade to 1.0 ? */
|
||||
if (!con->conf.allow_http11) {
|
||||
|
|
Loading…
Reference in New Issue