gates / gates (push) Successful in 31s
- clear_hold: a fifth verb in the closed operator-action list; lifts a hold of any reason in the RUNNING controller (memory + settings.json together), forgets the update's held flag, drops a waiting put-back from the app-stop marker (copy kept). Refused on a bad name or no hold. No new event type. - --clear-restore-hold asks the running controller over <data dir>/ctl/hold.sock (unix, 0600, peer uid checked, no TCP); edits settings.json only when no controller answers, and says so (in-guest restart). - R-1340: the operator's HELD STOPPED mail is built from the hold record (restore kind, mixed cause, failed put-back step, database replay or not, kept copy) — never the option-C database story by default. - R-1341: the OOM WARN line once per new kill (container, start time, kill count); event unchanged.
15 lines
373 B
Go
15 lines
373 B
Go
//go:build !linux
|
|
|
|
package main
|
|
|
|
import "net"
|
|
|
|
// holdCtlPeerAllowed: the peer check needs SO_PEERCRED (Linux, where the controller runs). Elsewhere the socket's
|
|
// 0600 mode in a 0700 directory is the only lock.
|
|
func holdCtlPeerAllowed(conn net.Conn) (bool, string) {
|
|
if _, ok := conn.(*net.UnixConn); !ok {
|
|
return false, "not a unix-socket peer"
|
|
}
|
|
return true, ""
|
|
}
|