Browse Source

force packet reader in freedom on UDP

Darien Raymond 7 years ago
parent
commit
ec95dca3e5
1 changed files with 7 additions and 1 deletions
  1. 7 1
      proxy/freedom/freedom.go

+ 7 - 1
proxy/freedom/freedom.go

@@ -160,7 +160,13 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
 	responseDone := func() error {
 		defer timer.SetTimeout(plcy.Timeouts.UplinkOnly)
 
-		if err := buf.Copy(buf.NewReader(conn), output, buf.UpdateActivity(timer)); err != nil {
+		var reader buf.Reader
+		if destination.Network == net.Network_TCP {
+			reader = buf.NewReader(conn)
+		} else {
+			reader = &buf.PacketReader{Reader: conn}
+		}
+		if err := buf.Copy(reader, output, buf.UpdateActivity(timer)); err != nil {
 			return newError("failed to process response").Base(err)
 		}