Compare commits

..

1 Commits

Author SHA1 Message Date
wpetit 536100da90 fix: enhance proxy stability 2020-10-24 19:17:54 +02:00
2 changed files with 10 additions and 25 deletions

View File

@ -2,7 +2,6 @@ package tunnel
import (
"context"
"io"
"net"
"sync"
"time"
@ -33,33 +32,17 @@ func (c *RemoteClient) Accept(ctx context.Context, conn *kcp.UDPSession) error {
config.KeepAliveInterval = 10 * time.Second
config.KeepAliveTimeout = 2 * config.KeepAliveInterval
var (
sess *smux.Session
err error
ctrl *control.Control
)
logger.Debug(ctx, "creating server session")
for {
logger.Debug(ctx, "creating server session")
sess, err := smux.Server(conn, config)
if err != nil {
return errors.WithStack(err)
}
sess, err = smux.Server(conn, config)
if err != nil {
return errors.WithStack(err)
}
ctrl := control.New()
ctrl = control.New()
err = ctrl.Init(ctx, sess, true)
if err != nil && errors.Is(err, io.ErrClosedPipe) {
continue
}
if err != nil {
return errors.WithStack(err)
}
break
if err := ctrl.Init(ctx, sess, true); err != nil {
return errors.WithStack(err)
}
c.sess = sess

View File

@ -37,7 +37,9 @@ func (s *Server) handleNewConn(ctx context.Context, conn *kcp.UDPSession) {
ctx = logger.With(ctx, logger.F("remoteAddr", conn.RemoteAddr().String()))
remoteClient := NewRemoteClient()
defer remoteClient.Close()
defer conn.Close()
remoteClient.ConfigureHooks(s.conf.Hooks)