Browse code

Revert "Return listenbuffer behavior"

This reverts commit 281a48d092fa84500c63b984ad45c59a06f301c4.

Signed-off-by: Alex Crawford <alex.crawford@coreos.com>

Alex Crawford authored on 2015/11/25 11:17:37
Showing 2 changed files
... ...
@@ -78,10 +78,11 @@ func (s *Server) Close() {
78 78
 }
79 79
 
80 80
 // ServeAPI loops through all initialized servers and spawns goroutine
81
-// with Serve() method for each.
81
+// with Server method for each. It sets CreateMux() as Handler also.
82 82
 func (s *Server) ServeAPI() error {
83 83
 	var chErrors = make(chan error, len(s.servers))
84 84
 	for _, srv := range s.servers {
85
+		srv.srv.Handler = s.CreateMux()
85 86
 		go func(srv *HTTPServer) {
86 87
 			var err error
87 88
 			logrus.Infof("API listen on %s", srv.l.Addr())
... ...
@@ -168,16 +169,11 @@ func (s *Server) makeHTTPHandler(handler httputils.APIFunc) http.HandlerFunc {
168 168
 }
169 169
 
170 170
 // InitRouters initializes a list of routers for the server.
171
-// Sets those routers as Handler for each server.
172 171
 func (s *Server) InitRouters(d *daemon.Daemon) {
173 172
 	s.addRouter(local.NewRouter(d))
174 173
 	s.addRouter(network.NewRouter(d))
175 174
 	s.addRouter(volume.NewRouter(d))
176 175
 	s.addRouter(container.NewRouter(d))
177
-
178
-	for _, srv := range s.servers {
179
-		srv.srv.Handler = s.CreateMux()
180
-	}
181 176
 }
182 177
 
183 178
 // addRouter adds a new router to the server.
... ...
@@ -217,21 +217,6 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error {
217 217
 		logrus.Fatal(err)
218 218
 	}
219 219
 
220
-	// The serve API routine never exits unless an error occurs
221
-	// We need to start it as a goroutine and wait on it so
222
-	// daemon doesn't exit
223
-	// All servers must be protected with some mechanism (systemd socket, listenbuffer)
224
-	// which prevents real handling of request until routes will be set.
225
-	serveAPIWait := make(chan error)
226
-	go func() {
227
-		if err := api.ServeAPI(); err != nil {
228
-			logrus.Errorf("ServeAPI error: %v", err)
229
-			serveAPIWait <- err
230
-			return
231
-		}
232
-		serveAPIWait <- nil
233
-	}()
234
-
235 220
 	if err := migrateKey(); err != nil {
236 221
 		logrus.Fatal(err)
237 222
 	}
... ...
@@ -259,6 +244,19 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error {
259 259
 
260 260
 	api.InitRouters(d)
261 261
 
262
+	// The serve API routine never exits unless an error occurs
263
+	// We need to start it as a goroutine and wait on it so
264
+	// daemon doesn't exit
265
+	serveAPIWait := make(chan error)
266
+	go func() {
267
+		if err := api.ServeAPI(); err != nil {
268
+			logrus.Errorf("ServeAPI error: %v", err)
269
+			serveAPIWait <- err
270
+			return
271
+		}
272
+		serveAPIWait <- nil
273
+	}()
274
+
262 275
 	signal.Trap(func() {
263 276
 		api.Close()
264 277
 		<-serveAPIWait