diff --git a/checker/definition.go b/checker/definition.go index e57c596..06094aa 100644 --- a/checker/definition.go +++ b/checker/definition.go @@ -9,7 +9,7 @@ import ( // Version is overridden at link time by the build, or by the plugin loader. var Version = "built-in" -func Definition() *sdk.CheckerDefinition { +func (p *autoconfigProvider) Definition() *sdk.CheckerDefinition { return &sdk.CheckerDefinition{ ID: "email-autoconfig", Name: "Email Autoconfiguration", diff --git a/checker/provider.go b/checker/provider.go index a005415..93e55a1 100644 --- a/checker/provider.go +++ b/checker/provider.go @@ -13,7 +13,3 @@ type autoconfigProvider struct{} func (p *autoconfigProvider) Key() sdk.ObservationKey { return ObservationKeyAutoconfig } - -func (p *autoconfigProvider) Definition() *sdk.CheckerDefinition { - return Definition() -} diff --git a/checker/rule.go b/checker/rule.go index 0a1b102..b329901 100644 --- a/checker/rule.go +++ b/checker/rule.go @@ -108,7 +108,7 @@ func (r *preferredEndpointRule) Evaluate(ctx context.Context, obs sdk.Observatio // When nothing works, let the presence rule drive the verdict. if !anyOK { return single(sdk.CheckState{ - Status: sdk.StatusInfo, + Status: sdk.StatusUnknown, Message: "No autoconfig responded; primary endpoint not evaluated.", Code: "autoconfig_preferred_skip", }) @@ -192,7 +192,7 @@ func (r *tlsRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, opts if len(out) == 0 { return single(sdk.CheckState{ - Status: sdk.StatusInfo, + Status: sdk.StatusUnknown, Message: "No autoconfig probe reached an endpoint; TLS not assessed.", Code: "autoconfig_tls_skip", }) @@ -218,7 +218,7 @@ func (r *encryptionRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter } if d.ClientConfig == nil { return single(sdk.CheckState{ - Status: sdk.StatusInfo, + Status: sdk.StatusUnknown, Message: "No clientConfig parsed; encryption check skipped.", Code: "autoconfig_encryption_skip", }) @@ -257,7 +257,7 @@ func (r *encryptionRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter } if len(out) == 0 { return single(sdk.CheckState{ - Status: sdk.StatusInfo, + Status: sdk.StatusUnknown, Message: "clientConfig declares no server to evaluate.", Code: "autoconfig_encryption_skip", }) @@ -283,7 +283,7 @@ func (r *consistencyRule) Evaluate(ctx context.Context, obs sdk.ObservationGette } if d.ClientConfig == nil { return single(sdk.CheckState{ - Status: sdk.StatusInfo, + Status: sdk.StatusUnknown, Message: "No clientConfig to compare.", Code: "autoconfig_consistency_skip", }) diff --git a/plugin/plugin.go b/plugin/plugin.go index 943036f..dc7f370 100644 --- a/plugin/plugin.go +++ b/plugin/plugin.go @@ -13,5 +13,6 @@ var Version = "custom-build" func NewCheckerPlugin() (*sdk.CheckerDefinition, sdk.ObservationProvider, error) { autoconfig.Version = Version - return autoconfig.Definition(), autoconfig.Provider(), nil + prvd := autoconfig.Provider() + return prvd.(sdk.CheckerDefinitionProvider).Definition(), prvd, nil }