aboutsummaryrefslogtreecommitdiffstats
path: root/netlib
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-02-17 10:35:41 +1300
committerAldo Cortesi <aldo@corte.si>2016-02-17 10:35:41 +1300
commit887ecf88967fe6caf8f8d5443e49b6bfcfbfcd0d (patch)
tree4c3b4f9cc555a945ddbeeb1b179070ef98b2eeff /netlib
parentef8e95956d938fd4891d79fdbfa83f8a77a482cb (diff)
parentb87797ea255a0e2058e0574a5a00150f7f2df5db (diff)
downloadmitmproxy-887ecf88967fe6caf8f8d5443e49b6bfcfbfcd0d.tar.gz
mitmproxy-887ecf88967fe6caf8f8d5443e49b6bfcfbfcd0d.tar.bz2
mitmproxy-887ecf88967fe6caf8f8d5443e49b6bfcfbfcd0d.zip
Merge pull request #950 from Kriechi/rename
Rename lib folders
Diffstat (limited to 'netlib')
-rw-r--r--netlib/netlib/tservers.py109
1 files changed, 0 insertions, 109 deletions
diff --git a/netlib/netlib/tservers.py b/netlib/netlib/tservers.py
deleted file mode 100644
index 44ef8063..00000000
--- a/netlib/netlib/tservers.py
+++ /dev/null
@@ -1,109 +0,0 @@
-from __future__ import (absolute_import, print_function, division)
-
-import threading
-from six.moves import queue
-from io import StringIO
-import OpenSSL
-
-from netlib import tcp
-from netlib import tutils
-
-
-class ServerThread(threading.Thread):
-
- def __init__(self, server):
- self.server = server
- threading.Thread.__init__(self)
-
- def run(self):
- self.server.serve_forever()
-
- def shutdown(self):
- self.server.shutdown()
-
-
-class ServerTestBase(object):
- ssl = None
- handler = None
- addr = ("localhost", 0)
-
- @classmethod
- def setup_class(cls):
- cls.q = queue.Queue()
- s = cls.makeserver()
- cls.port = s.address.port
- cls.server = ServerThread(s)
- cls.server.start()
-
- @classmethod
- def makeserver(cls):
- return TServer(cls.ssl, cls.q, cls.handler, cls.addr)
-
- @classmethod
- def teardown_class(cls):
- cls.server.shutdown()
-
- @property
- def last_handler(self):
- return self.server.server.last_handler
-
-
-class TServer(tcp.TCPServer):
-
- def __init__(self, ssl, q, handler_klass, addr):
- """
- ssl: A dictionary of SSL parameters:
-
- cert, key, request_client_cert, cipher_list,
- dhparams, v3_only
- """
- tcp.TCPServer.__init__(self, addr)
-
- if ssl is True:
- self.ssl = dict()
- elif isinstance(ssl, dict):
- self.ssl = ssl
- else:
- self.ssl = None
-
- self.q = q
- self.handler_klass = handler_klass
- self.last_handler = None
-
- def handle_client_connection(self, request, client_address):
- h = self.handler_klass(request, client_address, self)
- self.last_handler = h
- if self.ssl is not None:
- cert = self.ssl.get(
- "cert",
- tutils.test_data.path("data/server.crt"))
- raw_key = self.ssl.get(
- "key",
- tutils.test_data.path("data/server.key"))
- key = OpenSSL.crypto.load_privatekey(
- OpenSSL.crypto.FILETYPE_PEM,
- open(raw_key, "rb").read())
- if self.ssl.get("v3_only", False):
- method = OpenSSL.SSL.SSLv3_METHOD
- options = OpenSSL.SSL.OP_NO_SSLv2 | OpenSSL.SSL.OP_NO_TLSv1
- else:
- method = OpenSSL.SSL.SSLv23_METHOD
- options = None
- h.convert_to_ssl(
- cert, key,
- method=method,
- options=options,
- handle_sni=getattr(h, "handle_sni", None),
- request_client_cert=self.ssl.get("request_client_cert", None),
- cipher_list=self.ssl.get("cipher_list", None),
- dhparams=self.ssl.get("dhparams", None),
- chain_file=self.ssl.get("chain_file", None),
- alpn_select=self.ssl.get("alpn_select", None)
- )
- h.handle()
- h.finish()
-
- def handle_error(self, connection, client_address, fp=None):
- s = StringIO()
- tcp.TCPServer.handle_error(self, connection, client_address, s)
- self.q.put(s.getvalue())