Open listener port earlier

This commit is contained in:
Cameron Moore 2019-12-27 12:01:12 -06:00
parent 725fda68dc
commit 5af6e4d1ec

View file

@ -112,6 +112,23 @@ func main() {
hooksFiles = append(hooksFiles, "hooks.json")
}
addr := fmt.Sprintf("%s:%d", *ip, *port)
// Open listener early so we can drop privileges.
ln, err := net.Listen("tcp", addr)
if err != nil {
log.Printf("error listening on port: %s", err)
return
}
if *setUID != 0 {
err := dropPrivileges(*setUID, *setGID)
if err != nil {
log.Printf("error dropping privileges: %s", err)
return
}
}
if *logPath != "" {
file, err := os.OpenFile(*logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
@ -217,29 +234,12 @@ func main() {
r.HandleFunc(hooksURL, hookHandler)
addr := fmt.Sprintf("%s:%d", *ip, *port)
// Create common HTTP server settings
svr := &http.Server{
Addr: addr,
Handler: r,
}
// Open listener
ln, err := net.Listen("tcp", addr)
if err != nil {
log.Printf("error listening on port: %s", err)
return
}
if *setUID != 0 {
err := dropPrivileges(*setUID, *setGID)
if err != nil {
log.Printf("error dropping privileges: %s", err)
return
}
}
// Serve HTTP
if !*secure {
log.Printf("serving hooks on http://%s%s", addr, hooksURL)