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)
|
sock.settimeout(5)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = sock.recv(2048)
|
return sock.recv(2048)
|
||||||
except SocketError:
|
except socket.error:
|
||||||
# socket has stopped reading on windows
|
# no reply from IGD, possibly no IGD on LAN
|
||||||
pass
|
return False
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def _retrieve_location_from_ssdp(response):
|
def _retrieve_location_from_ssdp(response):
|
||||||
|
@ -173,7 +171,12 @@ def open_port(port=15441, desc="UpnpPunch"):
|
||||||
Attempt to forward a port using UPnP.
|
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:
|
if not location:
|
||||||
return False
|
return False
|
||||||
|
|
Loading…
Reference in a new issue