Cleanup and fix req.server_port; no longer reports socket port if any forwards headers are used.
This commit is contained in:
parent
b896454135
commit
1838f43eff
@ -389,19 +389,20 @@ class Request(dict):
|
|||||||
def server_port(self):
|
def server_port(self):
|
||||||
"""
|
"""
|
||||||
Attempt to get the server's port in this order:
|
Attempt to get the server's port in this order:
|
||||||
`x-forwarded-port` header, :func:`Request.host`, actual port used by
|
`forwarded` header, `x-forwarded-port` header, :func:`Request.host`,
|
||||||
the transport layer socket.
|
actual port used by the transport layer socket.
|
||||||
:return: server port
|
:return: server port
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
forwarded_port = self.forwarded.get("port") or (
|
if self.forwarded:
|
||||||
self.host.split(":")[1] if ":" in self.host else None
|
forwarded_port = self.forwarded.get("port") or (
|
||||||
)
|
"80" if self.scheme in ("http", "ws") else "443"
|
||||||
if forwarded_port:
|
)
|
||||||
return int(forwarded_port)
|
elif ":" in self.host:
|
||||||
|
forwarded_port = self.host.split(":")[1]
|
||||||
else:
|
else:
|
||||||
_, port = self.transport.get_extra_info("sockname")
|
return self.transport.get_extra_info("sockname")[1]
|
||||||
return port
|
return int(forwarded_port)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def remote_addr(self):
|
def remote_addr(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user