mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-04 04:22:47 +00:00
MINOR: session: only call http_send_name_header() when changing the server
Till now we used to call the function until the connection established, which means that the header rewriting was performed for nothing upon each even (eg: uploaded contents) until the server responded or timed out. Now we only call the function when we assign the server.
This commit is contained in:
parent
9d9179b581
commit
1e5dfdad77
@ -2194,21 +2194,22 @@ struct task *process_session(struct task *t)
|
|||||||
*/
|
*/
|
||||||
if (s->si[1].state != SI_ST_REQ)
|
if (s->si[1].state != SI_ST_REQ)
|
||||||
sess_update_stream_int(s, &s->si[1]);
|
sess_update_stream_int(s, &s->si[1]);
|
||||||
if (s->si[1].state == SI_ST_REQ)
|
if (s->si[1].state == SI_ST_REQ) {
|
||||||
sess_prepare_conn_req(s, &s->si[1]);
|
sess_prepare_conn_req(s, &s->si[1]);
|
||||||
|
|
||||||
|
/* Now we can add the server name to a header (if requested) */
|
||||||
|
/* check for HTTP mode and proxy server_name_hdr_name != NULL */
|
||||||
|
if ((s->flags & SN_BE_ASSIGNED) &&
|
||||||
|
(s->be->mode == PR_MODE_HTTP) &&
|
||||||
|
(s->be->server_id_hdr_name != NULL)) {
|
||||||
|
http_send_name_header(&s->txn, s->be, objt_server(s->target)->id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
srv = objt_server(s->target);
|
srv = objt_server(s->target);
|
||||||
if (s->si[1].state == SI_ST_ASS && srv && srv->rdr_len && (s->flags & SN_REDIRECTABLE))
|
if (s->si[1].state == SI_ST_ASS && srv && srv->rdr_len && (s->flags & SN_REDIRECTABLE))
|
||||||
http_perform_server_redirect(s, &s->si[1]);
|
http_perform_server_redirect(s, &s->si[1]);
|
||||||
} while (s->si[1].state == SI_ST_ASS);
|
} while (s->si[1].state == SI_ST_ASS);
|
||||||
|
|
||||||
/* Now we can add the server name to a header (if requested) */
|
|
||||||
/* check for HTTP mode and proxy server_name_hdr_name != NULL */
|
|
||||||
if ((s->flags & SN_BE_ASSIGNED) &&
|
|
||||||
(s->be->mode == PR_MODE_HTTP) &&
|
|
||||||
(s->be->server_id_hdr_name != NULL)) {
|
|
||||||
http_send_name_header(&s->txn, s->be, objt_server(s->target)->id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Benchmarks have shown that it's optimal to do a full resync now */
|
/* Benchmarks have shown that it's optimal to do a full resync now */
|
||||||
|
Loading…
Reference in New Issue
Block a user