Add OpenVPN, TrustTunnel, Sudoku, inbound managers. Fixes

This commit is contained in:
Shtorm
2026-06-04 01:47:50 +03:00
parent 9b3da79c32
commit 195a33379d
164 changed files with 16665 additions and 1332 deletions

View File

@@ -229,7 +229,7 @@ func (s *RemoteNode) send(data *pb.NodeData) {
}
func (s *RemoteNode) close(err error) {
if err != nil {
if err == nil || s.err != nil {
return
}
s.err = err

View File

@@ -5,6 +5,7 @@ import (
"crypto/subtle"
"errors"
"sync"
"time"
"github.com/sagernet/sing-box/adapter"
boxService "github.com/sagernet/sing-box/adapter/service"
@@ -23,6 +24,7 @@ import (
"golang.org/x/net/http2"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/keepalive"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
)
@@ -134,9 +136,21 @@ func (s *APIServer) Start(stage adapter.StartStage) error {
}
tcpListener = aTLS.NewListener(tcpListener, s.tlsConfig)
}
keepAliveTime := time.Duration(s.options.KeepAlive)
if keepAliveTime <= 0 {
keepAliveTime = 10 * time.Second
}
keepAliveTimeout := time.Duration(s.options.KeepAliveTimeout)
if keepAliveTimeout <= 0 {
keepAliveTimeout = 5 * time.Second
}
s.grpcServer = grpc.NewServer(
grpc.ChainUnaryInterceptor(s.unaryAuthInterceptor),
grpc.StreamInterceptor(s.streamAuthInterceptor),
grpc.KeepaliveParams(keepalive.ServerParameters{
Time: keepAliveTime,
Timeout: keepAliveTimeout,
}),
)
pb.RegisterManagerServer(s.grpcServer, s)
go func() {