|
6 | 6 | "bytes" |
7 | 7 | "context" |
8 | 8 | "fmt" |
| 9 | + "io" |
9 | 10 | "net" |
10 | 11 | "net/url" |
11 | 12 | "os" |
@@ -522,6 +523,8 @@ func (c *Common) commonUDPLoop() { |
522 | 523 | if err != nil { |
523 | 524 | if netErr, ok := err.(net.Error); ok && netErr.Timeout() { |
524 | 525 | c.logger.Debug("UDP session abort: %v", err) |
| 526 | + } else if err == io.EOF { |
| 527 | + c.logger.Debug("UDP session close: %v", err) |
525 | 528 | } else { |
526 | 529 | c.logger.Error("Read failed: %v", err) |
527 | 530 | } |
@@ -707,6 +710,8 @@ func (c *Common) commonUDPOnce(signalURL *url.URL) { |
707 | 710 | if err != nil { |
708 | 711 | if netErr, ok := err.(net.Error); ok && netErr.Timeout() { |
709 | 712 | c.logger.Debug("UDP session abort: %v", err) |
| 713 | + } else if err == io.EOF { |
| 714 | + c.logger.Debug("UDP session close: %v", err) |
710 | 715 | } else { |
711 | 716 | c.logger.Error("Read failed: %v", err) |
712 | 717 | } |
@@ -740,6 +745,8 @@ func (c *Common) commonUDPOnce(signalURL *url.URL) { |
740 | 745 | if err != nil { |
741 | 746 | if netErr, ok := err.(net.Error); ok && netErr.Timeout() { |
742 | 747 | c.logger.Debug("UDP session abort: %v", err) |
| 748 | + } else if err == io.EOF { |
| 749 | + c.logger.Debug("UDP session close: %v", err) |
743 | 750 | } else { |
744 | 751 | c.logger.Error("Read failed: %v", err) |
745 | 752 | } |
@@ -900,8 +907,8 @@ func (c *Common) singleUDPLoop() error { |
900 | 907 | if err != nil { |
901 | 908 | if netErr, ok := err.(net.Error); ok && netErr.Timeout() { |
902 | 909 | c.logger.Debug("UDP session abort: %v", err) |
903 | | - } else if strings.Contains(err.Error(), "use of closed network connection") { |
904 | | - c.logger.Debug("Read closed: %v", err) |
| 910 | + } else if err == io.EOF { |
| 911 | + c.logger.Debug("UDP session close: %v", err) |
905 | 912 | } else { |
906 | 913 | c.logger.Error("Read failed: %v", err) |
907 | 914 | } |
|
0 commit comments