diff --git a/components/engine/api/server/server.go b/components/engine/api/server/server.go index e9805864ca..9c838c4bbf 100644 --- a/components/engine/api/server/server.go +++ b/components/engine/api/server/server.go @@ -1211,11 +1211,20 @@ func ListenAndServe(proto, addr string, job *engine.Job) error { } } + var oldmask int + if proto == "unix" { + oldmask = syscall.Umask(0777) + } + if job.GetenvBool("BufferRequests") { l, err = listenbuffer.NewListenBuffer(proto, addr, activationLock) } else { l, err = net.Listen(proto, addr) } + + if proto == "unix" { + syscall.Umask(oldmask) + } if err != nil { return err } @@ -1253,9 +1262,6 @@ func ListenAndServe(proto, addr string, job *engine.Job) error { log.Println("/!\\ DON'T BIND ON ANOTHER IP ADDRESS THAN 127.0.0.1 IF YOU DON'T KNOW WHAT YOU'RE DOING /!\\") } case "unix": - if err := os.Chmod(addr, 0660); err != nil { - return err - } socketGroup := job.Getenv("SocketGroup") if socketGroup != "" { if err := changeGroup(addr, socketGroup); err != nil { @@ -1267,6 +1273,9 @@ func ListenAndServe(proto, addr string, job *engine.Job) error { } } } + if err := os.Chmod(addr, 0660); err != nil { + return err + } default: return fmt.Errorf("Invalid protocol format.") }