Merge pull request #1353 from abn/fix-unhandled-exception

Simplify request ip and port retrieval logic
This commit is contained in:
7 2018-10-09 23:33:51 -07:00 committed by GitHub
commit 8ce519668b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,5 @@
import sys import sys
import json import json
import socket
from cgi import parse_header from cgi import parse_header
from collections import namedtuple from collections import namedtuple
from http.cookies import SimpleCookie from http.cookies import SimpleCookie
@ -192,18 +191,10 @@ class Request(dict):
return self._socket return self._socket
def _get_address(self): def _get_address(self):
sock = self.transport.get_extra_info('socket') self._socket = self.transport.get_extra_info('peername') or \
(None, None)
if sock.family == socket.AF_INET: self._ip = self._socket[0]
self._socket = (self.transport.get_extra_info('peername') or self._port = self._socket[1]
(None, None))
self._ip, self._port = self._socket
elif sock.family == socket.AF_INET6:
self._socket = (self.transport.get_extra_info('peername') or
(None, None, None, None))
self._ip, self._port, *_ = self._socket
else:
self._ip, self._port = (None, None)
@property @property
def remote_addr(self): def remote_addr(self):