1
0
mirror of https://github.com/MetaCubeX/mihomo.git synced 2026-10-10 20:23:11 +08:00
Commit Graph

4315 Commits

Author SHA1 Message Date
MiaM1ku fbb674227d fix: restart EasyTier outbound after silent overlay failure (#3215) 2026-09-16 00:51:29 +08:00
wwqgtxx ab405bad5b feat: support stack: mips in tun configuration v1.19.31 2026-09-14 19:59:30 +08:00
wwqgtxx dc66a8a180 fix: close connection after error handling in handleContextListener 2026-09-14 14:24:43 +08:00
wwqgtxx 78210c9c72 fix: close connection after error handling in kcptun 2026-09-14 14:11:18 +08:00
wwqgtxx 06b2c5b887 fix: close connection after error handling in mkcp outbound 2026-09-14 13:57:17 +08:00
wwqgtxx 187c6342c4 fix: close connection after error handling in snell outbound 2026-09-14 13:54:21 +08:00
wwqgtxx 0436650753 fix: close connection after error handling in doq 2026-09-14 13:49:12 +08:00
wwqgtxx 7d7532d49f fix: error using of safeConnClose in sudoku outbound 2026-09-14 11:34:28 +08:00
wwqgtxx faeb537ae2 fix: close connection after error handling in tuic server 2026-09-14 11:34:27 +08:00
wwqgtxx e0f1d2b2fd fix: close udp endpoint in mieru server 2026-09-14 11:34:27 +08:00
wwqgtxx 1cdca1a015 fix: handle decryption handshake errors in server 2026-09-14 11:24:37 +08:00
Huffer c210be21e0 chore: buffer geodata reads with a 16 KiB reader (#3185)
Batch small GeoSite and GeoIP reads, reuse prefetched bytes when skipping
records, and reconstruct the matched prefix without seeking backward.
Report EOF after a matched prefix as a truncated record.
2026-09-14 08:43:14 +08:00
enfein 94ccba5661 fix: mieru listener doesn't obey "listen" config (#3205)
Previously, mieru server always listen to 0.0.0.0.
Version 3.37.0 allow the server listen to a user provided IP address.
2026-09-14 07:51:40 +08:00
MiaM1ku dca26db017 feat: add EasyTier outbound (#3194) 2026-09-11 09:41:09 +08:00
wwqgtxx b59a7e7baf chore: sharing synthetic datasets used for build benchmarking 2026-09-11 07:53:18 +08:00
wwqgtxx ebf82e2962 chore: reuse queues during DomainSet build
Build the succinct domain index one level at a time and alternate two reusable queues instead of retaining every processed node until construction completes.

Keep explicit node IDs to preserve terminal ordering, Foreach output, and binary serialization. Query logic and the serialized layout remain unchanged.

This reduces peak build memory and improves construction time for DomainMap. In isolated measurements, the mixed 100k-rule workload used about 53% less peak memory and completed about 11% faster, while deep 100k-rule input used about 72% less peak memory and completed about 24% faster.
2026-09-11 06:51:26 +08:00
wwqgtxx f6a038ce0f chore: add some benchmark code for new DomainMap 2026-09-11 00:05:21 +08:00
wwqgtxx d37f58e768 chore: add new DomainMap implement based on succinct DomainSet 2026-09-10 22:49:36 +08:00
wwqgtxx 6087521e60 chore: avoid a separate rule slice in DumpMrs
DomainSet emits at most one exact entry and one suffix-only entry for each domain. Sorting without the leading dot makes matching pairs adjacent, so they can be combined in place.

Replace per-entry binary searches and the separate rule slice with an adjacent pairing pass. Merge pairs into +.domain, remove consumed entries from the original slice, and sort the resulting rules by their full text.

Add regression coverage for multiple pairs and wildcard ordering. Output semantics and early termination remain unchanged.
2026-09-10 22:28:36 +08:00
Aethersailor 518c7036df chore: convert support REALITY ML-KEM option (#3199)
Parse support-x25519mlkem768 from VLESS and VMess AEAD share links.
Only set it when a REALITY public key and a valid boolean are present,
preserving existing behavior for links without the parameter.

Add coverage for plain and Base64 subscriptions and adapter parsing.
2026-09-10 21:54:48 +08:00
wwqgtxx 77b9393c32 fix: preserve domain rules across Foreach round trips
The +.domain syntax includes both the domain itself and its subdomains. Using it for a suffix-only terminal adds an unintended exact match when the output is reinserted and can overwrite a separately stored exact value.

Emit .domain for suffix-only entries in DomainTrie and DomainSet Foreach, keeping exact entries separate. Preserve the internal '+' marker when converting Trie to Set, and combine MRS entries into +.domain only when both exact and suffix entries exist.

Add regression coverage for matching behavior and distinct values after reinsertion, as well as MRS deduplication and compact output. Query logic and binary layouts remain unchanged.
2026-09-10 18:52:49 +08:00
wwqgtxx 4aa9cc17fc chore: avoid redundant select calculations in DomainSet
Once the key is exhausted, a terminal node completes the match; otherwise only saved wildcard branches can still succeed. No input remains to match the current node's child edges, so their starting position is unnecessary.

Defer the child-edge select in Has until more input needs matching, both after matching a byte and when restoring a wildcard. Keep the node-terminator select needed to resume saved wildcard branches.

Earlier candidate benchmarks show median query times ~3%/~1% lower for short/long queries and ~11%/~8% lower for exact/mixed-rule workloads, with no additional allocations or changes to the index layout.
2026-09-10 09:25:15 +08:00
wwqgtxx 8e2f18a1a9 chore: avoid redundant rank calculations in DomainSet
Child edges are 0 bits and each node ends with a 1 bit in labelBitmap. An edge of nodeId has exactly nodeId preceding 1 bits, so its label index is bmIdx - nodeId. Child nodes follow the same order as labels, starting at 1 because node 0 is the root. Therefore, the child node ID is bmIdx - nodeId + 1.

Use this identity in Has and keys instead of countZeros. Keep rank for wildcard restoration, where the cursor lacks the parent node ID.

Existing short/long query benchmarks take ~12%/~11% less time, with no additional allocations or changes to the index layout.
2026-09-10 09:04:52 +08:00
wwqgtxx 5f9510988c fix: DomainSet wildcard matching with overlapping rules
These queries now correctly return true:

- Query: a.example.com
  Rules: [*.example.com, dead.a.example.com]

- Query: b.a.example.com
  Rules: [*.*.example.com, dead.*.a.example.com, dead.b.a.example.com]

- Query: b.c.a.example.com
  Rules: [*.*.*.example.com, *.a.example.com]
2026-09-10 08:19:36 +08:00
浅小沫 20bcda2d1a fix: avoid VLESS decryption cleanup panic (#3195) 2026-09-10 07:22:33 +08:00
wwqgtxx d5f57a5e29 fix: missing NeedHandshake for shadowsocks none 2026-09-08 18:12:47 +08:00
wwqgtxx 390870c7b4 feat: support identity-secret for ZeroTier 2026-09-08 17:31:05 +08:00
wwqgtxx 5183232e7f fix: RandomPaddingAddition and DisableCookies for AmneziaWG v3 2026-09-08 15:26:38 +08:00
NuoFang a91201f1fc fix: correct android amd64 core asset name in updater (#3167) 2026-09-08 14:22:19 +08:00
Token 6d179a1c45 fix: openvpn derive the tls-auth HMAC digest from auth instead of hard-coding SHA-1 (#3189) 2026-09-08 12:10:15 +08:00
wwqgtxx bbb8cb924b chore: add standalone DomainSetBuilder 2026-09-08 10:27:49 +08:00
saba-futai 8f54283e97 chore: updated sudoku to v0.5.0 (#3187) 2026-09-07 08:46:46 +08:00
wwqgtxx 92433dbafc chore: reduce gVisor memory usage 2026-09-07 07:31:32 +08:00
wwqgtxx fd74ecb6e2 fix: trusttunnel client not waiting for TCP connection established 2026-09-05 09:36:30 +08:00
wwqgtxx 634b31991c fix: hysteria2 UDP sessions not closed on connection close 2026-09-05 07:55:05 +08:00
Chenx Dust 0159cf47ed fix: restore hysteria v1 udp handling (#3178)
Fixed two Hysteria v1 UDP regressions introduced in 48c1b1cdb2 :
- Mark UDP session requests correctly with UDP: true.
- Initialize the packet buffer with zero length and preallocated capacity to prevent leading zero bytes.
2026-09-04 22:06:21 +08:00
8Mi_Yile 810b014ee9 action: update-tag action v1->v3 (#3172) 2026-09-03 00:24:20 +08:00
wwqgtxx 2ecceb5b8a chore: improve mipstack under device backpressure 2026-09-02 23:29:53 +08:00
CyberVacation 68ec4fae65 fix: ipv6 url parse in xhttp (#3160) 2026-08-31 15:26:17 +08:00
beck 65287f0e0f chore: reduce memory usage in converter (#3159) 2026-08-29 21:05:32 +08:00
wwqgtxx 061966e797 chore: OpenVPN no longer relies on the underlying conn deadline functions 2026-08-27 15:36:11 +08:00
Sinspired 99c49780fd fix: prevent nil pointer dereference in WireGuard initialization (#3148) 2026-08-27 00:38:13 +08:00
wwqgtxx 4dfaa9027d chore: align the APIs between mipstack and gvisor 2026-08-26 19:10:46 +08:00
Kosta fb66af813b fix: typo in config.yaml (#3145) 2026-08-25 18:09:54 +08:00
wwqgtxx f295ba6da4 chore: update mipstack for api adjustment 2026-08-23 01:27:41 +08:00
wwqgtxx 8e6738fad4 chore: update tailscale to v1.102.3 2026-08-22 00:04:51 +08:00
wwqgtxx 2fe7ecbfe7 chore: change yaml library to go.yaml.in/yaml/v3 2026-08-21 21:54:31 +08:00
wwqgtxx c0e43ebecf fix: tailscale should always use UserDial for upstream TCP DNS server 2026-08-21 08:36:02 +08:00
wwqgtxx dd26c52463 chore: reduce connection memory and actor stack overhead for mipstack 2026-08-20 20:03:17 +08:00
wwqgtxx 127b1392b8 fix: split-DNS UDP queries fail silently in tsnet mode when upstream is a tailnet peer 2026-08-20 15:48:56 +08:00