Commit Graph

213 Commits

Author SHA1 Message Date
Shadab Zafar 1c82231129 Use encode to detect if string is valid ASCII 2016-06-04 12:49:11 +02:00
Shadab Zafar ae553ef472 Fix Docstring: "inject" can be an action too 2016-06-04 15:23:09 +05:30
Aldo Cortesi 6943d7e397 More explicit name for the tcp.Server handler counter 2016-06-03 13:57:12 +12:00
Aldo Cortesi e60860e65d Make tcp.Client.connect return a context manager that closes the connection 2016-06-03 12:06:36 +12:00
Aldo Cortesi 36383a6146 Pathod websocket service threads should not be immortal 2016-06-03 11:58:05 +12:00
Aldo Cortesi c5076f5e01 Implement a service connection handler counter, use it in Pathod test suite
Lots of failures, but that's a good thing.
2016-06-03 11:47:07 +12:00
Aldo Cortesi c6d15904f3 Merge remote-tracking branch 'upstream/master' into testsuite 2016-06-03 10:19:22 +12:00
Shadab Zafar 8e60a9bca9 Handle the slice object case in TransformGenerator.__getitem__ 2016-06-03 02:00:58 +05:30
Maximilian Hils 5e385405ca please flake8 2016-06-02 09:54:19 -07:00
Maximilian Hils 29c52d98dc Merge remote-tracking branch 'duffer/pathod-lang-generators' 2016-06-02 09:53:22 -07:00
Shadab Zafar 75ce2498e8 Simplify rand_byte by creating a special case for Python 2 2016-06-02 13:34:18 +05:30
Aldo Cortesi 69de78515d Make last_log actually return last log 2016-06-02 19:45:18 +12:00
Shadab Zafar ec5d931ee3 Remove redundant __getslice__ from TransformGenerator 2016-06-02 13:02:17 +05:30
Shadab Zafar b510616c69 Py3: Return bytes from FileGenerator
and use __getitem__ instead of __getslice__
2016-06-02 13:00:44 +05:30
Shadab Zafar a04d7fd166 Py3: Return bytes from RandomGenerator
and use __getitem__ rather than __getslice__
2016-06-02 13:00:02 +05:30
Aldo Cortesi a7522d9308 pathod.test shouldn't use the API at all 2016-06-02 18:27:51 +12:00
Aldo Cortesi 254614e9f7 Since we have locks over the logs, use direct access rather than API requests to get to them 2016-06-02 18:10:36 +12:00
Aldo Cortesi 40156ce123 Bump error timeout 2016-06-02 17:55:11 +12:00
Aldo Cortesi 5e12384486 Remove debug print 2016-06-02 17:54:34 +12:00
Aldo Cortesi 92decf96dd Add expect_log to the pathod test truss, and use it for last_log 2016-06-02 17:46:37 +12:00
Aldo Cortesi 29bcdc8250 Fix lock over pathod locks
There were basically a nop before... o_O
2016-06-02 16:08:17 +12:00
Aldo Cortesi 09da1febbd Shift a bunch more string-related functions to strutils 2016-06-02 13:04:19 +12:00
Aldo Cortesi 31012d782f Consolidate some functions to strutils.bytes_to_escaped_str 2016-06-02 12:53:12 +12:00
Aldo Cortesi 3d9dbd6a49 xrepr is used exactly once. move to pathoc.py. 2016-06-02 12:37:24 +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
Shadab Zafar 42f16d5d40 Py3: Use six.string_types instead of basestring 2016-05-31 00:49:44 +05:30
Shadab Zafar 769e20f2a9 Py3: Use range from six.moves 2016-05-31 00:41:44 +05:30
Aldo Cortesi b2f63458fc Move human-friendly format functions to netlib.human, remove redundant implementations 2016-05-31 19:32:08 +12:00
Thomas Kriechbaumer e2447406cc more style cleanup 2016-05-29 13:43:20 +02:00
Thomas Kriechbaumer e4045dc7f8 pathod: fix most flake8 offenses 2016-05-28 22:44:28 +02:00
Thomas Kriechbaumer caee1adeb6 cleanup imports with flake8 2016-05-28 14:43:32 +02:00
Shadab Zafar 4ec56808dd remove str() 2016-05-26 23:07:37 +05:30
Shadab Zafar 1bbb178b6a Remove inner_repr, fixup escape_unprintables 2016-05-26 23:07:37 +05:30
Shadab Zafar 1699592f09 Use escaped_str functions for TokValueLiteral 2016-05-26 23:07:37 +05:30
Shadab Zafar daaa672d39 Remove Py3 specific check 2016-05-26 23:07:37 +05:30
Shadab Zafar 5c62fabc84 Use BytesIO in pathod app 2016-05-26 23:07:37 +05:30
Shadab Zafar 22e4bc1938 Py3: Handle bytes case in inner_repr 2016-05-26 23:07:37 +05:30
Shadab Zafar e5cebb81fb Removed wrong import 2016-05-26 23:07:37 +05:30
Shadab Zafar 88e42bab6d Py3: inner_repr and escape_unprintables 2016-05-26 23:07:37 +05:30
Shadab Zafar f3932b27da Py3: Import and Other misc. stuff 2016-05-26 23:07:37 +05:30
Aldo Cortesi 123e3b130c We don't need 3 slightly different implementations of Data 2016-05-21 11:53:14 +12:00
Thomas Kriechbaumer 55a17b2ed3 fix encoding error on *too* random bytes
This should fix things like:

def __init__(self, val):
    self.val = val.decode("string_escape")
ValueError: Trailing \ in string
pathod/language/base.py:108: ValueError

test/pathod/test_language_websocket.py:83: in fr
    return netlib.websockets.Frame.from_bytes(tutils.render(wf, settings))
test/pathod/tutils.py:123: in render
    r = r.resolve(settings)
pathod/language/websockets.py:179: in resolve
    Key(base.TokValueLiteral(os.urandom(4)))
2016-05-15 10:41:54 -07:00
Maximilian Hils acab4fea5a fix version.NAME 2016-05-11 13:02:19 -06:00
Maximilian Hils bc60c26c7b py3++ 2016-04-13 22:34:28 -07:00
Maximilian Hils 35a6d6e7f6 response.msg -> response.reason 2016-04-02 22:54:46 +02:00
Thomas Kriechbaumer ec68d8b8e4 s/nocover/no cover/g
according to coveralls docs
2016-03-27 12:02:41 +02:00
Maximilian Hils 2ce023a991 py3++ 2016-03-20 22:50:03 +01:00
Maximilian Hils 88d365cfe6 py3++: cStringIO 2016-03-20 19:40:03 +01:00
ikoz 9b970b0303 fix for sslinfo cert chain printing bug - now all certs get printed 2016-03-15 14:40:54 +00:00
Maximilian Hils d33d3663ec combine projects 2016-02-18 13:03:40 +01:00
Maximilian Hils 294774d6f0 move pathod/.sources to root 2016-02-18 12:29:49 +01:00
Aldo Cortesi 36e070ee25 Pull bin to the top, move pathod examples to examples dir 2016-02-18 10:15:59 +13:00
Maximilian Hils b7701eb8c1 add combined MANIFEST.in and CHANGELOG 2016-02-17 00:02:18 +01:00
Thomas Kriechbaumer 1785f70a19 fix all libpathod->pathod references 2016-02-16 21:11:19 +01:00
Thomas Kriechbaumer dedca54099 rename pathod source directory 2016-02-16 20:37:53 +01:00
Maximilian Hils 5101843683 fix wheel creation, re-add MANIFEST.in 2016-02-16 04:28:10 +01:00
Maximilian Hils 4583fa7922 remove MANIFEST.in, move Dockerfile to root 2016-02-16 00:57:42 +01:00
Maximilian Hils 10f9b6faa7 fix release tool, refs #947 2016-02-16 00:22:38 +01:00
Maximilian Hils 3d9a5157e7 use own shields instance, update pathod readme 2016-02-15 21:13:06 +01:00
Maximilian Hils fc9fa87827 fix ALPN checks 2016-02-15 18:43:06 +01:00
Maximilian Hils b7af845523 fix appveyor, re-introduce requirements.txt 2016-02-15 18:12:12 +01:00
Maximilian Hils a1190c3696 adjust travis 2016-02-15 17:06:32 +01:00
Maximilian Hils d7158f975e move tests into shared folder 2016-02-15 16:34:22 +01:00
Maximilian Hils 95cef3c0e9 merge metadata files 2016-02-15 15:43:59 +01:00
Maximilian Hils 175ce43a30 add pathod 2016-02-15 14:58:49 +01:00
Thomas Kriechbaumer 18a4456397 refactor cmdline tests 2015-06-15 15:50:44 +02:00
Aldo Cortesi cd481fdd14 Refactor and whitespace 2014-10-24 17:12:54 +13:00
Aldo Cortesi 962a414327 Fix tests, re-add scripts 2014-10-24 14:01:34 +13:00
Maximilian Hils 658a56a1ac use setuptools entrypoints rather than scripts 2014-08-31 02:09:04 +02:00
Aldo Cortesi e54bf1a804 Adjust for upstream cert store changes, improve cert handling significantly 2014-03-05 15:03:31 +13:00
Aldo Cortesi 0177eb899a Support cert/key combo files in args. Improve argument names in SSLOptions 2014-03-02 15:56:36 +13:00
Aldo Cortesi 091e539a02 Big improvements to SSL handling
- pathod now dynamically generates SSL certs, using the ~/.mitmproxy
cacert
- pathoc returns data on SSL peer certificates
- Pathod certificate CN can be specified on command line
- Support SSLv23
2014-03-02 13:45:35 +13:00
Aldo Cortesi a1d0da2b53 Expand SSL support
- Cipher suite selection for both pathoc and pathod
- SSL version specification for pathod
- Expose SSLv23 as an option, and use it by default
2014-02-27 18:33:48 +13:00
Maximilian Hils 0c04abb6e4 fix pathod main script 2014-02-08 22:42:27 +01:00
Maximilian Hils 42aede6181 ensure binary read on windows 2013-08-19 19:21:47 +02:00
Aldo Cortesi 9e7f08acea Download path, version flags for both tools. 2013-05-15 18:56:05 +12:00
Aldo Cortesi 1e932e7045 Collect SSL options into an SSLOptions object
Also split SSL cert specifications from SSL service mode - we can now enter SSL
service mode through a proxy CONNECT request as well.
2013-01-05 16:48:49 +13:00
Aldo Cortesi 3886ccae93 Provisional proxy mode support for pathod. 2013-01-05 15:25:09 +13:00
Aldo Cortesi b07ab253b7 Require requests > 1.0.4
This changes the API slightly, since json is now a method, not a property.
2012-12-31 12:23:42 +13:00
Aldo Cortesi 3f50930dc0 Use .freeze to implement the -e explain flags for pathod and pathoc.
This now prints (in pathoc) or logs (in pathod) a frozen specification that
includes an expanded record of all generated values and locations.
2012-10-31 11:34:58 +13:00
Aldo Cortesi f5d5cc4988 rparse.py -> language.py 2012-10-05 10:30:32 +13:00
Aldo Cortesi 41f1c66772 Add -q and -r flags to pathod, logging request and respnose bytes.
- These flags also mean that a bytes log is included in the internal log
buffer.
- There's an -x flag to turn on hex dump output in the text logs (does
not affect the log buffer).
2012-10-01 12:48:26 +13:00
Aldo Cortesi 915bcfbd30 Add timeout argument to Pathod, and matching -t command-line option. 2012-10-01 12:01:02 +13:00
Aldo Cortesi 60b016365f Use 24-hour clock for log timestamps. 2012-08-23 17:22:17 +12:00
Aldo Cortesi d758409b76 Make sure date stamps are added to all logs. 2012-08-23 12:00:16 +12:00
Aldo Cortesi ea2ca98bea Add -D to daemonize pathod. 2012-08-16 16:07:23 +12:00
Aldo Cortesi d7db6757b2 Listen on localhost by default. 2012-07-29 17:29:38 +12:00
Aldo Cortesi bc84cc99cd Handle file access denied in pathod. 2012-07-29 16:10:22 +12:00
Aldo Cortesi d8c53cbc57 Add an option to specify a log file to pathod. 2012-07-27 14:03:15 +12:00
Aldo Cortesi 3e158211a8 Add a --nohang flag that turns off pauses in response generation. 2012-07-26 20:01:51 +12:00
Aldo Cortesi eb1f2c3fc4 Add option to specify craft anchor point. 2012-07-24 21:51:43 +12:00
Aldo Cortesi a950a4d7a3 Add pathod --noapi to turn off the service API. 2012-07-23 23:31:26 +12:00
Aldo Cortesi 190392ea13 Add a --nocraft option to pathod that turns off crafting. 2012-07-23 21:39:31 +12:00
Aldo Cortesi 622a2b5607 Add a --noweb option to turn web iface off, refactor unit tests. 2012-07-23 19:55:33 +12:00
Aldo Cortesi 1c45f5b05c Use policy hook to apply a size limit in pathod, add corresponding cmdline arg. 2012-07-23 15:03:56 +12:00
Aldo Cortesi 65487ead6d Logging truss for pathod. 2012-06-24 21:40:31 +12:00
Aldo Cortesi 90c6fb394d Sketch out pathoc commandline interaction. 2012-06-24 21:10:10 +12:00
Aldo Cortesi 4fc64ac04f Enable anchors on command line. 2012-06-24 16:38:32 +12:00
Aldo Cortesi b335b3a335 Remove last vestige of Tornado pathod. 2012-06-21 17:00:04 +12:00
Aldo Cortesi 12c140b951 Restore client argument parsing. Add thread-safe logging subsystem. 2012-06-21 14:29:49 +12:00
Aldo Cortesi 892ee2a904 Start porting web app to Flask. 2012-06-19 16:57:57 +12:00
Aldo Cortesi bd99a13f39 Start refactoring towards netlib, adding SNI and client testing. 2012-06-17 07:57:24 +12:00
Aldo Cortesi 81fc990314 Fail if only one of certfile or keyfile is specified. 2012-06-07 16:36:54 +12:00
Aldo Cortesi 14b2a69d21 Start building a Pathod unit testing truss.
- Add test.py, which will house the testing API.
- Extend API with a shutdown method, used to terminate the test daemon.
- Refactor to allow clean shutdown.
2012-06-07 11:23:23 +12:00
Aldo Cortesi b5a74a26ee Let Pathod pick an arbitrary empty port if -p 0 is specified. 2012-06-07 10:17:30 +12:00
Aldo Cortesi 049d3d2b45 lippathod/app.py -> libpathod/pathod.py 2012-06-07 08:50:06 +12:00
Aldo Cortesi c2029496b8 Doc tweaks. 2012-04-29 21:41:56 +12:00
Aldo Cortesi 5650086ca1 First pass at a README. 2012-04-29 17:37:47 +12:00
Aldo Cortesi 2d88d88f8c Basic anchor adding. 2012-04-29 12:05:38 +12:00
Aldo Cortesi 7ca5c7ae90 Basic SSL support. 2012-04-29 11:18:56 +12:00
Aldo Cortesi 77eca33f26 Refactor application definitions and startup.
Also, create one of the dodgiest web testing trusses in history. Tornado just
seems to have no nice way of doing this.
2012-04-29 10:56:33 +12:00
Aldo Cortesi 2c8f17eae7 First pass at static file serving. 2012-04-28 13:16:51 +12:00
Aldo Cortesi b4105be21e Initial checkin. 2012-04-28 12:42:03 +12:00