代理服务停止后关闭监听
This commit is contained in:
@@ -321,17 +321,21 @@ func (s *Service) startFwdTun(port uint16) error {
|
||||
}
|
||||
defer proxy.Close()
|
||||
|
||||
errCh := make(chan error)
|
||||
defer close(errCh)
|
||||
go func() {
|
||||
err := proxy.Run()
|
||||
if err != nil {
|
||||
slog.Error("代理服务异常退出", "err", err)
|
||||
}
|
||||
errCh <- err
|
||||
}()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-s.ctx.Done():
|
||||
return nil
|
||||
case err := <-errCh:
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "转发服务发生错误")
|
||||
}
|
||||
case conn := <-proxy.Conn:
|
||||
s.userConnWg.Add(1)
|
||||
go func() {
|
||||
|
||||
Reference in New Issue
Block a user