Skip to content

Commit

Permalink
update docs, fix #215
Browse files Browse the repository at this point in the history
  • Loading branch information
mhils committed Mar 10, 2014
1 parent fe58c1c commit 9cc1063
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 27 deletions.
28 changes: 14 additions & 14 deletions doc-src/scripting/inlinescripts.html
Expand Up @@ -76,25 +76,25 @@


<table class="table"> <table class="table">
<tr> <tr>
<th>libmproxy.flow.ClientConnection</th> <th>libmproxy.proxy.server.ConnectionHandler</th>
<td>Describes a client connection.</td> <td>Describes a proxy client connection session. Always has a client_conn attribute, might have a server_conn attribute.</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.ClientDisconnection</th> <th>libmproxy.proxy.connection.ClientConnection</th>
<td>Describes a client disconnection.</td> <td>Describes a client connection.</td>
</tr>
<tr>
<th>libmproxy.proxy.connection.ServerConnection</th>
<td>Describes a server connection.</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.Error</th> <th>libmproxy.protocol.primitives.Error</th>
<td>A communications error.</td> <td>A communications error.</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.Flow</th> <th>libmproxy.protocol.http.HTTPFlow</th>
<td>A collection of objects representing a single HTTP transaction.</td> <td>A collection of objects representing a single HTTP transaction.</td>
</tr> </tr>
<tr>
<th>libmproxy.flow.Headers</th>
<td>HTTP headers for a request or response.</td>
</tr>
<tr> <tr>
<th>libmproxy.flow.ODict</th> <th>libmproxy.flow.ODict</th>


Expand All @@ -103,15 +103,15 @@
calls (used mainly for headers).</td> calls (used mainly for headers).</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.Response</th> <th>libmproxy.protocol.http.HTTPResponse</th>
<td>An HTTP response.</td> <td>An HTTP response.</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.Request</th> <th>libmproxy.protocol.http.HTTPRequest</th>
<td>An HTTP request.</td> <td>An HTTP request.</td>
</tr> </tr>
<tr> <tr>
<th>libmproxy.flow.ScriptContext</th> <th>libmproxy.script.ScriptContext</th>
<td> A handle for interacting with mitmproxy's from within scripts. </td> <td> A handle for interacting with mitmproxy's from within scripts. </td>
</tr> </tr>
<tr> <tr>
Expand All @@ -124,7 +124,7 @@
using pydoc (which is installed with Python by default), like this: using pydoc (which is installed with Python by default), like this:


<pre class="terminal"> <pre class="terminal">
> pydoc libmproxy.flow.Request > pydoc libmproxy.protocol.http.HTTPRequest
</pre> </pre>




Expand Down
2 changes: 1 addition & 1 deletion libmproxy/cmdline.py
Expand Up @@ -209,7 +209,7 @@ def common_options(parser):
action="store", type = int, dest="port", default=8080, action="store", type = int, dest="port", default=8080,
help = "Proxy service port." help = "Proxy service port."
) )
# We could make a mutually exclusive group out of -R, -F, -T, but we don't do because # We could make a mutually exclusive group out of -R, -F, -T, but we don't do that because
# - --upstream-server should be in that group as well, but it's already in a different group. # - --upstream-server should be in that group as well, but it's already in a different group.
# - our own error messages are more helpful # - our own error messages are more helpful
parser.add_argument( parser.add_argument(
Expand Down
4 changes: 2 additions & 2 deletions libmproxy/console/flowview.py
Expand Up @@ -2,7 +2,7 @@
import urwid import urwid
import common, grideditor, contentview import common, grideditor, contentview
from .. import utils, flow, controller from .. import utils, flow, controller
from ..protocol.http import CONTENT_MISSING from ..protocol.http import HTTPResponse, CONTENT_MISSING




class SearchError(Exception): pass class SearchError(Exception): pass
Expand Down Expand Up @@ -571,7 +571,7 @@ def edit(self, part):
conn = self.flow.request conn = self.flow.request
else: else:
if not self.flow.response: if not self.flow.response:
self.flow.response = flow.Response( self.flow.response = HTTPResponse(
self.flow.request, self.flow.request,
self.flow.request.httpversion, self.flow.request.httpversion,
200, "OK", flow.ODictCaseless(), "", None 200, "OK", flow.ODictCaseless(), "", None
Expand Down
2 changes: 1 addition & 1 deletion libmproxy/protocol/__init__.py
@@ -1,4 +1,4 @@
from libmproxy.proxy.primitives import AddressPriority from ..proxy.primitives import AddressPriority


KILL = 0 # const for killed requests KILL = 0 # const for killed requests


Expand Down
20 changes: 11 additions & 9 deletions libmproxy/proxy/server.py
@@ -1,10 +1,9 @@
import socket import socket
from .. import version, protocol from OpenSSL import SSL
from libmproxy.proxy.primitives import Log
from .primitives import ProxyServerError
from .connection import ClientConnection, ServerConnection
from .primitives import ProxyError, ConnectionTypeChange, AddressPriority
from netlib import tcp from netlib import tcp
from .primitives import ProxyServerError, Log, ProxyError, ConnectionTypeChange, AddressPriority
from .connection import ClientConnection, ServerConnection
from .. import version, protocol




class DummyServer: class DummyServer:
Expand All @@ -23,6 +22,7 @@ def shutdown(self):
class ProxyServer(tcp.TCPServer): class ProxyServer(tcp.TCPServer):
allow_reuse_address = True allow_reuse_address = True
bound = True bound = True

def __init__(self, config, port, host='', server_version=version.NAMEVERSION): def __init__(self, config, port, host='', server_version=version.NAMEVERSION):
""" """
Raises ProxyServerError if there's a startup problem. Raises ProxyServerError if there's a startup problem.
Expand Down Expand Up @@ -51,8 +51,11 @@ def handle_client_connection(self, conn, client_address):
class ConnectionHandler: class ConnectionHandler:
def __init__(self, config, client_connection, client_address, server, channel, server_version): def __init__(self, config, client_connection, client_address, server, channel, server_version):
self.config = config self.config = config
"""@type: libmproxy.proxy.config.ProxyConfig"""
self.client_conn = ClientConnection(client_connection, client_address, server) self.client_conn = ClientConnection(client_connection, client_address, server)
"""@type: libmproxy.proxy.connection.ClientConnection"""
self.server_conn = None self.server_conn = None
"""@type: libmproxy.proxy.connection.ServerConnection"""
self.channel, self.server_version = channel, server_version self.channel, self.server_version = channel, server_version


self.close = False self.close = False
Expand Down Expand Up @@ -98,7 +101,7 @@ def handle(self):


def del_server_connection(self): def del_server_connection(self):
""" """
Deletes an existing server connection. Deletes (and closes) an existing server connection.
""" """
if self.server_conn and self.server_conn.connection: if self.server_conn and self.server_conn.connection:
self.server_conn.finish() self.server_conn.finish()
Expand Down Expand Up @@ -150,8 +153,7 @@ def establish_ssl(self, client=False, server=False):
""" """
Establishes SSL on the existing connection(s) to the server or the client, Establishes SSL on the existing connection(s) to the server or the client,
as specified by the parameters. If the target server is on the pass-through list, as specified by the parameters. If the target server is on the pass-through list,
the conntype attribute will be changed and the SSL connection won't be wrapped. the conntype attribute will be changed and a ConnTypeChanged exception will be raised.
A protocol handler must raise a ConnTypeChanged exception if it detects that this is happening
""" """
# TODO: Implement SSL pass-through handling and change conntype # TODO: Implement SSL pass-through handling and change conntype
passthrough = [ passthrough = [
Expand All @@ -160,7 +162,7 @@ def establish_ssl(self, client=False, server=False):
] ]
if self.server_conn.address.host in passthrough or self.sni in passthrough: if self.server_conn.address.host in passthrough or self.sni in passthrough:
self.conntype = "tcp" self.conntype = "tcp"
return raise ConnectionTypeChange


# Logging # Logging
if client or server: if client or server:
Expand Down

0 comments on commit 9cc1063

Please sign in to comment.