监听uds时,自动设文件权限为666, closes #160

This commit is contained in:
e1732a364fed
2000-01-01 00:00:00 +00:00
parent fa98287562
commit 4267e196ed
2 changed files with 12 additions and 18 deletions

View File

@@ -16,7 +16,7 @@
使用 https + basic auth + (plain text)/(json)
api在不复杂时可以使用纯空格、换行符 分隔的字符串形式 or toml.
api在不复杂时可以使用纯空格、换行符 分隔的字符串形式 (plain text) or toml/json.
### 功能列表
1. 生成toml配置文件功能【已实现】

View File

@@ -64,22 +64,6 @@ func loopAccept(listener net.Listener, xver int, acceptFunc func(net.Conn)) {
}
}
/*
func loopAcceptUDP(uc net.UDPConn, acceptFunc func([]byte, *net.UDPAddr)) {
for {
p := utils.GetPacket()
n, addr, err := uc.ReadFromUDP(p)
if err != nil {
if ce := utils.CanLogWarn("loopAcceptUDP failed to accept"); ce != nil {
ce.Write(zap.Error(err))
}
break
}
go acceptFunc(p[:n], addr)
}
}
*/
// ListenAndAccept 试图监听 tcp, udp 和 unix domain socket 这三种传输层协议.
//
// 非阻塞在自己的goroutine中监听.
@@ -133,7 +117,7 @@ func ListenAndAccept(network, addr string, sockopt *Sockopt, xver int, acceptFun
case UNIX:
// 参考 https://eli.thegreenplace.net/2019/unix-domain-sockets-in-go/
//监听 unix domain socket后就会自动创建 相应文件;
//监听 unix domain socket 后,就会自动创建 相应文件;
// 而且程序退出后,该文件不会被删除
// 而且再次启动后如果遇到了这个文件就会报错就像tcp端口已经被监听 的错误一样:
// “bind: address already in use”
@@ -173,6 +157,16 @@ func ListenAndAccept(network, addr string, sockopt *Sockopt, xver int, acceptFun
return
}
if p == UNIX {
eu := os.Chmod(addr, 0666)
if eu != nil {
if ce := utils.CanLogErr("unix file can't set to 0666"); ce != nil {
ce.Write(zap.String("deleting", addr))
}
}
}
go loopAccept(listener, xver, acceptFunc)
}