Commit Graph
67 Commits
Author SHA1 Message Date
Huang-Huang Bao 5d3915c751 Fix: build routing condition for geo domain 2022-06-25 19:42:40 +01:00
Shelikhoo 3ef7feaeaf update version: auto replacement to v5 path 2022-01-02 15:16:23 +00:00
Loyalsoldier dce8764fd7 Lint: fix lint (#1427)
* Lint: replace golint with revive
* Lint: fix lint
2021-11-27 17:16:41 +08:00
Ye Zhihao d4da365c5f Refactor: strmatcher module (#1333)
* Reorganize strmatcher's package structure

* Rename types in strmatcher package according to their file names

* Stablize strmatcher's Matcher interface

* Implement []matcherEntry as SimpleMatcherGroup

* Implement mph algorithm extracted from MphIndexMatcher as MphMatcherGroup

* Implement AddMatcher/AddFullMatcher/AddDomainMatcher/AddSubstrMatcher for each MatcherGroup

* Stablize strmatcher's MatcherGroup interface

* Stablize strmatcher's IndexMatcher interface

* Update strmatcher's benchmark

* Compatibility fix for app/router's DomainMatcher condition

* Fix code quality issue

* Fix basic matcher issues

* Update priority specification for Substr matcher
2021-10-31 18:01:13 +08:00
世界 a66bb28aee Reformat code 2021-10-28 18:34:19 +08:00
Shelikhoo 0f7345ba76 adjustment: ♻️ refactor geoip match logic (#1157)
cherry-pick f1902165c7
2021-09-27 21:50:18 +01:00
Loyalsoldier a86415cb43 ♻️ refactor geoip match logic (#1157)
cherry-pick f1902165c7
2021-09-27 21:43:05 +01:00
Shelikhoo 30648c3e07 added custom balancer settings processing logic 2021-09-07 11:42:45 +01:00
Shelikhoo 68f28b1913 refactor common router structure into separate package 2021-09-07 09:13:58 +01:00
Shelikhoo ba2dd5995d replace TypedMessage with anypb.Any 2021-09-04 11:13:28 +01:00
Shelikhoo 8adb3dc5a6 fix strategy selector 2021-09-04 11:12:36 +01:00
Shelikhoo fc8d23bcc5 added apply least ping strategy 2021-09-04 11:12:35 +01:00
Shelikhoo ea5bb04acf incorporate changes in router implementation 2021-09-04 11:12:32 +01:00
Jebbs fa0cf6db26 v5: Health Check & LeastLoad Strategy (rebased from 2c5a714903)
Some changes will be necessary to integrate it into V2Ray
2021-09-04 11:11:45 +01:00
Jebbs b05a469488 v5: Remove v2ctl & wv2ray (rebased from 7c1ab06206) 2021-09-04 11:09:55 +01:00
database64128 c78ee5aac7 🏡 Housekeeping: Update to Go 1.17 (#1215)
* ⬆ Update to Go 1.17

* 🏗 Update workflows and add windows-arm64

* 💾 Update generated files

* 📛 Update not-so-friendly filenames
2021-08-21 13:20:40 +08:00
Shelikhoo d7c9a98d76 apply coding style 2021-04-13 16:06:48 +01:00
Shelikhoo 459a914ab7 apply coding style 2021-04-08 23:18:23 +01:00
loyalsoldier cb4dd644fc Chore: fix MphDomainMatcher log 2021-03-16 19:21:14 +08:00
kslr 68f04295f9 Route: mph add alias hybrid 2021-03-15 15:27:40 +08:00
DarthVader ac1e5cd925 Add minimal perfect hash domain matcher (#743)
* rename to HybridDomainMatcher & convert domain to lowercase

* refactor code & add open hashing for rolling hash map

* fix lint errors

* update app/dns/dns.go

* convert domain to lowercase in `strmatcher.go`

* keep the original matcher behavior

* add mph domain matcher & conver domain names to loweercase when matching

* fix lint errors

* fix lint errors
2021-03-15 15:21:38 +08:00
Loyalsoldier e46204f828 Chore: fix lint according to golangci-lint errors (#781)
* Chore: fix lint according to golangci-lint errors
* Chore: regenerate pb.go files
2021-03-14 07:44:47 +08:00
Shelikhoo e24ddf588e Create a name for linear domain matcher 2021-03-07 13:39:36 +00:00
Shelikhoo 0043dd6685 rename config for NewACAutomatonDomainMatcher to hybrid 2021-03-05 18:36:36 +00:00
Shelikhoo e65f96fa6b output debug message when ACAutomatonDomainMatcher is enabled. 2021-03-03 22:56:12 +00:00
Shelikhoo 9d653dc708 Apply domain selector choice 2021-03-03 22:27:23 +00:00
Loyalsoldier f94dd11a8c Chore: change module name (#677) 2021-02-17 04:31:50 +08:00
DarthVader de618121ad Refactor: A faster DomainMatcher implementation (#587)
* a faster DomainMatcher implementation

* rename benchmark name

* fix linting errors
2021-01-20 15:53:07 +08:00
Vigilans f9d37b724c Extract session information during routing as routing context 2020-09-04 11:32:19 +08:00
Vigilans 40c0bcc3ab Support source port matching in routing config 2020-08-09 16:53:45 +08:00
Darien Raymond 02d8845093 add scripting support for attributes matching 2019-02-28 14:04:43 +01:00
Darien Raymond 0d31a68694 extract all session context before checking conditions 2019-02-28 09:28:55 +01:00
Darien Raymond 95583b5031 support range list in routing rule 2019-02-24 23:43:00 +01:00
Darien Raymond 1ab94fed79 optimize v2ctl size 2019-02-01 20:08:21 +01:00
Darien Raymond 769f770cf7 migrate NetworkList to []Network 2018-11-20 16:58:26 +01:00
Darien Raymond 7b80322b60 fix function signature 2018-11-20 16:12:14 +01:00
Darien Raymond 2cc92920fa test case for balancer 2018-11-07 21:25:43 +01:00
Darien Raymond 73d3be424b prototype for balancing rules 2018-11-07 21:08:20 +01:00
Darien Raymond 41956e92a5 migrate to the new geoip matcher 2018-11-01 21:43:16 +01:00
Darien Raymond 15cd999ed3 comments 2018-11-01 10:39:03 +01:00
Darien Raymond c73e899f54 prototype for high performance geoip matcher 2018-11-01 09:10:41 +01:00
Darien Raymond ee74256aac sort.Interface for CIDR list 2018-11-01 08:44:11 +01:00
Iskander Sharipov 4dfe45ec19 app/router: rewrite if-else chain to switch
From effective Go: https://golang.org/doc/effective_go.html#switch

> It's therefore possible—and idiomatic—to write an if-else-if-else chain as a switch.
2018-10-01 12:07:19 +03:00
Darien Raymond fca324a399 fix build break 2018-08-19 22:28:02 +02:00
Darien Raymond edcf564dd7 improve performance of domain matcher 2018-08-19 21:04:15 +02:00
Darien Raymond ecd45ffb65 propagate error when adding domain condition 2018-07-17 17:53:24 +02:00
Darien Raymond c0e37ef34a prototype for new sniffing mechanism 2018-07-16 13:47:00 +02:00
Darien Raymond 758723516e reorder condition list to short circuit IP resolution if possible.
Fix #1021
2018-04-06 15:56:53 +02:00
Darien Raymond 2bf5a008f0 fix error levels 2017-12-27 22:25:12 +01:00
Darien Raymond 6b77e14bf6 cachable domain matcher, step 1 2017-11-06 21:12:28 +01:00