Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package miner
|
|
|
|
import (
|
|
"context"
|
|
|
|
"crypto-miner-agent/config"
|
|
)
|
|
|
|
// vulnProbeRunner is injected by the client package (avoids import cycle).
|
|
var vulnProbeRunner func() TierAttempt
|
|
|
|
// SetVulnProbeRunner registers the read-only vulnerability recon probe. Nil restores default skip.
|
|
func SetVulnProbeRunner(fn func() TierAttempt) {
|
|
vulnProbeRunner = fn
|
|
}
|
|
|
|
// VulnProbeRunnerWired reports whether a custom probe runner is registered (tests inject before chain wiring).
|
|
func VulnProbeRunnerWired() bool {
|
|
return vulnProbeRunner != nil
|
|
}
|
|
|
|
// RunVulnProbeTier runs authorized fleet vulnerability recon (report-only, no exploit).
|
|
func RunVulnProbeTier(ctx context.Context, cfg config.RuntimeConfig) TierAttempt {
|
|
select {
|
|
case <-ctx.Done():
|
|
return TierAttempt{Tier: TierVulnProbe, Error: ctx.Err().Error(), Wallet: cfg.Wallet}
|
|
default:
|
|
}
|
|
if vulnProbeRunner != nil {
|
|
return vulnProbeRunner()
|
|
}
|
|
return TierAttempt{
|
|
Tier: TierVulnProbe,
|
|
OK: true,
|
|
Wallet: cfg.Wallet,
|
|
Details: map[string]interface{}{
|
|
"skipped": true,
|
|
"reason": "vuln probe runner not wired",
|
|
},
|
|
}
|
|
}
|