mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-12 13:23:48 -05:00
Improve Unix domain socket handling
- Check if the file is in use - Change the permission to 0600
This commit is contained in:
@@ -89,11 +89,19 @@ func startHttpServer(address listenAddress, actionChannel chan []*action, getHan
|
|||||||
var listener net.Listener
|
var listener net.Listener
|
||||||
var err error
|
var err error
|
||||||
if len(address.sock) > 0 {
|
if len(address.sock) > 0 {
|
||||||
|
if _, err := os.Stat(address.sock); err == nil {
|
||||||
|
// Check if the socket is already in use
|
||||||
|
if conn, err := net.Dial("unix", address.sock); err == nil {
|
||||||
|
conn.Close()
|
||||||
|
return nil, 0, fmt.Errorf("socket already in use: %s", address.sock)
|
||||||
|
}
|
||||||
os.Remove(address.sock)
|
os.Remove(address.sock)
|
||||||
|
}
|
||||||
listener, err = net.Listen("unix", address.sock)
|
listener, err = net.Listen("unix", address.sock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, fmt.Errorf("failed to listen on %s", address.sock)
|
return nil, 0, fmt.Errorf("failed to listen on %s", address.sock)
|
||||||
}
|
}
|
||||||
|
os.Chmod(address.sock, 0600)
|
||||||
} else {
|
} else {
|
||||||
addrStr := fmt.Sprintf("%s:%d", host, port)
|
addrStr := fmt.Sprintf("%s:%d", host, port)
|
||||||
listener, err = net.Listen("tcp", addrStr)
|
listener, err = net.Listen("tcp", addrStr)
|
||||||
|
|||||||
Reference in New Issue
Block a user