zonyitoo

zonyitoo

Backend Developer

Member Since 10 years ago

Experience Points
917
follower
Lessons Completed
165
follow
Lessons Completed
1.4k
stars
Best Reply Awards
97
repos

700 contributions in the last year

Pinned
⚡ A Rust port of shadowsocks
⚡ H3C CLI Client for SYSU, which is implemented in C/C++. With an OpenWRT version.
⚡ INI file parser in Rust
⚡ Context utilities in Rust
Activity
May
18
1 day ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

windows also supports dual-stack udp socket

commit sha: 4605783fcfe8646e75ad9c93a99ebc7ae82800de

push time in 1 day ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

socks5 udp converts IPv4-mapped-IPv6 to IPv4

commit sha: 95a3c9c11166c5ebff810e5e200a8f02113092f9

push time in 1 day ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

UDP outbound socket unified to one IPv6 socket

Older implementation uses 2 separated sockets for sending IPv4 and IPv6 packets, so one client may be mapped to 2 different outbound addresses.

IPv6 UDP socket is capable to send packets to IPv4 targets, just use IPv4-mapped-IPv6 addresses as target addresses.

NOTE: OpenBSD's IPv6 socket are always IPv6-only. https://man.openbsd.org/OpenBSD-current/ip6#IPV6_V6ONLY

commit sha: 90ae706737f72b07f56b0ef3fcc200e49a45a3d5

push time in 1 day ago
push

zonyitoo push Matrix-Zhang/tokio_kcp

zonyitoo
zonyitoo

add missing features for tokio, fix #16

commit sha: b6a95638cfef32f75f400363abd9db13081bb63a

push time in 1 day ago
May
17
2 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

AEAD-2022 header check error with detailed message

commit sha: 0685e4ab998612a2782f85610d3f5fb2095b0860

push time in 2 days ago
started
started time in 2 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

replay policy must be "reject" for aead-2022

commit sha: 30c4b83374b869b82966e0ac9d13878bd51d9b78

push time in 2 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

replay attack policy "reject" for AEAD-2022 ciphers

  • add "default" policy, which is "reject" for AEAD-2022 and "ignore" for AEAD, Stream ciphers

commit sha: 0f970a75270c25857959bfba4d09759bca283ebe

push time in 2 days ago
Activity icon
delete

zonyitoo in shadowsocks/shadowsocks-rust delete branch dependabot/cargo/smoltcp-0.8.1

deleted time in 2 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

Bump smoltcp from 0.8.0 to 0.8.1

Bumps smoltcp from 0.8.0 to 0.8.1.


updated-dependencies:

  • dependency-name: smoltcp dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] [email protected]

commit sha: 6c5b478385e705dfcb572e953bc5fc6cced2c128

push time in 2 days ago
pull request

zonyitoo pull request shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

Bump smoltcp from 0.8.0 to 0.8.1

Bumps smoltcp from 0.8.0 to 0.8.1.

Changelog

Sourced from smoltcp's changelog.

[0.8.1] - 2022-05-12

  • Remove unused rand_core dep. (#589)
  • Use socklen_t instead of u32 for RawSocket bind() parameter. Fixes build on 32bit Android. (#593)
  • Propagate phy::RawSocket send errors to caller (#588)
  • Fix Interface set_hardware_addr, get_hardware_addr for ieee802154/6lowpan. (#584)
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
May
16
3 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

make "password" optional for none/plain method (#838)

commit sha: 77d343eb980234db14e2a179de98a7de408a3cfd

push time in 3 days ago
Activity icon
issue

zonyitoo issue shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

Make password optional.

I just found out that when I use plain/none I still have to write something here even if it will do nothing. So, maybe we can make password optional? I use TLS to protect transport security and I already set a specific path for it.

push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

make "password" optional for none/plain method (#838)

commit sha: d8ba402b2f7616bb2e3f094d9186ad3d474f1e76

push time in 3 days ago
May
15
4 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

fixed PingBalancer checker panic when servers is empty

commit sha: 76f8b021c8fb6f4cd53530b4088f57e5bd8617a0

push time in 4 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

allow sslocal run without servers (#818)

If no server was configured, then sslocal will bypass all connections and packets.

commit sha: 855f7fa8f126586d3fafcc8a94ee5cb32259fa72

push time in 4 days ago
Activity icon
issue

zonyitoo issue comment shadowsocks/shadowsocks-org

zonyitoo
zonyitoo

SIP002 - Optional extension configurations as query strings in ss URLs

Shadowsocks Improvement Proposal 002 (actually why don't we just use issue number to refer to them instead)

Optional configurations as query strings in ss URLs

Since #26, there are at least two optional extension for shadowsocks as far as I can tell:

  • Kcptun
  • HTTP/TLS obfuscation

There may be more extensions in the future. So what about adding them to ss URLs? For example, we can have ss://...?kcpport=8839&kcpcli=--crypt+none......#a+name for easier configuration. Clients that don't support the extensions can safely ignore them.

What should be included:

  • Values that should be consistent with server configuration.

What shouldn't:

  • Arbitrary values that can be configured by users, like whether the extension is enabled.
  • Values that could need changing when copying to other device (except that configuration for client and server can be different), like per-app proxy settings in Android client.

Problems:

  • Should client enable the extension that's been configured when importing?
  • Should client export the extension configuration even if it's not enabled?

Final version:

SIP002 purposed a new URL schema, following RFC3986:

SS-URI = "ss://" userinfo "@" hostname ":" port [ "/" ] [ "?" query ] [ "#" fragment ]
userinfo = websafe-base64-encode-utf8(method  ":" password)

The last / should be appended if query or fragment is present. Example: ss://[email protected]:8888/?plugin=url-encoded-plugin-argument-value&unsupported-arguments=should-be-ignored#Dummy+profile+name. This kind of URIs can be parsed by standard libraries provided by most languages.

For plugin argument, we use the similar format as TOR_PT_SERVER_TRANSPORT_OPTIONS, which have the format like simple-obfs;obfs=http;obfs-host=www.baidu.com where colons, semicolons, equal signs and backslashes MUST be escaped with a backslash.

zonyitoo
zonyitoo

I think it is Ok to just change SIP002's spec about allowing plain text user-info, because you can always use the old SIP002 URL to represent SIP022 methods. So plain text user-info is just an extension of SIP002.

push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

check REQUEST_SALT only when received at least 1 data chunk

commit sha: 365740a0a171db110da55491307538822358e673

push time in 4 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

check REQUEST_SALT only when read() returns non-EOF

commit sha: f5c79569045d2f90347b8427c790d8ed48c1bbcd

push time in 4 days ago
started
started time in 4 days ago
started
started time in 4 days ago
push

zonyitoo push shadowsocks/shadowsocks-rust

zonyitoo
zonyitoo

set SO_LINGER (0) for misbehav clients before close()

commit sha: ce08be7a3124e30ed1b2d688f18cd8917658d794

push time in 4 days ago
Activity icon
delete

zonyitoo in zonyitoo/repo delete branch patch-1

deleted time in 4 days ago
Activity icon
delete

zonyitoo in zonyitoo/repo delete branch patch-2

deleted time in 4 days ago
Previous