This commit is contained in:
Jack Robison 2018-10-17 21:16:14 -04:00
parent 10980aaa4f
commit 2f286f7df4
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2

View file

@ -89,7 +89,7 @@ class UPnP:
return await self.gateway.commands.AddPortMapping( return await self.gateway.commands.AddPortMapping(
NewRemoteHost='', NewExternalPort=external_port, NewProtocol=protocol, NewRemoteHost='', NewExternalPort=external_port, NewProtocol=protocol,
NewInternalPort=internal_port, NewInternalClient=lan_address, NewInternalPort=internal_port, NewInternalClient=lan_address,
NewEnabled=1, NewPortMappingDescription=description NewEnabled=1, NewPortMappingDescription=description, NewLeaseDuration='0'
) )
@cli @cli
@ -151,8 +151,7 @@ class UPnP:
) )
@cli @cli
async def get_next_mapping(self, port: int, protocol: str, description: str, internal_port: int=None, async def get_next_mapping(self, port: int, protocol: str, description: str, internal_port: int=None) -> int:
lease_duration: int=86400) -> int:
if protocol not in ["UDP", "TCP"]: if protocol not in ["UDP", "TCP"]:
raise UPnPError("unsupported protocol: {}".format(protocol)) raise UPnPError("unsupported protocol: {}".format(protocol))
internal_port = internal_port or port internal_port = internal_port or port
@ -168,7 +167,7 @@ class UPnP:
redirects = { redirects = {
"%i:%s" % (ext_port, proto): (int_host, int_port, desc) "%i:%s" % (ext_port, proto): (int_host, int_port, desc)
for (ext_host, ext_port, proto, int_port, int_host, enabled, desc, lease) in redirect_tups for (ext_host, ext_port, proto, int_port, int_host, enabled, desc, _) in redirect_tups
} }
while ("%i:%s" % (port, protocol)) in redirects: while ("%i:%s" % (port, protocol)) in redirects:
int_host, int_port, _ = redirects["%i:%s" % (port, protocol)] int_host, int_port, _ = redirects["%i:%s" % (port, protocol)]
@ -177,7 +176,7 @@ class UPnP:
port += 1 port += 1
await self.add_port_mapping( # set one up await self.add_port_mapping( # set one up
port, protocol, internal_port, self.lan_address, description, lease_duration port, protocol, internal_port, self.lan_address, description
) )
return port return port