ssrlive
62a04229db
shutdown function
3 years ago
B. Blechschmidt
fb3ad33b53
Add file descriptor and MTU to CLI arguments
3 years ago
B. Blechschmidt
500f6ef21f
Add file descriptor support
3 years ago
B. Blechschmidt
cb1babebd4
Only include setup feature on Linux
3 years ago
B. Blechschmidt
b669b9de22
Remove unnecessary integer suffix
3 years ago
ssrlive
c0cff1da58
refine SocksAddressType
3 years ago
ssrlive
3fc112fc2c
update for smoltcp
3 years ago
B. Blechschmidt
44122f3c68
Improve performance by increasing smoltcp socket buffer size
3 years ago
B. Blechschmidt
7818829760
Apply clippy fixes
3 years ago
B. Blechschmidt
10a674d1c9
Fix CPU spikes due to always-writable event and improve half-open connection handling
3 years ago
B. Blechschmidt
0be39345a8
Improve handling of half-open connections
3 years ago
B. Blechschmidt
6d9767db42
Add SOCKS4 support to CI
3 years ago
B. Blechschmidt
15703a4823
Use nix crate instead of interacting with libc directly, drop privileges
3 years ago
B. Blechschmidt
b8a08871d0
Support older Rust versions
3 years ago
B. Blechschmidt
a59be5a1af
Whitespace change to make cargo fmt happy
3 years ago
B. Blechschmidt
0bfd3f2514
Remove obsolete comment
3 years ago
B. Blechschmidt
3c79fa6071
Enable automated setup for private IP addresses
3 years ago
B. Blechschmidt
e78a3f9a73
Add notes about half-open connections
3 years ago
ssrlive
eac87c4f9f
refine code
3 years ago
B. Blechschmidt
94d70d11f4
Fix bug introduced by 86e7af0398
3 years ago
B. Blechschmidt
86e7af0398
Prevent connection error bubbling from terminating the app
3 years ago
B. Blechschmidt
b12e00c0f5
Document --setup-ip
3 years ago
B. Blechschmidt
76e0b6fe1d
Handle private IP addresses in setup
3 years ago
B. Blechschmidt
2a2b188c75
Make setup argument optional
3 years ago
B. Blechschmidt
d0c24b9f6a
Improve setup error handling and describe the setup function in the README
3 years ago
B. Blechschmidt
bfface515d
Only log the DNS A query
3 years ago
B. Blechschmidt
33892e28dc
Improve code elegance in DNS cache removal function
3 years ago
B. Blechschmidt
58faf871c3
Fix copy and paste error
3 years ago
B. Blechschmidt
4a48b297f3
Restore network configuration on Drop
3 years ago
B. Blechschmidt
e4d4e0965e
Add root privilege requirement notice
3 years ago
B. Blechschmidt
1a4a8c4c16
Add auto setup method
3 years ago
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
3 years ago
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.
3 years ago
ssrlive
d4410264e6
refine code
3 years ago
B. Blechschmidt
341bab5586
Implement SOCKS4
3 years ago
ssrlive
197b1c83a4
use thiserror to make error handler simple
3 years ago
ssrlive
bfa1bbc462
switch to smoltcp dev version
to support IpProtocol with Hash trait
3 years ago
B. Blechschmidt
4eddcfd02b
Fix code style
3 years ago
B. Blechschmidt
8135ed3dce
Handle poll interrupt gracefully
3 years ago
B. Blechschmidt
83846fe631
Make virtual DNS more robust
3 years ago
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.
3 years ago
ssrlive
31e8d4791e
remove s2e function
3 years ago
ssrlive
0fd5d85155
clean code
3 years ago
ssrlive
1d1e50c36a
remove lots of unwrap()
3 years ago
ssrlive
ad388f897a
refine TunToProxy struct
3 years ago
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.
3 years ago
B. Blechschmidt
7695ba9c39
Increase DNS implementation robustness
3 years ago
B. Blechschmidt
846375a7d3
Improve readability of IP addresses
3 years ago
B. Blechschmidt
8be40a1fbd
Squashed code beautifications
commit d5fdf845bf
Author: ssrlive <[email protected] >
Date: Thu Mar 23 23:21:22 2023 +0800
Update tun2proxy.rs
commit 2540daa423
Author: ssrlive <[email protected] >
Date: Thu Mar 23 22:40:26 2023 +0800
Update main.rs
commit 9ef5efb864
Author: ssrlive <[email protected] >
Date: Thu Mar 23 22:19:06 2023 +0800
Update main.rs
commit 017ea1a17a
Author: ssrlive <[email protected] >
Date: Thu Mar 23 22:15:00 2023 +0800
Update main.rs
3 years ago
ssrlive
32403c5423
remove the From implement
3 years ago