Default listen on IPv6 now.
Use `--ipv4 1` to only listen on IPv4. Fixes #48
This commit is contained in:
parent
75a118cac1
commit
c7cd00d95e
15
proxy.py
15
proxy.py
|
@ -646,10 +646,11 @@ class TCP(object):
|
||||||
Subclass MUST implement `handle` method. It accepts an instance of accepted `Client` connection.
|
Subclass MUST implement `handle` method. It accepts an instance of accepted `Client` connection.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, hostname='127.0.0.1', port=8899, backlog=100):
|
def __init__(self, hostname='127.0.0.1', port=8899, backlog=100, ipv4=False):
|
||||||
self.hostname = hostname
|
self.hostname = hostname
|
||||||
self.port = port
|
self.port = port
|
||||||
self.backlog = backlog
|
self.backlog = backlog
|
||||||
|
self.ipv4 = ipv4
|
||||||
self.socket = None
|
self.socket = None
|
||||||
|
|
||||||
def handle(self, client):
|
def handle(self, client):
|
||||||
|
@ -657,7 +658,7 @@ class TCP(object):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.socket = socket.socket(socket.AF_INET if self.ipv4 is True else socket.AF_INET6, socket.SOCK_STREAM)
|
||||||
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
self.socket.bind((self.hostname, self.port))
|
self.socket.bind((self.hostname, self.port))
|
||||||
self.socket.listen(self.backlog)
|
self.socket.listen(self.backlog)
|
||||||
|
@ -680,8 +681,8 @@ class HTTP(TCP):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, hostname='127.0.0.1', port=8899, backlog=100,
|
def __init__(self, hostname='127.0.0.1', port=8899, backlog=100,
|
||||||
auth_code=None, server_recvbuf_size=8192, client_recvbuf_size=8192, pac_file=None):
|
auth_code=None, server_recvbuf_size=8192, client_recvbuf_size=8192, pac_file=None, ipv4=False):
|
||||||
super(HTTP, self).__init__(hostname, port, backlog)
|
super(HTTP, self).__init__(hostname, port, backlog, ipv4)
|
||||||
self.auth_code = auth_code
|
self.auth_code = auth_code
|
||||||
self.client_recvbuf_size = client_recvbuf_size
|
self.client_recvbuf_size = client_recvbuf_size
|
||||||
self.server_recvbuf_size = server_recvbuf_size
|
self.server_recvbuf_size = server_recvbuf_size
|
||||||
|
@ -740,6 +741,9 @@ def main():
|
||||||
parser.add_argument('--pac-file', type=str, default=None,
|
parser.add_argument('--pac-file', type=str, default=None,
|
||||||
help='A file (Proxy Auto Configuration) or string to serve when '
|
help='A file (Proxy Auto Configuration) or string to serve when '
|
||||||
'the server receives a direct file request.')
|
'the server receives a direct file request.')
|
||||||
|
parser.add_argument('--ipv4', type=bool, default=False,
|
||||||
|
help='Whether to listen on IPv4 address. '
|
||||||
|
'By default server only listens on IPv6.')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
ll = args.log_level
|
ll = args.log_level
|
||||||
|
@ -761,7 +765,8 @@ def main():
|
||||||
auth_code=auth_code,
|
auth_code=auth_code,
|
||||||
server_recvbuf_size=args.server_recvbuf_size,
|
server_recvbuf_size=args.server_recvbuf_size,
|
||||||
client_recvbuf_size=args.client_recvbuf_size,
|
client_recvbuf_size=args.client_recvbuf_size,
|
||||||
pac_file=args.pac_file)
|
pac_file=args.pac_file,
|
||||||
|
ipv4=args.ipv4)
|
||||||
proxy.run()
|
proxy.run()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue