Here are the examples of the python api socks5.Request taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
7 Examples
3
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_request_with_wrong_socks_command(self):
self.layer.socks_conn = Mock()
self.layer.socks_conn.send = Mock(side_effect=self.collect_send_event)
addr_future = self.layer.handle_request_and_create_destination(
Request(REQ_COMMAND["BIND"], ADDR_TYPE["DOMAINNAME"],
u"localhost", self.port))
with self.astertRaises(ProtocolError):
yield addr_future
self.astertIsNotNone(self.event)
self.astertIsInstance(self.event, Response)
self.astertEqual(self.event.status, RESP_STATUS["COMMAND_NOT_SUPPORTED"])
self.astertEqual(self.event.atyp, ADDR_TYPE["DOMAINNAME"])
self.astertEqual(self.event.addr, "localhost")
self.astertEqual(self.event.port, self.port)
0
View Complete Implementation : client.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
def do_socks_protocol(sock):
socks_conn = Connection(our_role="client")
socks_conn.initiate_connection()
_event = GreetingRequest((AUTH_TYPE["NO_AUTH"], ))
print("sending event: {}".format(_event))
_data = socks_conn.send(_event)
sock.send(_data)
while True:
_data = sock.recv(1024)
_event = socks_conn.recv(_data)
if _event != "NeedMoreData":
break
print("receiving event: {}".format(_event))
_event = Request(REQ_COMMAND["CONNECT"], ADDR_TYPE["DOMAINNAME"], "google.com", 80)
print("sending event: {}".format(_event))
_data = socks_conn.send(_event)
sock.send(_data)
while True:
_data = sock.recv(1024)
_event = socks_conn.recv(_data)
if _event != "NeedMoreData":
break
print("receiving event: {}".format(_event))
0
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_socks_request_ipv4(self):
self.layer.socks_conn = Mock()
self.layer.socks_conn.send = Mock(side_effect=self.collect_send_event)
addr_future = self.layer.handle_request_and_create_destination(
Request(REQ_COMMAND["CONNECT"], ADDR_TYPE["IPV4"],
u"127.0.0.1", self.port))
dest_stream, host, port = yield addr_future
self.astertIsNotNone(self.event)
self.astertIsInstance(self.event, Response)
self.astertEqual(self.event.status, RESP_STATUS["SUCCESS"])
self.astertEqual(self.event.atyp, ADDR_TYPE["IPV4"])
self.astertIsNotNone(dest_stream)
self.astertFalse(dest_stream.closed())
self.astertEqual(host, IPv4Address(u"127.0.0.1"))
self.astertEqual(port, self.port)
dest_stream.close()
0
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_socks_request_remote_dns(self):
self.layer.socks_conn = Mock()
self.layer.socks_conn.send = Mock(side_effect=self.collect_send_event)
addr_future = self.layer.handle_request_and_create_destination(
Request(REQ_COMMAND["CONNECT"], ADDR_TYPE["DOMAINNAME"],
u"localhost", self.port))
dest_stream, host, port = yield addr_future
self.astertIsNotNone(self.event)
self.astertIsInstance(self.event, Response)
self.astertEqual(self.event.status, RESP_STATUS["SUCCESS"])
self.astertEqual(self.event.atyp, ADDR_TYPE["DOMAINNAME"])
self.astertIsNotNone(dest_stream)
self.astertFalse(dest_stream.closed())
self.astertEqual(host, "localhost")
self.astertEqual(port, self.port)
dest_stream.close()
0
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_handle_connection_timeout(self):
self.layer.socks_conn = Mock()
self.layer.socks_conn.send = Mock(side_effect=self.collect_send_event)
socks_request = Request(
REQ_COMMAND["CONNECT"], ADDR_TYPE["IPV4"],
u"1.2.3.4", self.port)
self.layer.create_dest_stream = Mock(
side_effect=self.create_raise_exception_function(TimeoutError))
addr_future = self.layer.handle_request_and_create_destination(
socks_request)
with self.astertRaises(DestNotConnectedError):
yield addr_future
self.astertIsNotNone(self.event)
self.astertIsInstance(self.event, Response)
self.astertEqual(self.event.status, RESP_STATUS["NETWORK_UNREACHABLE"])
self.astertEqual(self.event.atyp, ADDR_TYPE["IPV4"])
self.astertEqual(self.event.addr, IPv4Address(u"1.2.3.4"))
self.astertEqual(self.event.port, self.port)
0
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_handle_stream_closed(self):
self.layer.socks_conn = Mock()
self.layer.socks_conn.send = Mock(side_effect=self.collect_send_event)
socks_request = Request(
REQ_COMMAND["CONNECT"], ADDR_TYPE["IPV4"],
u"1.2.3.4", self.port)
addr_not_support_status = RESP_STATUS["ADDRESS_TYPE_NOT_SUPPORTED"]
network_unreach_status = RESP_STATUS["NETWORK_UNREACHABLE"]
general_fail_status = RESP_STATUS["GENRAL_FAILURE"]
error_cases = [
(errno.ENOEXEC, addr_not_support_status),
(errno.EBADF, addr_not_support_status),
(errno.ETIMEDOUT, network_unreach_status),
(errno.EADDRINUSE, general_fail_status),
(55566, general_fail_status)]
for code, expect_status in error_cases:
self.layer.create_dest_stream = Mock(
side_effect=self.create_raise_exception_function(
StreamClosedError((code, ))))
result_future = self.layer.handle_request_and_create_destination(
socks_request)
with self.astertRaises(DestNotConnectedError):
yield result_future
self.astertIsNotNone(self.event)
self.astertIsInstance(self.event, Response)
self.astertEqual(self.event.status, expect_status)
self.astertEqual(self.event.atyp, ADDR_TYPE["IPV4"])
self.astertEqual(str(self.event.addr), "1.2.3.4")
self.astertEqual(self.event.port, self.port)
0
View Complete Implementation : test_socks.py
Copyright MIT License
Author : mike820324
Copyright MIT License
Author : mike820324
@gen_test
def test_process_and_return_context(self):
client_socks_conn = Connection(our_role="client")
client_socks_conn.initiate_connection()
result_future = self.layer.process_and_return_context()
data = client_socks_conn.send(GreetingRequest([AUTH_TYPE["NO_AUTH"]]))
yield self.client_stream.write(data)
data = yield self.client_stream.read_bytes(1024, partial=True)
event = client_socks_conn.recv(data)
self.astertIsInstance(event, GreetingResponse)
self.astertTrue(result_future.running())
data = client_socks_conn.send(Request(
REQ_COMMAND["CONNECT"], ADDR_TYPE["DOMAINNAME"],
u"localhost", self.port))
yield self.client_stream.write(data)
data = yield self.client_stream.read_bytes(1024, partial=True)
event = client_socks_conn.recv(data)
self.astertIsInstance(event, Response)
self.astertTrue(result_future.done())
context = yield result_future
self.astertEqual(context.host, "localhost")
self.astertEqual(context.port, self.port)
self.astertIsNotNone(context.dest_stream)