Index: telemetry/telemetry/internal/forwarders/android_forwarder.py |
diff --git a/telemetry/telemetry/internal/forwarders/android_forwarder.py b/telemetry/telemetry/internal/forwarders/android_forwarder.py |
index d4afe19baf49a342f75672f15158b5985ac02713..f57c29530c7dc8c8e1bc1342ffe4d465ee32a939 100644 |
--- a/telemetry/telemetry/internal/forwarders/android_forwarder.py |
+++ b/telemetry/telemetry/internal/forwarders/android_forwarder.py |
@@ -20,9 +20,9 @@ |
super(AndroidForwarderFactory, self).__init__() |
self._device = device |
- def Create(self, port_pair): |
+ def Create(self, port_pairs): |
try: |
- return AndroidForwarder(self._device, port_pair) |
+ return AndroidForwarder(self._device, port_pairs) |
except Exception: |
try: |
logging.warning('Failed to create forwarder. ' |
@@ -53,20 +53,23 @@ |
class AndroidForwarder(forwarders.Forwarder): |
- def __init__(self, device, port_pair): |
- super(AndroidForwarder, self).__init__(port_pair) |
+ def __init__(self, device, port_pairs): |
+ super(AndroidForwarder, self).__init__(port_pairs) |
self._device = device |
- forwarder.Forwarder.Map( |
- [(port_pair.remote_port, port_pair.local_port)], self._device) |
- self._port_pair = ( |
+ forwarder.Forwarder.Map([(p.remote_port, p.local_port) |
+ for p in port_pairs if p], self._device) |
+ self._port_pairs = forwarders.PortPairs(*[ |
forwarders.PortPair( |
- port_pair.local_port, |
- forwarder.Forwarder.DevicePortForHostPort(port_pair.local_port))) |
+ p.local_port, |
+ forwarder.Forwarder.DevicePortForHostPort(p.local_port)) |
+ if p else None for p in port_pairs]) |
atexit_with_log.Register(self.Close) |
# TODO(tonyg): Verify that each port can connect to host. |
def Close(self): |
if self._forwarding: |
- forwarder.Forwarder.UnmapDevicePort( |
- self._port_pair.remote_port, self._device) |
- super(AndroidForwarder, self).Close() |
+ for port_pair in self._port_pairs: |
+ if port_pair: |
+ forwarder.Forwarder.UnmapDevicePort( |
+ port_pair.remote_port, self._device) |
+ super(AndroidForwarder, self).Close() |