[skip ci][内容]

1.修复部分空指针问题
2.修改go.mod
This commit is contained in:
MetaCubeX
2022-03-19 22:27:22 +08:00
parent e67f94b87a
commit 2d1c031ce0
8 changed files with 32 additions and 19 deletions

View File

@ -13,20 +13,22 @@ type NetworkType struct {
}
func NewNetworkType(network, adapter string) (*NetworkType, error) {
ntType := new(NetworkType)
ntType.adapter = adapter
var netType C.NetWork
switch strings.ToUpper(network) {
case "TCP":
ntType.network = C.TCP
netType = C.TCP
break
case "UDP":
ntType.network = C.UDP
netType = C.UDP
break
default:
return nil, fmt.Errorf("unsupported network type, only TCP/UDP")
}
return ntType, nil
return &NetworkType{
Base: &Base{},
network: netType,
adapter: adapter,
}, nil
}
func (n *NetworkType) RuleType() C.RuleType {

View File

@ -6,7 +6,7 @@ import (
)
type AND struct {
common.Base
*common.Base
rules []C.Rule
payload string
adapter string
@ -18,7 +18,7 @@ func (A *AND) ShouldFindProcess() bool {
}
func NewAND(payload string, adapter string) (*AND, error) {
and := &AND{payload: payload, adapter: adapter}
and := &AND{Base: &common.Base{}, payload: payload, adapter: adapter}
rules, err := parseRuleByPayload(payload)
if err != nil {
return nil, err

View File

@ -111,7 +111,19 @@ func parseRule(tp, payload string, params []string) (C.Rule, error) {
parseErr = fmt.Errorf("unsupported rule type %s", tp)
}
return parsed, parseErr
if parseErr != nil {
return nil, parseErr
}
ruleExtra := &C.RuleExtra{
Network: RC.FindNetwork(params),
SourceIPs: RC.FindSourceIPs(params),
ProcessNames: RC.FindProcessName(params),
}
parsed.SetRuleExtra(ruleExtra)
return parsed, nil
}
type Range struct {

View File

@ -7,7 +7,7 @@ import (
)
type NOT struct {
common.Base
*common.Base
rule C.Rule
payload string
adapter string
@ -18,7 +18,7 @@ func (not *NOT) ShouldFindProcess() bool {
}
func NewNOT(payload string, adapter string) (*NOT, error) {
not := &NOT{payload: payload, adapter: adapter}
not := &NOT{Base: &common.Base{}, payload: payload, adapter: adapter}
rule, err := parseRuleByPayload(payload)
if err != nil {
return nil, err

View File

@ -6,7 +6,7 @@ import (
)
type OR struct {
common.Base
*common.Base
rules []C.Rule
payload string
adapter string
@ -44,7 +44,7 @@ func (or *OR) ShouldResolveIP() bool {
}
func NewOR(payload string, adapter string) (*OR, error) {
or := &OR{payload: payload, adapter: adapter}
or := &OR{Base: &common.Base{}, payload: payload, adapter: adapter}
rules, err := parseRuleByPayload(payload)
if err != nil {
return nil, err

View File

@ -8,7 +8,7 @@ import (
)
type RuleSet struct {
common.Base
*common.Base
ruleProviderName string
adapter string
ruleProvider P.RuleProvider
@ -52,6 +52,7 @@ func NewRuleSet(ruleProviderName string, adapter string) (*RuleSet, error) {
return nil, fmt.Errorf("rule set %s not found", ruleProviderName)
}
return &RuleSet{
Base: &common.Base{},
ruleProviderName: ruleProviderName,
adapter: adapter,
ruleProvider: rp,