Aldo Cortesi
a63817f2b8
Merge pull request #1253 from mhils/fix-debug
...
Fix Debug Mode on Windows
2016-06-14 17:12:02 +12:00
Aldo Cortesi
4c292b0197
Fix Python3 tests
2016-06-14 16:13:50 +12:00
Aldo Cortesi
50a20fefee
Satisfy lint
2016-06-14 14:34:30 +12:00
Aldo Cortesi
9e63350a96
Use handlers in http2 test suite
2016-06-14 14:32:18 +12:00
Aldo Cortesi
e6fd98bb72
Start rolling out leak detection in netlib
2016-06-14 14:32:18 +12:00
Maximilian Hils
3c9a70b761
fix debug mode on Windows
2016-06-13 18:06:44 -07:00
Aldo Cortesi
7b86560ded
debug: On SIGUSR2, we dump tracebacks for all threads to screen
2016-06-11 23:07:42 +12:00
Aldo Cortesi
09edbd9492
Improve debugging of thread and other leaks
...
- Add basethread.BaseThread that all threads outside of test suites should use
- Add a signal handler to mitmproxy, mitmdump and mitmweb that dumps resource
information to screen when SIGUSR1 is received.
- Improve thread naming throughout to make thread dumps understandable
2016-06-11 19:52:24 +12:00
Aldo Cortesi
5b9f07c81c
debug.sysinfo: tests and coverage
2016-06-11 17:56:17 +12:00
Aldo Cortesi
c421c41307
Remove odict
...
- Adds default implementations for _kconv and _reduce_values to MultiDict.
Without these, operations fail in really, really non-obvious ways.
- Replace the remaining few instances of ODict
Fixes #1159
2016-06-09 13:28:43 +12:00
Maximilian Hils
c98c83190b
tests++
2016-06-07 01:03:08 -07:00
Aldo Cortesi
1ffc273c94
Utils cleanups
...
- Move more stuff that belongs in netlib.human
- Move some stuff to near the only use
- Zap mitmproxy.utils.timestamp(). I see the rationale, but we used it
interchangeably with time.time() throughout the project. Since time.time()
dominates in the codebase and timestamp() is such low utility, away it goes.
2016-06-07 17:12:52 +12:00
redfast00
25505733bc
fix multidict unittests
2016-06-05 21:20:37 +02:00
Aldo Cortesi
09da1febbd
Shift a bunch more string-related functions to strutils
2016-06-02 13:04:19 +12:00
Aldo Cortesi
cccdc98426
Utils reorganisation: add netlib.strutils
...
Extract a number of string and format-related functions to netlib.strutils.
2016-06-02 12:31:41 +12:00
Maximilian Hils
30fff1fb32
be more strict about module namespaces
2016-05-31 14:05:57 -07:00
Aldo Cortesi
42e91fcfe1
http2.frame -> http2.framereader
2016-05-31 20:32:28 +12:00
Aldo Cortesi
5a75ea3fc6
Fix test failures
2016-05-31 20:19:54 +12:00
Aldo Cortesi
40a030f215
Satisfy flake8
2016-05-31 19:58:28 +12:00
Aldo Cortesi
f62efed304
Unify and make symmetric pretty_size and parse_size
2016-05-31 19:45:48 +12:00
Aldo Cortesi
b2f63458fc
Move human-friendly format functions to netlib.human, remove redundant implementations
2016-05-31 19:32:08 +12:00
Aldo Cortesi
ec34cae618
utils.multipartdecode -> http.multipart.decode
...
also
utils.parse_content_type -> http.headers.parse_content_type
2016-05-31 19:07:55 +12:00
Aldo Cortesi
15b2374ef9
netlib.utils.get_header_tokens -> netlib.http1.read.get_header_tokens
...
Placing this next to its only use.
2016-05-31 18:54:42 +12:00
Aldo Cortesi
6dda2b2ee5
Module is part of the name - url.decode, not url.urldecode
...
A pattern we need to use far more often in the codebase
2016-05-31 18:46:19 +12:00
Aldo Cortesi
4e6c9c4e93
Extract url functions from netlib.utils and move to netlib.http.url
2016-05-31 18:42:56 +12:00
Aldo Cortesi
08fbe6f111
Start cleaning up netlib.utils
...
- Remove http2 functions, move to http2.frame
- Remove Serializable, move to netlib.basetypes
2016-05-31 17:16:31 +12:00
Aldo Cortesi
9ea68ebd28
Improve handling of pseudo-headers
...
- The canonical source for :method, :scheme and :path are the .method, .scheme
and .path attributes on the request object.
- These pseudo-headers are stripped after reading the request, and re-inserted
just before sending.
- The :authority header remains, and should be handled analagously to the Host
header in HTTP1 with respect to display and user interaction.
2016-05-31 14:36:17 +12:00
Thomas Kriechbaumer
03167d5e71
fix headers order
2016-05-29 22:07:22 +02:00
Thomas Kriechbaumer
e2447406cc
more style cleanup
2016-05-29 13:43:20 +02:00
Thomas Kriechbaumer
8eeab37a07
more style cleanup
...
Use this to check:
flake8 --count mitmproxy netlib pathod examples test
2016-05-29 11:55:12 +02:00
Maximilian Hils
85aa5da6e3
fix tests
2016-05-28 19:31:43 -07:00
Thomas Kriechbaumer
caee1adeb6
cleanup imports with flake8
2016-05-28 14:43:32 +02:00
Maximilian Hils
d3477e27fa
bytes_to_escaped_str: always escape single quotes
2016-05-25 20:11:34 -07:00
Maximilian Hils
7a8da48a30
escaped_str_to_bytes: support unicode on python 2
2016-05-25 19:16:02 -07:00
Aldo Cortesi
43d7965532
Clean un-needed imports
2016-05-21 15:00:52 +12:00
Aldo Cortesi
a5c4cd0340
A clearer implementation of MultiDictView
...
This makes MultiDictView work with a simple getter/setter pair, rather than
using attributes with implicit leading underscores. Also move MultiDictView
into multidict.py and adds some simple unit tests.
2016-05-21 11:37:36 +12:00
Aldo Cortesi
96d8ec1ee3
Merge branch 'multidict' of https://github.com/mhils/mitmproxy into mhils-multidict
2016-05-21 10:15:37 +12:00
Maximilian Hils
b538138ead
tests++
2016-05-20 11:04:27 -07:00
Maximilian Hils
6f8db2d7eb
improve MultiDict, add ImmutableMultiDict, adjust response.cookies
2016-05-18 22:50:19 -07:00
Maximilian Hils
d1fc694952
clean up odict
2016-05-18 19:01:49 -07:00
Maximilian Hils
44ac64aa72
add MultiDict
...
This commit introduces MultiDict, a multi-dictionary similar to
ODict, but with improved semantics (as in the Headers class).
MultiDict fixes a few issues that were present in the Request/Response
API. In particular, `request.cookies["foo"] = "bar"` has previously been a
no-op, as the cookies property returned a mutable _copy_ of the cookies.
2016-05-18 18:46:42 -07:00
Maximilian Hils
f1c922c652
Sanitize Print ( #1135 )
...
* sanitize strings with shell control characters
* netlib: add utilities to safe-print bytes
* escaped str: add TODO for multi-byte chars
2016-05-12 11:03:57 -06:00
Thomas Kriechbaumer
bef72c1b02
Merge pull request #1121 from Kriechi/fix-cookies
...
improve cookie parsing
2016-05-11 12:30:44 -05:00
Maximilian Hils
4c8e334642
actually fix tests
2016-05-10 12:19:26 -06:00
Maximilian Hils
bb4f9611f5
Revert "fix tests"
...
This reverts commit f315dc1eb9
.
2016-05-10 12:18:05 -06:00
Maximilian Hils
f315dc1eb9
fix tests
2016-05-10 12:17:25 -06:00
Thomas Kriechbaumer
08002282e8
improve cookie parsing
...
allows '/' to be within a cookie name
removes deprecated cookie getter/setter
fixes #1118
2016-05-10 11:13:12 -05:00
Maximilian Hils
9d47d3b1ec
fix #1120
2016-05-09 12:15:20 -06:00
Maximilian Hils
54c4859a95
remove netlib version check
2016-04-29 12:00:38 -07:00
Maximilian Hils
bc60c26c7b
py3++
2016-04-13 22:34:28 -07:00
Maximilian Hils
0259f47997
Merge branch 'better-replace'
2016-04-03 08:17:30 -07:00
Thomas Kriechbaumer
f5fe93bf13
Merge pull request #1074 from mitmproxy/move-response-refresh
...
move HTTPResponse.refresh into netlib
2016-04-03 10:16:39 +02:00
Thomas Kriechbaumer
16fdbb4f2f
Merge pull request #1073 from mitmproxy/first-line-format
...
form_(in|out) -> first_line_format
2016-04-03 10:16:06 +02:00
Maximilian Hils
35a6d6e7f6
response.msg -> response.reason
2016-04-02 22:54:46 +02:00
Maximilian Hils
4e2acc4d9d
move HTTPResponse.refresh into netlib
2016-04-02 22:49:05 +02:00
Maximilian Hils
e6fa2688c9
form_(in|out) -> first_line_format
2016-04-02 21:57:35 +02:00
Maximilian Hils
806aa0f41c
improve .replace() and move it into netlib
2016-04-02 14:38:33 +02:00
Maximilian Hils
4ee8808b44
add Serializeable.copy
2016-04-02 13:50:53 +02:00
Matthew Shao
08ff00f36d
replace CONTENT_MISSING with None.
2016-03-26 16:00:51 +08:00
Maximilian Hils
403ac82a7d
netlib: request.path can be None
2016-03-20 23:22:50 +01:00
yonder
ba933dff2c
Add 'UsernamePasswordAuth' 'UsernamePasswordAuthResponse' to SOCKS
2016-03-15 14:33:20 +08:00
Maximilian Hils
2bec6a35e2
fix #956
2016-02-19 00:30:37 +01:00
Shadab Zafar
d6ab9901d1
Fixup more tests
2016-02-18 21:58:32 +05:30
Shadab Zafar
175109e44e
Use host header values only when the ports match
2016-02-18 07:01:52 +05:30
Shadab Zafar
6f96da08c9
Handle port numbers in host header
...
from: https://github.com/mitmproxy/netlib/pull/121
2016-02-17 08:48:59 +05:30
Thomas Kriechbaumer
6b585023fd
move tservers helper
2016-02-16 21:53:16 +01:00
Will Coster
0fc348d211
Fix failing unit tests caused by a69d223b
2016-02-15 20:36:21 -08:00
Maximilian Hils
2d569527f2
Merge branch 'master' of https://github.com/mitmproxy/mitmproxy
2016-02-16 02:02:40 +01:00
Maximilian Hils
bc7db1be2d
temporarily silence flaky tests
2016-02-16 02:02:32 +01:00
Will Coster
a69d223b33
Preserve host header when modifying request path
...
Currently the path_components and query setters of the Request object
use the url setter under the hood. The url setter updates all parts of
the URL including the host. If the host header and the host in the
request URL are different (as is common when making HTTPS requests)
then the host header will be updated to the value in the URL as a
result of modifying the path.
This change fixes this problem by modifying the query and
path_components setters to not use the url setter and instead directly
update the path field.
2016-02-15 16:21:20 -08:00
Maximilian Hils
fc9fa87827
fix ALPN checks
2016-02-15 18:43:06 +01:00
Maximilian Hils
d7158f975e
move tests into shared folder
2016-02-15 16:34:22 +01:00