Commit graph

180 commits

Author SHA1 Message Date
Sergey Prokhorov
5fcedfdf9c
Replace Travis-CI with Github actions, add support for OTP-25 2022-11-23 00:58:53 +01:00
Sergey Prokhorov
a07e03f73a
Merge pull request #68 from T1me/master
fix README
2021-09-26 18:23:40 +02:00
T1me
a3a81ee846
fix README 2021-09-26 21:25:43 +08:00
Sergey Prokhorov
8104202a7b
Create FUNDING.yml 2021-09-07 19:00:57 +02:00
Sergey Prokhorov
2f2f2bb6b0
Migrate to more modern OTP versions (remove OTP-20, add OTP-23,24) 2021-05-19 20:50:21 +02:00
Sergey Prokhorov
5ad7c536da
Add option to disable crc32 check in mtp_full to save CPU 2019-10-24 23:28:24 +02:00
Sergey Prokhorov
90ad1dd0ba
Clean-up config options 2019-10-24 22:37:24 +02:00
Sergey Prokhorov
7b4c5dde9c
tests: add encoder and decoder for unencrypted mtproto messages
req_pq and resPQ messages
2019-10-22 03:48:51 +02:00
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