mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-07 04:20:12 +02:00
38 lines
931 B
Go
38 lines
931 B
Go
package netlink
|
|
|
|
import "github.com/vishvananda/netlink"
|
|
|
|
func (n *NetLink) RuleList(family int) (rules []Rule, err error) {
|
|
switch family {
|
|
case FamilyAll:
|
|
n.debugLogger.Debug("ip -4 rule list")
|
|
n.debugLogger.Debug("ip -6 rule list")
|
|
case FamilyV4:
|
|
n.debugLogger.Debug("ip -4 rule list")
|
|
case FamilyV6:
|
|
n.debugLogger.Debug("ip -6 rule list")
|
|
}
|
|
netlinkRules, err := netlink.RuleList(family)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
rules = make([]Rule, len(netlinkRules))
|
|
for i := range netlinkRules {
|
|
rules[i] = netlinkRuleToRule(netlinkRules[i])
|
|
}
|
|
return rules, nil
|
|
}
|
|
|
|
func (n *NetLink) RuleAdd(rule Rule) error {
|
|
n.debugLogger.Debug(ruleDbgMsg(true, rule))
|
|
netlinkRule := ruleToNetlinkRule(rule)
|
|
return netlink.RuleAdd(&netlinkRule)
|
|
}
|
|
|
|
func (n *NetLink) RuleDel(rule Rule) error {
|
|
n.debugLogger.Debug(ruleDbgMsg(false, rule))
|
|
netlinkRule := ruleToNetlinkRule(rule)
|
|
return netlink.RuleDel(&netlinkRule)
|
|
}
|