mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-04 02:19:09 +00:00
[BUG] use backend's source and not server's source with tproxy
copy-paste typo.
This commit is contained in:
parent
0a45989de3
commit
786d1915b0
@ -1274,23 +1274,20 @@ int connect_server(struct session *s)
|
|||||||
struct sockaddr_in *remote = NULL;
|
struct sockaddr_in *remote = NULL;
|
||||||
int ret, flags = 0;
|
int ret, flags = 0;
|
||||||
|
|
||||||
if (s->srv->state & SRV_TPROXY_MASK) {
|
switch (s->srv->state & SRV_TPROXY_MASK) {
|
||||||
switch (s->srv->state & SRV_TPROXY_MASK) {
|
case SRV_TPROXY_ADDR:
|
||||||
case SRV_TPROXY_ADDR:
|
remote = (struct sockaddr_in *)&s->srv->tproxy_addr;
|
||||||
remote = (struct sockaddr_in *)&s->srv->tproxy_addr;
|
flags = 3;
|
||||||
flags = 3;
|
break;
|
||||||
break;
|
case SRV_TPROXY_CLI:
|
||||||
case SRV_TPROXY_CLI:
|
flags |= 2;
|
||||||
flags |= 2;
|
/* fall through */
|
||||||
/* fall through */
|
case SRV_TPROXY_CIP:
|
||||||
case SRV_TPROXY_CIP:
|
/* FIXME: what can we do if the client connects in IPv6 ? */
|
||||||
/* FIXME: what can we do if the client connects in IPv6 ? */
|
flags |= 1;
|
||||||
flags |= 1;
|
remote = (struct sockaddr_in *)&s->cli_addr;
|
||||||
remote = (struct sockaddr_in *)&s->cli_addr;
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = bind_ipv4(fd, flags, &s->srv->source_addr, remote);
|
ret = bind_ipv4(fd, flags, &s->srv->source_addr, remote);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
close(fd);
|
close(fd);
|
||||||
@ -1314,24 +1311,22 @@ int connect_server(struct session *s)
|
|||||||
struct sockaddr_in *remote = NULL;
|
struct sockaddr_in *remote = NULL;
|
||||||
int ret, flags = 0;
|
int ret, flags = 0;
|
||||||
|
|
||||||
if (s->be->options & PR_O_TPXY_MASK) {
|
switch (s->be->options & PR_O_TPXY_MASK) {
|
||||||
switch (s->be->options & PR_O_TPXY_MASK) {
|
case PR_O_TPXY_ADDR:
|
||||||
case PR_O_TPXY_ADDR:
|
remote = (struct sockaddr_in *)&s->be->tproxy_addr;
|
||||||
remote = (struct sockaddr_in *)&s->be->tproxy_addr;
|
flags = 3;
|
||||||
flags = 3;
|
break;
|
||||||
break;
|
case PR_O_TPXY_CLI:
|
||||||
case PR_O_TPXY_CLI:
|
flags |= 2;
|
||||||
flags |= 2;
|
/* fall through */
|
||||||
/* fall through */
|
case PR_O_TPXY_CIP:
|
||||||
case PR_O_TPXY_CIP:
|
/* FIXME: what can we do if the client connects in IPv6 ? */
|
||||||
/* FIXME: what can we do if the client connects in IPv6 ? */
|
flags |= 1;
|
||||||
flags |= 1;
|
remote = (struct sockaddr_in *)&s->cli_addr;
|
||||||
remote = (struct sockaddr_in *)&s->cli_addr;
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = bind_ipv4(fd, flags, &s->srv->source_addr, remote);
|
ret = bind_ipv4(fd, flags, &s->be->source_addr, remote);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
close(fd);
|
close(fd);
|
||||||
if (ret == 1) {
|
if (ret == 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user