about summary refs log tree commit diff
path: root/broadlink
diff options
context:
space:
mode:
authorEugene Schava <eschava@gmail.com>2016-12-20T13·59+0200
committerEugene Schava <eschava@gmail.com>2016-12-20T13·59+0200
commit72cf09f9e42a09b2fd806f3d5f08fb4b05ae4aab (patch)
tree0767e999ea145e8ee2f9eb61bed121f2b4fe8a5e /broadlink
parent83f1c3fc93344c0264223fbf37ac0198626e006b (diff)
allow to specify network interface for discover method
Diffstat (limited to 'broadlink')
-rw-r--r--[-rwxr-xr-x]broadlink/__init__.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/broadlink/__init__.py b/broadlink/__init__.py
index f4bb1069caa1..ffbfd3ad2b1e 100755..100644
--- a/broadlink/__init__.py
+++ b/broadlink/__init__.py
@@ -48,15 +48,16 @@ def gendevice(devtype, host, mac):
   else:
     return device(host=host, mac=mac)
 
-def discover(timeout=None):
-  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-  s.connect(('8.8.8.8', 53))  # connecting to a UDP address doesn't send packets
-  local_ip_address = s.getsockname()[0]
+def discover(timeout=None, local_ip_address=None):
+  if local_ip_address is None:
+      s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+      s.connect(('8.8.8.8', 53))  # connecting to a UDP address doesn't send packets
+      local_ip_address = s.getsockname()[0]
   address = local_ip_address.split('.')
   cs = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   cs.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
   cs.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
-  cs.bind(('',0))
+  cs.bind((local_ip_address,0))
   port = cs.getsockname()[1]
   starttime = time.time()