First Commmit
This commit is contained in:
29
route/rule/rule_item_network_is_constrained.go
Normal file
29
route/rule/rule_item_network_is_constrained.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package rule
|
||||
|
||||
import (
|
||||
"github.com/sagernet/sing-box/adapter"
|
||||
)
|
||||
|
||||
var _ RuleItem = (*NetworkIsConstrainedItem)(nil)
|
||||
|
||||
type NetworkIsConstrainedItem struct {
|
||||
networkManager adapter.NetworkManager
|
||||
}
|
||||
|
||||
func NewNetworkIsConstrainedItem(networkManager adapter.NetworkManager) *NetworkIsConstrainedItem {
|
||||
return &NetworkIsConstrainedItem{
|
||||
networkManager: networkManager,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *NetworkIsConstrainedItem) Match(metadata *adapter.InboundContext) bool {
|
||||
networkInterface := r.networkManager.DefaultNetworkInterface()
|
||||
if networkInterface == nil {
|
||||
return false
|
||||
}
|
||||
return networkInterface.Constrained
|
||||
}
|
||||
|
||||
func (r *NetworkIsConstrainedItem) String() string {
|
||||
return "network_is_expensive=true"
|
||||
}
|
||||
Reference in New Issue
Block a user