]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: server: implement init-addr none
authorWilly Tarreau <w@1wt.eu>
Fri, 4 Nov 2016 14:17:58 +0000 (15:17 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 9 Nov 2016 14:30:47 +0000 (15:30 +0100)
The server is put into the "no address" maintenance state in this case.

src/server.c

index b4d4f5079e0b3094bb9c1eacef6496df3fcaa007..b99691430e7e381973993d1ac06e7245d066b9de 100644 (file)
@@ -1182,8 +1182,11 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr
                                        else if (!strcmp(p, "last")) {
                                                done = srv_append_initaddr(&newsrv->init_addr_methods, SRV_IADDR_LAST);
                                        }
+                                       else if (!strcmp(p, "none")) {
+                                               done = srv_append_initaddr(&newsrv->init_addr_methods, SRV_IADDR_NONE);
+                                       }
                                        else {
-                                               Alert("parsing [%s:%d]: '%s' : unknown init-addr method '%s', supported methods are 'libc', 'last'.\n",
+                                               Alert("parsing [%s:%d]: '%s' : unknown init-addr method '%s', supported methods are 'libc', 'last', 'none'.\n",
                                                        file, linenum, args[cur_arg], p);
                                                err_code |= ERR_ALERT | ERR_FATAL;
                                                goto out;
@@ -3255,6 +3258,10 @@ static int srv_iterate_initaddr(struct server *srv)
                        return_code |= err_code;
                        break;
 
+               case SRV_IADDR_NONE:
+                       srv_set_admin_flag(srv, SRV_ADMF_RMAINT, NULL);
+                       return return_code;
+
                default: /* unhandled method */
                        break;
                }