mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-11 09:21:49 +01:00
76318f3f06
The no rules matched message is operating system language specific, and can cause errors Now we check if firewall is reachable by the app and then if the rule is returned or not in two different calls: isWindowsFirewallReachable isFirewallRuleActive
29 lines
665 B
Go
29 lines
665 B
Go
//go:build !linux || android
|
|
|
|
package acl
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/netbirdio/netbird/client/firewall/uspfilter"
|
|
)
|
|
|
|
// Create creates a firewall manager instance
|
|
func Create(iface IFaceMapper) (manager *DefaultManager, err error) {
|
|
if iface.IsUserspaceBind() {
|
|
// use userspace packet filtering firewall
|
|
fm, err := uspfilter.Create(iface)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if err := fm.AllowNetbird(); err != nil {
|
|
log.Warnf("failed to allow netbird interface traffic: %v", err)
|
|
}
|
|
return newDefaultManager(fm), nil
|
|
}
|
|
return nil, fmt.Errorf("not implemented for this OS: %s", runtime.GOOS)
|
|
}
|