Fixes #54 - handles udp socket timeout error
This commit is contained in:
parent
bd7e76628b
commit
5ca4540f1d
1 changed files with 13 additions and 10 deletions
|
@ -36,12 +36,10 @@ def _m_search_ssdp():
|
|||
sock.settimeout(5)
|
||||
|
||||
try:
|
||||
data = sock.recv(2048)
|
||||
except SocketError:
|
||||
# socket has stopped reading on windows
|
||||
pass
|
||||
|
||||
return data
|
||||
return sock.recv(2048)
|
||||
except socket.error:
|
||||
# no reply from IGD, possibly no IGD on LAN
|
||||
return False
|
||||
|
||||
|
||||
def _retrieve_location_from_ssdp(response):
|
||||
|
@ -173,7 +171,12 @@ def open_port(port=15441, desc="UpnpPunch"):
|
|||
Attempt to forward a port using UPnP.
|
||||
"""
|
||||
|
||||
location = _retrieve_location_from_ssdp(_m_search_ssdp())
|
||||
idg_response = _m_search_ssdp()
|
||||
|
||||
if not idg_response:
|
||||
return False
|
||||
|
||||
location = _retrieve_location_from_ssdp(idg_response)
|
||||
|
||||
if not location:
|
||||
return False
|
||||
|
|
Loading…
Reference in a new issue