20 lines
372 B
Go
20 lines
372 B
Go
package adapter
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/sagernet/sing/service"
|
|
)
|
|
|
|
type SecurityPolicy interface {
|
|
CheckFeature(ctx context.Context, feature string) error
|
|
}
|
|
|
|
func CheckSecurityFeature(ctx context.Context, feature string) error {
|
|
policy := service.FromContext[SecurityPolicy](ctx)
|
|
if policy == nil {
|
|
return nil
|
|
}
|
|
return policy.CheckFeature(ctx, feature)
|
|
}
|