server_windows.go 782 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // +build windows
  2. package server
  3. import (
  4. "errors"
  5. "net"
  6. "net/http"
  7. "github.com/docker/docker/daemon"
  8. )
  9. // NewServer sets up the required Server and does protocol specific checking.
  10. func (s *Server) newServer(proto, addr string) (Server, error) {
  11. var (
  12. err error
  13. l net.Listener
  14. )
  15. switch proto {
  16. case "tcp":
  17. l, err = s.initTcpSocket(addr)
  18. if err != nil {
  19. return nil, err
  20. }
  21. default:
  22. return nil, errors.New("Invalid protocol format. Windows only supports tcp.")
  23. }
  24. return &HttpServer{
  25. &http.Server{
  26. Addr: addr,
  27. Handler: s.router,
  28. },
  29. l,
  30. }, nil
  31. }
  32. func (s *Server) AcceptConnections(d *daemon.Daemon) {
  33. s.daemon = d
  34. // close the lock so the listeners start accepting connections
  35. select {
  36. case <-s.start:
  37. default:
  38. close(s.start)
  39. }
  40. }