diff --git a/api_rows.go b/api_rows.go index 99ca49a..8a6711e 100644 --- a/api_rows.go +++ b/api_rows.go @@ -34,7 +34,7 @@ var ( // WorkerRow{"rig-alpha", "10.0.0.1", 1, 10, 0, 0, 10000, 1712232000, 1.0, 1.0, 1.0, 1.0, 1.0} type WorkerRow [13]any -// MinerRow{1, "10.0.0.1:49152", 4096, 512, 2, 10000, "WALLET", "********", "rig-alpha", "XMRig/6.21.0"} +// MinerRow{1, "10.0.0.1:49152", 4096, 512, 2, 10000, "WALLET", maskedPassword, "rig-alpha", "XMRig/6.21.0"} type MinerRow [10]any // doc := p.SummaryDocument() diff --git a/state_impl.go b/state_impl.go index e23b981..9abfeef 100644 --- a/state_impl.go +++ b/state_impl.go @@ -15,7 +15,13 @@ import ( "time" ) -const maxStratumLineLength = 16384 +const ( + maxStratumLineLength = 16384 + minerLoginTimeout = 10 * time.Second + minerReadyTimeout = 600 * time.Second + submitDrainTimeout = 5 * time.Second + maskedPassword = "********" +) // MinerSnapshot is a serialisable view of one miner connection. type MinerSnapshot struct { @@ -156,7 +162,7 @@ func (p *Proxy) MinerSnapshots() []MinerSnapshot { State: miner.state, Diff: miner.diff, User: miner.user, - Password: "********", + Password: maskedPassword, RigID: miner.rigID, Agent: miner.agent, }) @@ -287,11 +293,11 @@ func (p *Proxy) Stop() { p.watcher.Stop() } if p.httpServer != nil { - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), submitDrainTimeout) defer cancel() _ = p.httpServer.Shutdown(ctx) } - deadline := time.Now().Add(5 * time.Second) + deadline := time.Now().Add(submitDrainTimeout) for p.submitCount.Load() > 0 && time.Now().Before(deadline) { time.Sleep(10 * time.Millisecond) } @@ -956,9 +962,9 @@ func (m *Miner) readLoop() { func (m *Miner) readTimeout() time.Duration { switch m.state { case MinerStateWaitLogin: - return 10 * time.Second + return minerLoginTimeout case MinerStateWaitReady, MinerStateReady: - return 600 * time.Second + return minerReadyTimeout default: return 0 } @@ -1266,7 +1272,7 @@ func (m *Miner) touchActivity() { } m.lastActivityAt = time.Now().UTC() if m.conn != nil { - _ = m.conn.SetReadDeadline(time.Now().Add(600 * time.Second)) + _ = m.conn.SetReadDeadline(time.Now().Add(minerReadyTimeout)) } }