aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy.py
Commit message (Collapse)AuthorAgeFilesLines
* Code cleanliness - appease pychecker.Aldo Cortesi2011-08-041-2/+2
|
* Request class now has a clean pydoc profile.Aldo Cortesi2011-08-041-1/+1
|
* Further interface cleaning.Aldo Cortesi2011-08-031-10/+10
|
* Move all HTTP objects to flow.pyAldo Cortesi2011-08-031-444/+26
| | | | That's Request, Response, ClientConnect, ClientDisconnect, Error, and Headers.
* Tweak encoding behaviourAldo Cortesi2011-08-021-2/+5
| | | | | | | | | - Don't fail to identity encoding when an unknown encoding is specified. - Don't constrain encodings. I want to try to modify traffic as little as possible by default. - When decoding, delete content-encoding header rather than set it to "identity" - Refuse to decode/encode when there is an existing but unknown content-encoding header.
* Unit test++Aldo Cortesi2011-08-021-9/+14
|
* General cleanup.Aldo Cortesi2011-08-021-1/+0
| | | | | Cut out unused variables and code, generally shut up pychecker as much as is reasonable.
* Fix a rare undefined variable crash in proxy.py.Aldo Cortesi2011-08-021-1/+3
|
* Add decoding/encoding for requests.Aldo Cortesi2011-08-011-23/+25
|
* Merge remote-tracking branch 'alts/encoding'Aldo Cortesi2011-07-281-0/+21
|\
| * Adds encode and decode methods to Response objectsStephen Altamirano2011-07-261-3/+24
| |
* | Changes replace logic to function in both Python 2.6.x and 2.7.xStephen Altamirano2011-07-261-12/+12
|/ | | | Tests now only assume Python 2.6.x rather than requiring 2.7.x. This does not preclude the use of flags as a kwarg in replace
* Fix a crash in mitmdump event display.Aldo Cortesi2011-07-231-1/+1
|
* Extend eventlog information.Aldo Cortesi2011-07-231-7/+19
| | | | Also, squash an SSL-related bug revealed by the extended logging.
* Also replace strings path for requests.Aldo Cortesi2011-07-221-0/+2
|
* Add utility functions to search and replace strings in flowsAldo Cortesi2011-07-221-0/+29
| | | | | | | | | | This is a common task in pentesting scenarios. This commit adds the following functions: utils.Headers.replace proxy.Request.replace proxy.Response.replace flow.Flow.replace
* Removes last_encoding attribute from Response. Prompts for encoding on ↵Stephen Altamirano2011-07-211-1/+0
| | | | identity responses
* Removes should_autodecode attribute from Response. Adds commandline option ↵Stephen Altamirano2011-07-211-1/+0
| | | | 'd' to toggle autodecode, adds togglable option 'd' to do the same
* Adds ability to toggle between encodings in the response viewStephen Altamirano2011-07-181-0/+2
|
* Adds support for content encoding, namely gip and deflatealts2011-07-161-6/+15
|
* Introduce an anti-compression command-line argument.Aldo Cortesi2011-07-151-1/+7
| | | | | This is on by default, which means we avoid compressed content unless the -z flag is specified.
* Rewrite Headers object to preserve order and case.Aldo Cortesi2011-07-141-9/+8
|
* Cast some data read from dump files to str, to prevent unicode promotion.Aldo Cortesi2011-07-011-5/+5
| | | | | This fixes a bug that caused a traceback when de-serialized requests were replayed. Also adds unit tests for the problem.
* Make the certificate wait time configurable.Aldo Cortesi2011-06-271-2/+5
| | | | | | | | | Since OpenSSL doesn't let us set certificate start times in the past, the client and proxy machine time must be synchronized, or the client might reject the certificate. We can bodgy over small discrepancies by waiting a few seconds after a new certificate is generated (i.e. the first time an SSL domain is contacted). Make this a configurable option, and turn it off by default.
* Repair a problem that sometimes caused SSL connections to peg the CPU.Aldo Cortesi2011-06-231-3/+6
|
* unit test coverage ++Aldo Cortesi2011-03-201-13/+0
|
* Add a stickyauth option.Aldo Cortesi2011-03-201-1/+2
| | | | | | | This allows us to replay an HTTP Authorization header, in the same way as we replay cookies using stickycookies. This lets us conveniently get at HTTP Basic Auth protected resources through the proxy, but is not enough to do the same for HTTP Digest auth. We'll put that on the todo list.
* Revamp key generation.Aldo Cortesi2011-03-181-12/+8
| | | | | | | | | | | We now create three different files in the .mitmproxy directory when a dummy CA is made: mitmproxy-ca.pem - the CA, including private key mitmproxy-ca-cert.p12 - A pkcs12 version of the certificate, for distribution to Windows. mitmproxy-ca-cert.pem - A PEM version of the certificate, for distribution to everyone else.
* Improve responsiveness of request and response viewing.Aldo Cortesi2011-03-151-0/+3
| | | | | | | | - Computing the view of a large body is expensive, so we introduce an LRU cache to hold the latest 20 results. - Use ListView more correctly, passing it individual urwid.Text snippets, rather than a single large one. This hugely improves render time.
* Add server replay to mitmproxy.Aldo Cortesi2011-03-131-2/+3
|
* Handle invalid bind address specifications gracefully.Aldo Cortesi2011-03-121-1/+9
|
* Display Errors and killed connections in mitmdump.Aldo Cortesi2011-03-111-1/+1
|
* Add --norefresh to stop refreshing server playback to mitmdump.Aldo Cortesi2011-03-111-2/+27
| | | | Also, make cookie parsing for refreshing more error-tolerant.
* Stub out refresh for server-side replay.Aldo Cortesi2011-03-091-1/+26
|
* Add an --anticache option to mitmdump.Aldo Cortesi2011-03-091-0/+13
| | | | | | | This removes all headers that might cause a server to return 304-not-modified. For now, all the new features are going into mitmdump - everything will be ported over to mitmproxy once I have the feature set locked down.
* Store timestamps on flow components as a UTC time tuple.Aldo Cortesi2011-03-071-4/+4
| | | | | | Format is: (tm_year,tm_mon,tm_mday,tm_hour,tm_min, tm_sec,tm_wday,tm_yday,tm_isdst)
* Add an indicator that sticky cookies have been applied in mitmdump.Aldo Cortesi2011-02-251-0/+3
|
* Move stringification funcs from proxy to dump.Aldo Cortesi2011-02-251-9/+0
|
* Start abstracting out sticky cookie state.Aldo Cortesi2011-02-241-2/+2
|
* Fix a subtle Unicode problem in Response.assembleAldo Cortesi2011-02-211-1/+1
| | | | | | | If msg is Unicode, the proto string is automatically promoted to Unicode. If the proto string is promoted to Unicode, then the FMT interpolation is also done in Unicode. If this happens, then binary data in content will cause an exception.
* First pass of playback function for mitmdump.Aldo Cortesi2011-02-211-1/+11
|
* Certificates are now generated in a temporary per-session directory.Aldo Cortesi2011-02-201-23/+12
| | | | | | This means that certificates don't accumulate in the conf directory, users don't have to clear certificates if the CA is regenerated, and the user can specify a custom CA without invalid certificates being loaded inadvertently.
* Revamp SSL configuration.Aldo Cortesi2011-02-201-24/+70
| | | | | | | | - Move option parsing utiliities to proxy.py - Don't have a global config object. Pass it as an argument to ProxyServer. - Simplify certificate generation logic.
* Clean up certificate generation.Aldo Cortesi2011-02-201-4/+4
| | | | | | | | | | | | - Use templates for config files. We can re-introduce customization of the certificate attributes when we need them. - Split CA and cert generation into separate functions. - Generation methods provide an error return when generation fails. - When the user explicitly specifies a certificate, we don't generate it, but fail if it doesn't exist.
* Implement state loading that doesn't change object identity.Aldo Cortesi2011-02-201-2/+39
| | | | We need this to let us load state from copied Flows returned from scripts.
* Fix serialization when a Request has no associated client connection.Aldo Cortesi2011-02-191-2/+2
|
* Refactor Flow primitives to remove HTTP1.0 assumption.Aldo Cortesi2011-02-191-16/+27
| | | | | | This is a big patch removing the assumption that there's one connection per Request/Response pair. It touches pretty much every part of mitmproxy, so expect glitches until everything is ironed out.
* Don't leave dangling browser connections for pipelined requests.Aldo Cortesi2011-02-161-1/+2
|
* Fix a bug in HTTP 1.1 pipelining that caused Requests to be over-written.Aldo Cortesi2011-02-161-1/+2
| | | | | | We use the ClientConnection object to tie requests, responses and errors together. This is an HTTP 1.0 assumption, but we can fix it by just making copies of the connection object when we handle multiple requests.
* FlowMaster bugfixes and unit tests.Aldo Cortesi2011-02-161-1/+1
|