mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2026-02-26 16:57:08 +00:00
The original upstream does not support it, and there are many places in the current code that do not support it either. Removing it will help maintain consistency in behavior across different parts.
41 lines
774 B
Go
41 lines
774 B
Go
package common
|
|
|
|
import (
|
|
"strings"
|
|
|
|
C "github.com/metacubex/mihomo/constant"
|
|
)
|
|
|
|
type DomainSuffix struct {
|
|
Base
|
|
suffix string
|
|
adapter string
|
|
}
|
|
|
|
func (ds *DomainSuffix) RuleType() C.RuleType {
|
|
return C.DomainSuffix
|
|
}
|
|
|
|
func (ds *DomainSuffix) Match(metadata *C.Metadata, helper C.RuleMatchHelper) (bool, string) {
|
|
domain := metadata.RuleHost()
|
|
return strings.HasSuffix(domain, "."+ds.suffix) || domain == ds.suffix, ds.adapter
|
|
}
|
|
|
|
func (ds *DomainSuffix) Adapter() string {
|
|
return ds.adapter
|
|
}
|
|
|
|
func (ds *DomainSuffix) Payload() string {
|
|
return ds.suffix
|
|
}
|
|
|
|
func NewDomainSuffix(suffix string, adapter string) *DomainSuffix {
|
|
return &DomainSuffix{
|
|
Base: Base{},
|
|
suffix: strings.ToLower(suffix),
|
|
adapter: adapter,
|
|
}
|
|
}
|
|
|
|
var _ C.Rule = (*DomainSuffix)(nil)
|