5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-22 16:30:27 +00:00

Complain if socket file already exists

This commit is contained in:
Neil Alexander 2018-12-10 00:19:21 +00:00
parent f791df4977
commit 06c6dfc67f
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944

View File

@ -343,11 +343,14 @@ func (a *admin) listen() {
if err == nil { if err == nil {
switch strings.ToLower(u.Scheme) { switch strings.ToLower(u.Scheme) {
case "unix": case "unix":
if _, err := os.Stat(a.listenaddr[7:]); err == nil {
a.core.log.Println("WARNING:", a.listenaddr[7:], "already exists and may be in use by another process")
}
a.listener, err = net.Listen("unix", a.listenaddr[7:]) a.listener, err = net.Listen("unix", a.listenaddr[7:])
if err == nil { if err == nil {
if err := os.Chmod(a.listenaddr[7:], 0660); err != nil { if err := os.Chmod(a.listenaddr[7:], 0660); err != nil {
a.core.log.Printf("WARNING:", a.listenaddr[:7], "may have unsafe permissions!") a.core.log.Println("WARNING:", a.listenaddr[:7], "may have unsafe permissions!")
} }
} }
case "tcp": case "tcp":
a.listener, err = net.Listen("tcp", u.Host) a.listener, err = net.Listen("tcp", u.Host)