aboutsummaryrefslogtreecommitdiffstats
path: root/pathod/libpathod/protocols
diff options
context:
space:
mode:
authorThomas Kriechbaumer <thomas@kriechbaumer.name>2016-02-16 20:34:14 +0100
committerThomas Kriechbaumer <thomas@kriechbaumer.name>2016-02-16 20:37:53 +0100
commitdedca540996f337f3965fb87531fd03d7e27e417 (patch)
tree26fd182cd12d3c561f2a6baa9db992ffd1080040 /pathod/libpathod/protocols
parentef8e95956d938fd4891d79fdbfa83f8a77a482cb (diff)
downloadmitmproxy-dedca540996f337f3965fb87531fd03d7e27e417.tar.gz
mitmproxy-dedca540996f337f3965fb87531fd03d7e27e417.tar.bz2
mitmproxy-dedca540996f337f3965fb87531fd03d7e27e417.zip
rename pathod source directory
Diffstat (limited to 'pathod/libpathod/protocols')
-rw-r--r--pathod/libpathod/protocols/__init__.py1
-rw-r--r--pathod/libpathod/protocols/http.py71
-rw-r--r--pathod/libpathod/protocols/http2.py20
-rw-r--r--pathod/libpathod/protocols/websockets.py56
4 files changed, 0 insertions, 148 deletions
diff --git a/pathod/libpathod/protocols/__init__.py b/pathod/libpathod/protocols/__init__.py
deleted file mode 100644
index 1a8c7dab..00000000
--- a/pathod/libpathod/protocols/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from . import http, http2, websockets
diff --git a/pathod/libpathod/protocols/http.py b/pathod/libpathod/protocols/http.py
deleted file mode 100644
index 1f1765cb..00000000
--- a/pathod/libpathod/protocols/http.py
+++ /dev/null
@@ -1,71 +0,0 @@
-from netlib import tcp, wsgi
-from netlib.exceptions import HttpReadDisconnect, TlsException
-from netlib.http import http1, Request
-from .. import version, language
-
-
-class HTTPProtocol(object):
- def __init__(self, pathod_handler):
- self.pathod_handler = pathod_handler
-
- def make_error_response(self, reason, body):
- return language.http.make_error_response(reason, body)
-
- def handle_http_app(self, method, path, headers, body, lg):
- """
- Handle a request to the built-in app.
- """
- if self.pathod_handler.server.noweb:
- crafted = self.pathod_handler.make_http_error_response("Access Denied")
- language.serve(crafted, self.pathod_handler.wfile, self.pathod_handler.settings)
- return None, dict(
- type="error",
- msg="Access denied: web interface disabled"
- )
- lg("app: %s %s" % (method, path))
- req = wsgi.Request("http", method, path, b"HTTP/1.1", headers, body)
- flow = wsgi.Flow(self.pathod_handler.address, req)
- sn = self.pathod_handler.connection.getsockname()
- a = wsgi.WSGIAdaptor(
- self.pathod_handler.server.app,
- sn[0],
- self.pathod_handler.server.address.port,
- version.NAMEVERSION
- )
- a.serve(flow, self.pathod_handler.wfile)
- return self.pathod_handler.handle_http_request, None
-
- def handle_http_connect(self, connect, lg):
- """
- Handle a CONNECT request.
- """
-
- self.pathod_handler.wfile.write(
- 'HTTP/1.1 200 Connection established\r\n' +
- ('Proxy-agent: %s\r\n' % version.NAMEVERSION) +
- '\r\n'
- )
- self.pathod_handler.wfile.flush()
- if not self.pathod_handler.server.ssloptions.not_after_connect:
- try:
- cert, key, chain_file_ = self.pathod_handler.server.ssloptions.get_cert(
- connect[0]
- )
- self.pathod_handler.convert_to_ssl(
- cert,
- key,
- handle_sni=self.pathod_handler.handle_sni,
- request_client_cert=self.pathod_handler.server.ssloptions.request_client_cert,
- cipher_list=self.pathod_handler.server.ssloptions.ciphers,
- method=self.pathod_handler.server.ssloptions.ssl_version,
- options=self.pathod_handler.server.ssloptions.ssl_options,
- alpn_select=self.pathod_handler.server.ssloptions.alpn_select,
- )
- except TlsException as v:
- s = str(v)
- lg(s)
- return None, dict(type="error", msg=s)
- return self.pathod_handler.handle_http_request, None
-
- def read_request(self, lg=None):
- return http1.read_request(self.pathod_handler.rfile)
diff --git a/pathod/libpathod/protocols/http2.py b/pathod/libpathod/protocols/http2.py
deleted file mode 100644
index a098a14e..00000000
--- a/pathod/libpathod/protocols/http2.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from netlib.http import http2
-from .. import version, app, language, utils, log
-
-class HTTP2Protocol:
-
- def __init__(self, pathod_handler):
- self.pathod_handler = pathod_handler
- self.wire_protocol = http2.HTTP2Protocol(
- self.pathod_handler, is_server=True, dump_frames=self.pathod_handler.http2_framedump
- )
-
- def make_error_response(self, reason, body):
- return language.http2.make_error_response(reason, body)
-
- def read_request(self, lg=None):
- self.wire_protocol.perform_server_connection_preface()
- return self.wire_protocol.read_request(self.pathod_handler.rfile)
-
- def assemble(self, message):
- return self.wire_protocol.assemble(message)
diff --git a/pathod/libpathod/protocols/websockets.py b/pathod/libpathod/protocols/websockets.py
deleted file mode 100644
index 134d27bc..00000000
--- a/pathod/libpathod/protocols/websockets.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import time
-
-from netlib import websockets
-from .. import language
-from netlib.exceptions import NetlibException
-
-
-class WebsocketsProtocol:
-
- def __init__(self, pathod_handler):
- self.pathod_handler = pathod_handler
-
- def handle_websocket(self, logger):
- while True:
- with logger.ctx() as lg:
- started = time.time()
- try:
- frm = websockets.Frame.from_file(self.pathod_handler.rfile)
- except NetlibException as e:
- lg("Error reading websocket frame: %s" % e)
- break
- ended = time.time()
- lg(frm.human_readable())
- retlog = dict(
- type="inbound",
- protocol="websockets",
- started=started,
- duration=ended - started,
- frame=dict(
- ),
- cipher=None,
- )
- if self.pathod_handler.ssl_established:
- retlog["cipher"] = self.pathod_handler.get_current_cipher()
- self.pathod_handler.addlog(retlog)
- ld = language.websockets.NESTED_LEADER
- if frm.payload.startswith(ld):
- nest = frm.payload[len(ld):]
- try:
- wf_gen = language.parse_websocket_frame(nest)
- except language.exceptions.ParseException as v:
- logger.write(
- "Parse error in reflected frame specifcation:"
- " %s" % v.msg
- )
- return None, None
- for frm in wf_gen:
- with logger.ctx() as lg:
- frame_log = language.serve(
- frm,
- self.pathod_handler.wfile,
- self.pathod_handler.settings
- )
- lg("crafting websocket spec: %s" % frame_log["spec"])
- self.pathod_handler.addlog(frame_log)
- return self.handle_websocket, None