Merge "ipc/benchmarks: fix for https://veyron-review.googlesource.com/#/c/6373/"
diff --git a/runtimes/google/ipc/benchmarks/server.go b/runtimes/google/ipc/benchmarks/server.go
index 36cfdb8..0c41a9b 100644
--- a/runtimes/google/ipc/benchmarks/server.go
+++ b/runtimes/google/ipc/benchmarks/server.go
@@ -1,6 +1,8 @@
 package benchmarks
 
 import (
+	"io"
+
 	sflag "veyron.io/veyron/veyron/security/flag"
 
 	"veyron.io/veyron/veyron2"
@@ -16,17 +18,20 @@
 	return payload, nil
 }
 
-func (i *impl) EchoStream(ctx ipc.ServerCall, stream BenchmarkServiceEchoStreamStream) error {
-	rStream := stream.RecvStream()
-	sender := stream.SendStream()
-	for rStream.Advance() {
-		chunk := rStream.Value()
-		if err := sender.Send(chunk); err != nil {
+func (i *impl) EchoStream(ctx ipc.ServerCall) error {
+	for {
+		var chunk []byte
+		if err := ctx.Recv(&chunk); err != nil {
+			if err == io.EOF {
+				break
+			}
+			return err
+		}
+		if err := ctx.Send(chunk); err != nil {
 			return err
 		}
 	}
-
-	return rStream.Err()
+	return nil
 }
 
 // StartServer starts a server that implements the Benchmark service. The