Commit graph

121 commits

Author SHA1 Message Date
Сергей Прохоров
223258439a
Fix handle_cast return value 2019-05-26 03:59:28 +02:00
Сергей Прохоров
9b8f382bc6
mtp_obfuscated: specify some binary part sizes 2019-05-26 03:47:57 +02:00
Сергей Прохоров
24ef827705
Add another replay attack protection: filter error replies from downstream 2019-05-26 03:47:15 +02:00
Сергей Прохоров
6768b7ba99
Minor mtp_metric optimizations 2019-05-26 01:24:49 +02:00
Сергей Прохоров
e66778ed7c
Make downstream backpressure tunable 2019-05-22 02:33:16 +02:00
Сергей Прохоров
e2308a6e57
Use "hut" for logger abstraction 2019-05-22 00:08:32 +02:00
Сергей Прохоров
c8d8edfb27
Replace fully-qualified call to local 2019-05-21 18:03:25 +02:00
Сергей Прохоров
31cec780e4
Add Erlang 22 to travis 2019-05-21 18:03:06 +02:00
Сергей Прохоров
c8804a16bb
Make sure stored "session fingerprint" is not referring larger binary 2019-05-20 20:49:31 +02:00
Сергей Прохоров
6a88feb97b
README updated to reflect replay attack changes 2019-05-20 03:35:05 +02:00
Сергей Прохоров
0f4d180a06
Replay attack mitigation
Storage of recently used 1st packets added. Connections with the same
1st packet are disallowed
2019-05-20 03:14:32 +02:00
Сергей Прохоров
07d397ce93
tests: fix bug in common test reset code 2019-05-10 17:35:05 +02:00
Сергей Прохоров
977109d05a
Add special helpers for live config_change 2019-05-09 17:18:29 +02:00
Сергей Прохоров
f1070dfee2
Handle "max packet size" errors; fix related bug in abridged codec 2019-04-30 23:50:09 +02:00
Сергей Прохоров
90feb07cdf
Fix httpd "eaddrinuse" in tests 2019-04-02 00:02:10 +02:00
Сергей Прохоров
d8aec8155f
Add some statefull property-based integration tests 2019-03-13 02:12:21 +01:00
Сергей Прохоров
66f074655b
Separate metrics for different backpressure types; test tweaks 2019-03-08 00:44:35 +01:00
Сергей Прохоров
efafd37ca9
Tune socket receive buffer sizes to fix false positive backpressure 2019-03-08 00:27:21 +01:00
Сергей Прохоров
23ef74a551
Add downstream backpressure tests 2019-03-07 02:34:10 +01:00
Сергей Прохоров
e9471b25c2
tests: Make it possible to block until metric value will match predicate 2019-03-07 02:33:31 +01:00
Сергей Прохоров
9a735bf928
Make it possible to change logick of test server RPC handling 2019-03-07 02:32:22 +01:00
Сергей Прохоров
a3a21ecd37
Make it possible to configure upstream healthchecks 2019-03-07 02:30:02 +01:00
Сергей Прохоров
321cfd69fb
Add some more metric-based asserts to CT 2019-03-05 01:52:40 +01:00
Сергей Прохоров
68ba4e792f
Add .editorconfig 2019-03-05 01:30:56 +01:00
Сергей Прохоров
40dfa84d61
Add some docstrings to tests 2019-03-05 01:30:38 +01:00
Сергей Прохоров
eea142f6fe
Add property-based tests to mtp_codec 2019-03-05 01:30:02 +01:00
Сергей Прохоров
59b1af2338
Fix get_stacktrace deprecation warning 2019-03-05 00:10:56 +01:00
Сергей Прохоров
26c8ce5c60
Add erlang 21.2 to travis.yml 2019-03-04 22:59:03 +01:00
Сергей Прохоров
109049591e
Upgrade rebar3 to 3.9.0 2019-03-04 22:57:20 +01:00
Сергей Прохоров
e9ece4c817
Split mtp_test_middle_server to 2 modules
- one with just middle-server implementation
- one with proxy config mock and multi-server DC setup
2019-03-04 11:15:07 +01:00
Сергей Прохоров
8a80fd4b59
Fix common test (webserver root dir) 2019-03-04 11:07:42 +01:00
Сергей Прохоров
8be2a3da0e
Add test proxy client and some basic common-tests 2019-03-04 01:44:47 +01:00
Сергей Прохоров
ad2ab9425a
Fix inconsistency in mtp_codec:fold_packets 2019-03-04 01:34:34 +01:00
Сергей Прохоров
d1398b5bb3
Property-based tests for mtp_rpc 2019-03-01 23:25:24 +01:00
Сергей Прохоров
30d88211e4
Merge branch 'master' into multiplexing 2019-03-01 22:49:06 +01:00
Сергей Прохоров
871ab11ad3
Add fake telegram "middle-proxy" server and http config server implementations
And make it possible to make proxy connect to it
2019-03-01 17:00:54 +01:00
Сергей Прохоров
aa6e06a4d5
Move handshake packet encoding/decoding from mtp_down_con to mtp_rpc 2019-03-01 16:59:57 +01:00
Сергей Прохоров
229ca2b6b8
Add property-based tests for codecs 2019-02-24 22:19:17 +01:00
Сергей Прохоров
2f015e2f3f
Make it possible to configure docker via environment variables 2019-02-18 00:37:47 +01:00
Сергей Прохоров
1cf3a34b77
Make it possible to configure docker via environment variables 2019-02-18 00:37:00 +01:00
Сергей Прохоров
80e6b268ec
Add more detailed traffic metrics (tx and rx, per-listener and per-dc) 2019-02-16 20:50:12 +01:00
Сергей Прохоров
da597f0f8c
Return more details about downstream socket errors 2019-02-16 20:50:12 +01:00
Сергей Прохоров
46c37ae6a7
All dialyzer errors fixed; dialyzer added to travis.yml 2019-02-16 20:50:12 +01:00
Сергей Прохоров
8031dafa20
Fix "maybe_close_down" race-condition
If downstream connection pool crashed and recovered while some
upstream was alive holding it's DC ID, it may return downstream
taken from the old incarnation of pool to new one because it's
registered under the same name.
Fix is to hold pool's PID instead of name
2019-02-16 20:50:12 +01:00
Сергей Прохоров
e9f999a151
Stop ranch listeners in 'prep_stop', not 'stop' application callback 2019-02-16 20:50:12 +01:00
Сергей Прохоров
bf01459be5
Handle some of 'unknown_upstream' errors as expected race-condition 2019-02-16 20:50:12 +01:00
Сергей Прохоров
8026fb5552
Detect downstream connection attempt failure quicker
By checking for monitor message
2019-02-16 20:50:12 +01:00
Сергей Прохоров
79fb6015f6
Experimental backpressure for downstream 2019-02-16 20:50:12 +01:00
Сергей Прохоров
6bc9253999
Don't report tcp socket error as gen_server error 2019-02-16 20:50:12 +01:00
Сергей Прохоров
414e7bc037
Fix some dialyzer errors 2019-02-16 20:50:12 +01:00