- errnox.h: add E_XCE_NOT_READY and E_XCE_STANDBY error codes with extern int XCE_ERR_NOT_READY / XCE_ERR_STANDBY runtime variables - ha.h: declare ha_dispatch_gate(ha_state_t *, int opcode) - ha.c: define XCE_ERR_* variables; initialize heartbeat_seen semaphore and primary_ctrl_fd = -1 in ha_init(); sem_destroy in ha_fini(); implement ha_dispatch_gate() with allowlist for CTRL_INIT/CTRL_ELECTING (only OP_requestVote and OP_probeConfigTag pass) and CTRL_STANDBY (replication, election, and housekeeping ops pass; primary-only ops return -XCE_ERR_STANDBY) - cluster.c: wire ha_dispatch_gate() in myreq_handler() before opcode switch; gate failure sends error reply and returns early All 393 unit tests pass. Satisfies requirements 1.3 and 1.4. |
||
|---|---|---|
| .. | ||
| settings | ||
| specs | ||