Commit graph

172 commits

Author SHA1 Message Date
Sergey Prokhorov
d9d812e9cf
Version bump 0.7.0 2019-10-21 02:01:59 +02:00
Sergey Prokhorov
8e286760a9
Fix bug in previous commit (early tls error detection) 2019-10-16 22:51:44 +02:00
Sergey Prokhorov
2eb3fedd70
Early detection of non-tls connect when tls_only
This is a minor optimization for a common case when outdated
clients are trying to use tls-only proxy and storm it with
incorrect non-tls connect attempts.
2019-10-16 21:15:19 +02:00
Sergey Prokhorov
21d6a7a51f
Update readme and app.src default config
* Add link to telegram group
* Simplify private proxy examples
* More performace tips
* Change order of options in app.src to more logical
2019-10-14 03:09:34 +02:00
Sergey Prokhorov
047193d806
Add benchmarks 2019-10-14 02:48:08 +02:00
Sergey Prokhorov
c18cd95f51
Option to close client sockets with RST 2019-08-30 00:36:30 +02:00
Sergey Prokhorov
7366135d7a
Try to restart failed downstream even when there are pending connections 2019-08-29 19:25:16 +02:00
Sergey Prokhorov
00c0bd038f
Don't crash pool when it's empty and get/3 is called 2019-08-29 02:20:15 +02:00
Sergey Prokhorov
633319fbde
Add deadline for downstream connect handshake
There were situations, when downstream handshake stuck and stayed in
mtp_dc_pool `pending` field forever.
With this change if downstream can't finish handshake in 8s, it will crash
2019-08-29 01:35:30 +02:00
Sergey Prokhorov
d1bc6d90dd
Respawn failed downstream connections. Fixes gh-25 2019-08-29 01:11:07 +02:00
Sergey Prokhorov
46800f0671
Minor makefile fixes
* fix epmd detection on CentOS
* get rid of awk dependency
2019-08-28 23:46:17 +02:00
Sergey Prokhorov
c6e6ee6f3b
Add helpers for configuration reload 2019-08-27 00:32:23 +02:00
Sergey Prokhorov
438c770c79
Use httpc ipv4 options only on OTP 21+ 2019-08-26 21:04:54 +02:00
Sergey Prokhorov
2a5d64638e
policy: convert tls_domain to lowercase 2019-08-26 20:27:44 +02:00
Sergey Prokhorov
ae618ea478
Use ipv4 when querying IP lookup service
Also, replace broken IP lookup service with some others
2019-08-26 20:14:43 +02:00
Sergey Prokhorov
30f8c3dbf3
policy: add textual IP parser; add some more examples 2019-08-21 23:52:55 +02:00
Sergey Prokhorov
3786e2630f
Clean-up README; add some helper functions 2019-08-21 00:54:13 +02:00
Sergey Prokhorov
08fc61def4
Update rebar3 to 3.11 2019-08-21 00:54:00 +02:00
Sergey Prokhorov
fb0a3bafc7
Fix bugs in policy, add tests 2019-08-20 23:41:44 +02:00
Sergey Prokhorov
5c8cc0c50f
Experimental support for connection policies 2019-08-20 03:25:24 +02:00
Sergey Prokhorov
dcdf05a318
Use explicit ipv4 in curl makefile; add timeout; disable unused emulator threads 2019-08-18 19:30:11 +02:00
Sergey Prokhorov
30f7e6b9c1
Add fake-tls support to mtp_test_client; added TLS networking tests 2019-08-15 00:55:45 +02:00
Sergey Prokhorov
5fd6971f4e
Version bump: 0.6.1
Because of tls1.3 fixes
2019-08-13 18:05:39 +02:00
Sergey Prokhorov
0c2aa335ca
Add interactive installer script 2019-08-13 18:05:38 +02:00
Sergey Prokhorov
5e601bce3e Make it really look like TLSv1.3
By providing key_share and upported_versions extensions in ServerHello
2019-08-13 15:25:31 +02:00
Sergey Prokhorov
c33811c50c
Version bump 0.6.0 2019-08-13 00:46:00 +02:00
Sergey Prokhorov
fbe8cb593f
Allow any in tls_allowed_domains. 2019-08-13 00:45:29 +02:00
Sergey Prokhorov
237f9f1d25
Limit TLS record size to 2^14
See rfc8446#section-5.1
2019-08-12 19:02:37 +02:00
Sergey Prokhorov
7677fe1150
Add 'listener' to protocol_error metric 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
e28e21a77f
Fix decoding of packets split to multiple TLS frames. Fixes gh-16 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
e0c07667c4
Make it possible to restrict connections by TLS SNI domains 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
35c8f0dafe
Fix start.sh handling of -a key 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
40b1d8da0a
Dead code removed 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
263b199848
Fix infinite loop 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
30e8eca8cc
Print proxy links based on a set of enabled protocols on start 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
418709208c
Cosmetic changes: README, docker, dialyzer fixes 2019-08-12 19:02:37 +02:00
Sergey Prokhorov
0a1604d4be
Fake TLS protocol
* pretends being TLS1.3 + http2
* mtp_handler state-machine refactored
2019-08-12 19:00:28 +02:00
Sergey Prokhorov
c711054bf2
Add support for IPv6 clients. gh-11 2019-08-08 02:45:16 +02:00
Sergey Prokhorov
42eb63f29b
README fixed and updated 2019-08-08 00:42:41 +02:00
Sergey Prokhorov
d5d8b0d98e
Use alpine 3.9 for docker. Fixes #15
See https://github.com/erlang/docker-erlang-otp/issues/235
2019-08-07 22:36:23 +02:00
Sergey Prokhorov
2371703207
Fix bug in mtp_codec
Buffer was not saved if crypto codec returns `incomplete`
2019-07-26 18:37:17 +02:00
Sergey Prokhorov
6bc13bec85
Fix broken tests (padding) 2019-07-26 17:03:54 +02:00
Sergey Prokhorov
ddc04d678d
Revert mtp_full padding changes 2019-07-25 16:06:44 +02:00
Sergey Prokhorov
1429cfe267
Refactor codecs
* Get rid of per-codec internal read buffer
2019-07-25 13:17:37 +02:00
Sergey Prokhorov
6590a56e7c
Use erlang_psq from hex.pm 2019-06-09 20:12:14 +02:00
Sergey Prokhorov
e419845a1c
"maintainers" .app.src field removed 2019-06-09 19:59:49 +02:00
Sergey Prokhorov
e559b4619e
Version bump to 0.5.0 2019-06-09 19:47:42 +02:00
Sergey Prokhorov
a9701a3a4b
Merge branch 'master' into multiplexing 2019-06-08 22:43:22 +02:00
Sergey Prokhorov
69d5a18e38
Update IP lookup service address 2019-06-08 22:40:55 +02:00
Сергей Прохоров
223258439a
Fix handle_cast return value 2019-05-26 03:59:28 +02:00