]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: lua: Fix Server.get_addr() port values
authorNenad Merdanovic <nmerdan@haproxy.com>
Mon, 24 Jul 2017 02:04:58 +0000 (22:04 -0400)
committerWilly Tarreau <w@1wt.eu>
Mon, 24 Jul 2017 04:53:52 +0000 (06:53 +0200)
The get_addr() method of the Lua Server class was using the
'sockaddr_storage addr' member to get the port value. HAProxy does not
store ports in this member as it uses a separate member, called
'svc_port'.

This fix should be backported to 1.7.

src/hlua_fcn.c

index db46279d3e085ac83a031ba040e54b45d7853480..008b60d4ba4200a4ff14413f52b4ea222ff3df40 100644 (file)
@@ -545,8 +545,7 @@ int hlua_server_get_addr(lua_State *L)
                          addr, INET_ADDRSTRLEN);
                luaL_addstring(&b, addr);
                luaL_addstring(&b, ":");
-               snprintf(addr, INET_ADDRSTRLEN, "%d",
-                        ntohs(((struct sockaddr_in *)&srv->addr)->sin_port));
+               snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port);
                luaL_addstring(&b, addr);
                break;
        case AF_INET6:
@@ -554,8 +553,7 @@ int hlua_server_get_addr(lua_State *L)
                          addr, INET_ADDRSTRLEN);
                luaL_addstring(&b, addr);
                luaL_addstring(&b, ":");
-               snprintf(addr, INET_ADDRSTRLEN, "%d",
-                        ntohs(((struct sockaddr_in6 *)&srv->addr)->sin6_port));
+               snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port);
                luaL_addstring(&b, addr);
                break;
        case AF_UNIX: