Commit graph

63 commits

Author SHA1 Message Date
ssrlive
b92f2efd81 remove .expect call 2023-08-08 09:20:43 +08:00
ssrlive
3b9207fb7a fixing get_transport_info 2023-08-08 09:16:57 +08:00
ssrlive
c8b13fc404 receive_tun 2023-08-07 12:29:36 +08:00
ssrlive
30d7217374 refine VirtualDns 2023-08-06 18:31:49 +08:00
ssrlive
1031f586f7
Refine code logic 2023-08-05 15:52:32 +08:00
ssrlive
c61b6c74cd swith socks5-impl 2023-07-24 20:48:56 +02:00
B. Blechschmidt
3e26675919 Support seamless digest auth with Connection: close (see PR #44) 2023-07-02 23:02:08 +02:00
B. Blechschmidt
e6b1e93cd0 Merge branch 'master' into digestauth 2023-06-30 21:16:57 +02:00
B. Blechschmidt
45dae79263 Update smoltcp to version 0.10.0 2023-06-30 21:14:28 +02:00
Jorge Alejandro Jimenez Luna
86429ee8eb
Initial support digest auth scheme 2023-06-22 13:09:36 -04:00
B. Blechschmidt
ad72147ff4 Free memory of closed connections 2023-04-27 22:42:55 +02:00
B. Blechschmidt
5e218c2130 Use pipe for exiting 2023-04-27 22:42:55 +02:00
ssrlive
cba6ba7318 new_token function 2023-04-15 10:07:40 +02:00
ssrlive
62a04229db shutdown function 2023-04-14 20:17:10 +02:00
B. Blechschmidt
500f6ef21f Add file descriptor support 2023-04-10 23:24:53 +02:00
ssrlive
3fc112fc2c update for smoltcp 2023-04-10 09:58:17 +08:00
B. Blechschmidt
44122f3c68 Improve performance by increasing smoltcp socket buffer size 2023-04-04 10:17:13 +02:00
B. Blechschmidt
10a674d1c9 Fix CPU spikes due to always-writable event and improve half-open connection handling 2023-04-04 00:18:50 +02:00
B. Blechschmidt
0be39345a8 Improve handling of half-open connections 2023-04-03 20:31:31 +02:00
B. Blechschmidt
e78a3f9a73 Add notes about half-open connections 2023-03-27 17:04:52 +02:00
ssrlive
eac87c4f9f refine code 2023-03-27 16:37:50 +02:00
B. Blechschmidt
94d70d11f4 Fix bug introduced by 86e7af0398 2023-03-27 12:14:43 +02:00
B. Blechschmidt
86e7af0398 Prevent connection error bubbling from terminating the app 2023-03-26 15:22:22 +02:00
B. Blechschmidt
20dc6f78f1 Refactor
This commit moves some essential types to lib and fixes one clippy
warning: https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names
2023-03-25 13:07:49 +01:00
B. Blechschmidt
e6e6c70006 Fix formatting
IPv6 addresses without ports are not enclosed in brackets. They only get
enclosed in brackets in combination with a port.
2023-03-25 11:02:25 +01:00
ssrlive
d4410264e6 refine code 2023-03-25 16:44:33 +08:00
B. Blechschmidt
a5aac8c0a4 Merge SOCKS4 support
The SOCKS4 tests in the CI pipeline will currently fail, as no SOCKS4
test server for automated testing has been set up yet.
2023-03-25 01:53:30 +01:00
B. Blechschmidt
341bab5586 Implement SOCKS4 2023-03-25 01:39:46 +01:00
ssrlive
bfa1bbc462 switch to smoltcp dev version
to support IpProtocol with Hash trait
2023-03-24 21:30:20 +01:00
B. Blechschmidt
4eddcfd02b Fix code style 2023-03-24 18:14:31 +01:00
B. Blechschmidt
8135ed3dce Handle poll interrupt gracefully 2023-03-24 18:11:23 +01:00
B. Blechschmidt
5930b9b3b1 Merge improved error handling from ssrlive 2023-03-24 15:31:05 +01:00
B. Blechschmidt
3c8005e6b7 Use LRU cache for virtual DNS
This commit introduces an LRU cache for virtual DNS and fixes a bug
where the virtual DNS feature would cause connection mappings to time
out.
2023-03-24 13:26:31 +01:00
ssrlive
1d1e50c36a remove lots of unwrap() 2023-03-24 14:31:22 +08:00
ssrlive
ad388f897a refine TunToProxy struct 2023-03-24 09:27:31 +08:00
B. Blechschmidt
6b7f550e7a Enable virtual DNS by default for the CLI.
This commit enables virtual DNS by default for the CLI.

Pros for this decision:
  - It works out of the box in most cases.
  - Users do not need to install third-party software.
  - Users do not need to update their /etc/resolv.conf.

Cons:
  - Not every server might support this.
  - Hijacking port 53 without asking is somewhat intrusive.

Also, make the --dns argument an enum type. In the future, native
support for DNS over TCP/TLS might be added. In that case we could e.g.
supply tcp://1.1.1.1 to the --dns argument without breaking the CLI.
2023-03-23 22:13:35 +01:00
B. Blechschmidt
846375a7d3 Improve readability of IP addresses 2023-03-23 19:02:20 +01:00
B. Blechschmidt
8be40a1fbd Squashed code beautifications
commit d5fdf845bf
Author: ssrlive <30760636+ssrlive@users.noreply.github.com>
Date:   Thu Mar 23 23:21:22 2023 +0800

    Update tun2proxy.rs

commit 2540daa423
Author: ssrlive <30760636+ssrlive@users.noreply.github.com>
Date:   Thu Mar 23 22:40:26 2023 +0800

    Update main.rs

commit 9ef5efb864
Author: ssrlive <30760636+ssrlive@users.noreply.github.com>
Date:   Thu Mar 23 22:19:06 2023 +0800

    Update main.rs

commit 017ea1a17a
Author: ssrlive <30760636+ssrlive@users.noreply.github.com>
Date:   Thu Mar 23 22:15:00 2023 +0800

    Update main.rs
2023-03-23 18:01:25 +01:00
ssrlive
32403c5423 remove the From implement 2023-03-23 21:39:27 +08:00
B. Blechschmidt
4260e28a52 Improve code style 2023-03-23 13:24:33 +01:00
B. Blechschmidt
3de8b992d4 Merge branch 'ssrlive' into dns-robustness 2023-03-23 13:21:54 +01:00
B. Blechschmidt
c9297124e1 Implement first, unfinished version of DNS support and fix incomplete TCP stream bug
This commit does two things:
First, it implements a first, unfinished version of the virtual DNS
functionality. This feature is incomplete and has known bugs. Since it
needs to be enabled manually, this is not a huge issue so far.
Second, the commit fixes a bug where TCP streams where not properly
relayed, causing TCP connections to stall.
2023-03-23 13:03:01 +01:00
ssrlive
d4eed896bb SocketAddr issues 2023-03-23 20:00:59 +08:00
ssrlive
6fe44f8055 IpProtocol values 2023-03-23 18:31:09 +08:00
ssrlive
4af656039e refine code 2023-03-23 16:47:44 +08:00
B. Blechschmidt
1a5eeece6f Prepare DNS support 2023-03-22 19:11:28 +01:00
ssrlive
e637a55e6a move error handler to a separate module 2023-03-22 15:51:08 +01:00
B. Blechschmidt
e509a81d67 Supply Proxy type to main_entry instead of individual args and adapt test cases 2023-03-22 13:18:07 +01:00
B. Blechschmidt
2f295c3fdc Use Option type for credentials
This commit applys the diff by @ssrlive from
3223ca4e22 (commitcomment-105521241).
2023-03-22 12:18:41 +01:00
B. Blechschmidt
d2aef08e3c Implement SOCKS5 authentication 2023-03-22 01:02:27 +01:00