From 397d67876cb3063138754250a1e4a01881e60ec2 Mon Sep 17 00:00:00 2001 From: "Aka.Why" Date: Mon, 11 Mar 2019 11:01:56 +0800 Subject: [PATCH] caddy: Start all servers only after all listeners successful (#2508) --- caddy.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/caddy.go b/caddy.go index 01d68ae02..aa095febf 100644 --- a/caddy.go +++ b/caddy.go @@ -781,6 +781,10 @@ func startServers(serverList []Server, inst *Instance, restartFds map[string]res } } + inst.servers = append(inst.servers, ServerListener{server: s, listener: ln, packet: pc}) + } + + for _, s := range inst.servers { inst.wg.Add(2) stopWg.Add(2) func(s Server, ln net.Listener, pc net.PacketConn, inst *Instance) { @@ -799,9 +803,7 @@ func startServers(serverList []Server, inst *Instance, restartFds map[string]res }() errChan <- s.ServePacket(pc) }() - }(s, ln, pc, inst) - - inst.servers = append(inst.servers, ServerListener{server: s, listener: ln, packet: pc}) + }(s.server, s.listener, s.packet, inst) } // Log errors that may be returned from Serve() calls,