mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-12-24 13:27:56 +08:00
监听uds时,自动设文件权限为666, closes #160
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
|
||||
使用 https + basic auth + (plain text)/(json)
|
||||
|
||||
api在不复杂时,可以使用纯空格、换行符 分隔的字符串形式 or toml.
|
||||
api在不复杂时,可以使用纯空格、换行符 分隔的字符串形式 (plain text) or toml/json.
|
||||
|
||||
### 功能列表
|
||||
1. 生成toml配置文件功能【已实现】
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user