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