func (mp *maintenanceProxy) Snapshot(sr *pb.SnapshotRequest, stream pb.Maintenance_SnapshotServer) error { conn := mp.client.ActiveConnection() ctx, cancel := context.WithCancel(stream.Context()) defer cancel() sc, err := pb.NewMaintenanceClient(conn).Snapshot(ctx, sr) if err != nil { return err } for { rr, err := sc.Recv() if err != nil { return err } err = stream.Send(rr) if err != nil { return err } } }