mirror of
https://github.com/XTLS/Xray-core.git
synced 2026-05-08 14:13:22 +00:00
https://github.com/XTLS/Xray-core/pull/5927#issuecomment-4238197075 https://github.com/XTLS/Xray-core/pull/5929#issuecomment-4238550443
35 lines
997 B
Go
35 lines
997 B
Go
package proxyman
|
|
|
|
import (
|
|
"github.com/xtls/xray-core/common/geodata"
|
|
"github.com/xtls/xray-core/common/session"
|
|
)
|
|
|
|
func BuildSniffingRequest(config *SniffingConfig) (session.SniffingRequest, error) {
|
|
if config == nil {
|
|
return session.SniffingRequest{}, nil
|
|
}
|
|
|
|
request := session.SniffingRequest{
|
|
Enabled: config.Enabled,
|
|
OverrideDestinationForProtocol: config.DestinationOverride,
|
|
MetadataOnly: config.MetadataOnly,
|
|
RouteOnly: config.RouteOnly,
|
|
}
|
|
if len(config.DomainsExcluded) > 0 {
|
|
excludeForDomain, err := geodata.DomainReg.BuildDomainMatcher(config.DomainsExcluded)
|
|
if err != nil {
|
|
return session.SniffingRequest{}, err
|
|
}
|
|
request.ExcludeForDomain = excludeForDomain
|
|
}
|
|
if len(config.IpsExcluded) > 0 {
|
|
excludeForIP, err := geodata.IPReg.BuildIPMatcher(config.IpsExcluded)
|
|
if err != nil {
|
|
return session.SniffingRequest{}, err
|
|
}
|
|
request.ExcludeForIP = excludeForIP
|
|
}
|
|
return request, nil
|
|
}
|