Files
gluetun/internal/wireguard/rule.go
Quentin McGaw 4ba159e483 chore(all): review error wrappings
- remove repetitive `cannot` and `failed` prefixes
- rename `unmarshaling` to `decoding`
2023-04-01 16:57:18 +00:00

30 lines
629 B
Go

package wireguard
import (
"fmt"
"github.com/qdm12/gluetun/internal/netlink"
)
func (w *Wireguard) addRule(rulePriority, firewallMark, family int) (
cleanup func() error, err error) {
rule := netlink.NewRule()
rule.Invert = true
rule.Priority = rulePriority
rule.Mark = firewallMark
rule.Table = firewallMark
rule.Family = family
if err := w.netlink.RuleAdd(rule); err != nil {
return nil, fmt.Errorf("adding rule %s: %w", rule, err)
}
cleanup = func() error {
err := w.netlink.RuleDel(rule)
if err != nil {
return fmt.Errorf("deleting rule %s: %w", rule, err)
}
return nil
}
return cleanup, nil
}