]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: protocols: use is_inet_addr() when only INET addresses are desired
authorWilly Tarreau <w@1wt.eu>
Fri, 9 May 2014 20:56:10 +0000 (22:56 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 9 May 2014 23:26:37 +0000 (01:26 +0200)
We used to have is_addr() in place to validate sometimes the existence
of an address, sometimes a valid IPv4 or IPv6 address. Replace them
carefully so that is_inet_addr() is used wherever we can only use an
IPv4/IPv6 address.

src/backend.c
src/cfgparse.c
src/proto_tcp.c
src/server.c

index 9c3ae0e1a81c99572d979c9131c0a90f21e5df63..0912fd449cfdd0f17c95b0ecb8d3cfda1305d676 100644 (file)
@@ -753,7 +753,8 @@ int assign_server_address(struct session *s)
                if (!is_addr(&srv_conn->addr.to) && cli_conn) {
                        /* if the server has no address, we use the same address
                         * the client asked, which is handy for remapping ports
-                        * locally on multiple addresses at once.
+                        * locally on multiple addresses at once. Nothing is done
+                        * for AF_UNIX addresses.
                         */
                        conn_get_to_addr(cli_conn);
 
index 6b1034e7dbc7c707b0d890b3772d8fcd7d55bc94..decdcfd0e2fca1643021e8361cf2091a2b4ef6fb 100644 (file)
@@ -4813,7 +4813,7 @@ stats_error_parsing:
                        if (!strcmp(args[cur_arg], "usesrc")) {  /* address to use outside */
 #if defined(CONFIG_HAP_CTTPROXY) || defined(CONFIG_HAP_TRANSPARENT)
 #if !defined(CONFIG_HAP_TRANSPARENT)
-                               if (!is_addr(&curproxy->conn_src.source_addr)) {
+                               if (!is_inet_addr(&curproxy->conn_src.source_addr)) {
                                        Alert("parsing [%s:%d] : '%s' requires an explicit 'source' address.\n",
                                              file, linenum, "usesrc");
                                        err_code |= ERR_ALERT | ERR_FATAL;
index f77203a4e1ddd05e96195455a34d2b6982e8c703..a672de41576754f42f4f3162f845ee3823b24786 100644 (file)
@@ -201,14 +201,14 @@ int tcp_bind_socket(int fd, int flags, struct sockaddr_storage *local, struct so
 
        setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
        if (foreign_ok) {
-               if (is_addr(&bind_addr)) {
+               if (is_inet_addr(&bind_addr)) {
                        ret = bind(fd, (struct sockaddr *)&bind_addr, get_addr_len(&bind_addr));
                        if (ret < 0)
                                return 2;
                }
        }
        else {
-               if (is_addr(local)) {
+               if (is_inet_addr(local)) {
                        ret = bind(fd, (struct sockaddr *)local, get_addr_len(local));
                        if (ret < 0)
                                return 1;
@@ -367,7 +367,7 @@ int tcp_connect_server(struct connection *conn, int data, int delack)
        if (src) {
                int ret, flags = 0;
 
-               if (is_addr(&conn->addr.from)) {
+               if (is_inet_addr(&conn->addr.from)) {
                        switch (src->opts & CO_SRC_TPROXY_MASK) {
                        case CO_SRC_TPROXY_ADDR:
                        case CO_SRC_TPROXY_CLI:
index 51bb85aff85d19cfb9693a0ef81fc26697d9ca8b..9fa69f2415a447c452cedcc1976689567d1aab1a 100644 (file)
@@ -829,7 +829,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr
                                        if (!strcmp(args[cur_arg], "usesrc")) {  /* address to use outside */
 #if defined(CONFIG_HAP_CTTPROXY) || defined(CONFIG_HAP_TRANSPARENT)
 #if !defined(CONFIG_HAP_TRANSPARENT)
-                                               if (!is_addr(&newsrv->conn_src.source_addr)) {
+                                               if (!is_inet_addr(&newsrv->conn_src.source_addr)) {
                                                        Alert("parsing [%s:%d] : '%s' requires an explicit '%s' address.\n",
                                                              file, linenum, "usesrc", "source");
                                                        err_code |= ERR_ALERT | ERR_FATAL;