From 6ecb10aec7c12ddf8bf1813ec983bd6f2ed4c2df Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 6 Jan 2017 18:36:06 +0100 Subject: [PATCH] MINOR: server: take the destination port from the port field, not the addr Next patch will cause the port to disappear from the address field when servers do not resolve so we need to take it from the separate field provided by str2sa_range(). --- src/server.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server.c b/src/server.c index cc763177d..68e8b8015 100644 --- a/src/server.c +++ b/src/server.c @@ -967,7 +967,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr if (!defsrv) { struct sockaddr_storage *sk; - int port1, port2; + int port1, port2, port; struct protocol *proto; struct dns_resolution *curr_resolution; @@ -1005,7 +1005,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr * - IP:+N => port=+N, relative * - IP:-N => port=-N, relative */ - sk = str2sa_range(args[2], NULL, &port1, &port2, &errmsg, NULL, &fqdn, 0); + sk = str2sa_range(args[2], &port, &port1, &port2, &errmsg, NULL, &fqdn, 0); if (!sk) { Alert("parsing [%s:%d] : '%s %s' : %s\n", file, linenum, args[0], args[1], errmsg); err_code |= ERR_ALERT | ERR_FATAL; @@ -1062,7 +1062,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr skip_name_resolution: newsrv->addr = *sk; - newsrv->svc_port = get_host_port(sk); + newsrv->svc_port = port; newsrv->xprt = newsrv->check.xprt = newsrv->agent.xprt = xprt_get(XPRT_RAW); if (!protocol_by_family(newsrv->addr.ss_family)) {