chore: adjust sniffer constant
This commit is contained in:
parent
60dd76b7c4
commit
82dd98070a
3 changed files with 19 additions and 14 deletions
|
@ -2,6 +2,7 @@ package sniffer
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/Dreamacro/clash/constant/sniffer"
|
||||
"net"
|
||||
"net/netip"
|
||||
"strconv"
|
||||
|
@ -28,7 +29,7 @@ type (
|
|||
SnifferDispatcher struct {
|
||||
enable bool
|
||||
|
||||
sniffers []C.Sniffer
|
||||
sniffers []sniffer.Sniffer
|
||||
|
||||
foreDomain *trie.DomainTrie[bool]
|
||||
skipSNI *trie.DomainTrie[bool]
|
||||
|
@ -136,7 +137,7 @@ func NewCloseSnifferDispatcher() (*SnifferDispatcher, error) {
|
|||
return &dispatcher, nil
|
||||
}
|
||||
|
||||
func NewSnifferDispatcher(needSniffer []C.SnifferType, forceDomain *trie.DomainTrie[bool],
|
||||
func NewSnifferDispatcher(needSniffer []sniffer.Type, forceDomain *trie.DomainTrie[bool],
|
||||
skipSNI *trie.DomainTrie[bool], ports *[]utils.Range[uint16]) (*SnifferDispatcher, error) {
|
||||
dispatcher := SnifferDispatcher{
|
||||
enable: true,
|
||||
|
@ -158,9 +159,9 @@ func NewSnifferDispatcher(needSniffer []C.SnifferType, forceDomain *trie.DomainT
|
|||
return &dispatcher, nil
|
||||
}
|
||||
|
||||
func NewSniffer(name C.SnifferType) (C.Sniffer, error) {
|
||||
func NewSniffer(name sniffer.Type) (sniffer.Sniffer, error) {
|
||||
switch name {
|
||||
case C.TLS:
|
||||
case sniffer.TLS:
|
||||
return &TLSSniffer{}, nil
|
||||
default:
|
||||
return nil, ErrorUnsupportedSniffer
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"container/list"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/Dreamacro/clash/constant/sniffer"
|
||||
"github.com/Dreamacro/clash/listener/tun/ipstack/commons"
|
||||
"net"
|
||||
"net/netip"
|
||||
|
@ -30,6 +31,7 @@ import (
|
|||
"github.com/Dreamacro/clash/component/trie"
|
||||
C "github.com/Dreamacro/clash/constant"
|
||||
providerTypes "github.com/Dreamacro/clash/constant/provider"
|
||||
snifferTypes "github.com/Dreamacro/clash/constant/sniffer"
|
||||
"github.com/Dreamacro/clash/dns"
|
||||
"github.com/Dreamacro/clash/log"
|
||||
T "github.com/Dreamacro/clash/tunnel"
|
||||
|
@ -128,7 +130,7 @@ type IPTables struct {
|
|||
type Sniffer struct {
|
||||
Enable bool
|
||||
Force bool
|
||||
Sniffers []C.SnifferType
|
||||
Sniffers []sniffer.Type
|
||||
Reverses *trie.DomainTrie[bool]
|
||||
ForceDomain *trie.DomainTrie[bool]
|
||||
SkipSNI *trie.DomainTrie[bool]
|
||||
|
@ -954,11 +956,11 @@ func parseSniffer(snifferRaw SnifferRaw) (*Sniffer, error) {
|
|||
|
||||
sniffer.Ports = &ports
|
||||
|
||||
loadSniffer := make(map[C.SnifferType]struct{})
|
||||
loadSniffer := make(map[snifferTypes.Type]struct{})
|
||||
|
||||
for _, snifferName := range snifferRaw.Sniffing {
|
||||
find := false
|
||||
for _, snifferType := range C.SnifferList {
|
||||
for _, snifferType := range snifferTypes.List {
|
||||
if snifferType.String() == strings.ToUpper(snifferName) {
|
||||
find = true
|
||||
loadSniffer[snifferType] = struct{}{}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
package constant
|
||||
package sniffer
|
||||
|
||||
import "github.com/Dreamacro/clash/constant"
|
||||
|
||||
type Sniffer interface {
|
||||
SupportNetwork() NetWork
|
||||
SupportNetwork() constant.NetWork
|
||||
SniffTCP(bytes []byte) (string, error)
|
||||
Protocol() string
|
||||
}
|
||||
|
||||
const (
|
||||
TLS SnifferType = iota
|
||||
HTTP SnifferType
|
||||
TLS Type = iota
|
||||
HTTP
|
||||
)
|
||||
|
||||
var (
|
||||
SnifferList = []SnifferType{TLS, HTTP}
|
||||
List = []Type{TLS, HTTP}
|
||||
)
|
||||
|
||||
type SnifferType int
|
||||
type Type int
|
||||
|
||||
func (rt SnifferType) String() string {
|
||||
func (rt Type) String() string {
|
||||
switch rt {
|
||||
case TLS:
|
||||
return "TLS"
|
Loading…
Reference in a new issue