Bläddra i källkod

fix reading in udp conn

Darien Raymond 7 år sedan
förälder
incheckning
46dbbfff8c
1 ändrade filer med 7 tillägg och 4 borttagningar
  1. 7 4
      app/proxyman/inbound/worker.go

+ 7 - 4
app/proxyman/inbound/worker.go

@@ -131,8 +131,13 @@ func (c *udpConn) ReadMultiBuffer() (buf.MultiBuffer, error) {
 	select {
 	case in := <-c.input:
 		payload.Append(in)
-	case <-c.done.Wait():
-		return nil, io.EOF
+	default:
+		select {
+		case in := <-c.input:
+			payload.Append(in)
+		case <-c.done.Wait():
+			return nil, io.EOF
+		}
 	}
 
 L:
@@ -140,8 +145,6 @@ L:
 		select {
 		case in := <-c.input:
 			payload.Append(in)
-		case <-c.done.Wait():
-			break L
 		default:
 			break L
 		}