|
|
|
@ -402,7 +402,7 @@ static int proxy_create_env(server *srv, handler_ctx *hctx) {
|
|
|
|
|
|
|
|
|
|
connection *con = hctx->remote_conn;
|
|
|
|
|
buffer *b;
|
|
|
|
|
UNUSED(srv);
|
|
|
|
|
data_string *ds_dst;
|
|
|
|
|
|
|
|
|
|
/* build header */
|
|
|
|
|
|
|
|
|
@ -414,6 +414,15 @@ static int proxy_create_env(server *srv, handler_ctx *hctx) {
|
|
|
|
|
|
|
|
|
|
buffer_append_string_buffer(b, con->request.uri);
|
|
|
|
|
BUFFER_APPEND_STRING_CONST(b, " HTTP/1.0\r\n");
|
|
|
|
|
|
|
|
|
|
if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) {
|
|
|
|
|
ds_dst = data_string_init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BUFFER_COPY_STRING_CONST(ds_dst->key, "X-Forwarded-For");
|
|
|
|
|
buffer_append_string(ds_dst->value, inet_ntop_cache_get_ip(srv, &(con->dst_addr)));
|
|
|
|
|
|
|
|
|
|
array_insert_unique(con->request.headers, (data_unset *)ds_dst);
|
|
|
|
|
|
|
|
|
|
/* request header */
|
|
|
|
|
for (i = 0; i < con->request.headers->used; i++) {
|
|
|
|
@ -431,10 +440,6 @@ static int proxy_create_env(server *srv, handler_ctx *hctx) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BUFFER_APPEND_STRING_CONST(b, "X-Forwarded-For: ");
|
|
|
|
|
buffer_append_string(b, inet_ntop_cache_get_ip(srv, &(con->dst_addr)));
|
|
|
|
|
BUFFER_APPEND_STRING_CONST(b, "\r\n");
|
|
|
|
|
|
|
|
|
|
BUFFER_APPEND_STRING_CONST(b, "\r\n");
|
|
|
|
|
|
|
|
|
|
hctx->wb->bytes_in += b->used - 1;
|
|
|
|
|