github.com/vincentwoo/docker@v0.7.3-0.20160116130405-82401a4b13c0/docker/daemon_unix.go (about) 1 // +build daemon,!windows 2 3 package main 4 5 import ( 6 "fmt" 7 "os" 8 "os/signal" 9 "syscall" 10 11 apiserver "github.com/docker/docker/api/server" 12 "github.com/docker/docker/daemon" 13 "github.com/docker/docker/pkg/mflag" 14 "github.com/docker/docker/pkg/system" 15 16 _ "github.com/docker/docker/daemon/execdriver/native" 17 ) 18 19 const defaultDaemonConfigFile = "/etc/docker/daemon.json" 20 21 func setPlatformServerConfig(serverConfig *apiserver.Config, daemonCfg *daemon.Config) *apiserver.Config { 22 serverConfig.SocketGroup = daemonCfg.SocketGroup 23 serverConfig.EnableCors = daemonCfg.EnableCors 24 serverConfig.CorsHeaders = daemonCfg.CorsHeaders 25 26 return serverConfig 27 } 28 29 // currentUserIsOwner checks whether the current user is the owner of the given 30 // file. 31 func currentUserIsOwner(f string) bool { 32 if fileInfo, err := system.Stat(f); err == nil && fileInfo != nil { 33 if int(fileInfo.UID()) == os.Getuid() { 34 return true 35 } 36 } 37 return false 38 } 39 40 // setDefaultUmask sets the umask to 0022 to avoid problems 41 // caused by custom umask 42 func setDefaultUmask() error { 43 desiredUmask := 0022 44 syscall.Umask(desiredUmask) 45 if umask := syscall.Umask(desiredUmask); umask != desiredUmask { 46 return fmt.Errorf("failed to set umask: expected %#o, got %#o", desiredUmask, umask) 47 } 48 49 return nil 50 } 51 52 func getDaemonConfDir() string { 53 return "/etc/docker" 54 } 55 56 // setupConfigReloadTrap configures the USR2 signal to reload the configuration. 57 func setupConfigReloadTrap(configFile string, flags *mflag.FlagSet, reload func(*daemon.Config)) { 58 c := make(chan os.Signal, 1) 59 signal.Notify(c, syscall.SIGHUP) 60 go func() { 61 for range c { 62 daemon.ReloadConfiguration(configFile, flags, reload) 63 } 64 }() 65 }