| 352 | } |
| 353 | |
| 354 | int trigger_register_req(trigger_reg_t *reg) |
| 355 | { |
| 356 | GET_BDB_STATE(bdb_state); |
| 357 | size_t sz; |
| 358 | uint8_t buf[TRIGGER_REG_MAX]; |
| 359 | reg->elect_cookie = ATOMIC_LOAD32(gbl_master_changes); |
| 360 | trigger_reg_t *t = trigger_send(buf, reg, &sz); |
| 361 | if (bdb_amimaster(bdb_state)) { |
| 362 | return trigger_register(t); |
| 363 | } |
| 364 | const char *master = bdb_whoismaster(bdb_state); |
| 365 | if (thedb->handle_sibling == NULL || master == NULL) { |
| 366 | return NET_SEND_FAIL_INTERNAL; // fake internal retry |
| 367 | } |
| 368 | return net_send_message(thedb->handle_sibling, master, NET_TRIGGER_REGISTER, t, sz, 1, 1000); |
| 369 | } |
| 370 | |
| 371 | int trigger_unregister_req(trigger_reg_t *reg) |
| 372 | { |
no test coverage detected