static void rate_limit_status_cb(struct status_reply *sr, void *rl_) { struct rate_limiter *rl = rl_; status_reply_put(sr, "normal=%llu", rl->n_normal); status_reply_put(sr, "limited=%llu", rl->n_limited); status_reply_put(sr, "queue-dropped=%llu", rl->n_queue_dropped); status_reply_put(sr, "tx-dropped=%llu", rl->n_tx_dropped); }
static void switch_status_cb(struct status_reply *sr, void *ss_) { struct switch_status *ss = ss_; time_t now = time_now(); status_reply_put(sr, "now=%ld", (long int) now); status_reply_put(sr, "uptime=%ld", (long int) (now - ss->booted)); status_reply_put(sr, "pid=%ld", (long int) getpid()); }
static void fail_open_status_cb(struct status_reply *sr, void *fail_open_) { struct fail_open_data *fail_open = fail_open_; const struct settings *s = fail_open->s; int trigger_duration = s->probe_interval * 3; int cur_duration = rconn_failure_duration(fail_open->remote_rconn); status_reply_put(sr, "trigger-duration=%d", trigger_duration); status_reply_put(sr, "current-duration=%d", cur_duration); status_reply_put(sr, "triggered=%s", cur_duration >= trigger_duration ? "true" : "false"); status_reply_put(sr, "max-idle=%d", s->max_idle); }
static void failover_status_cb(struct status_reply *status_reply, void *context_) { struct failover_context *context = context_; int i; status_reply_put(status_reply, "num-controllers=%d", context->settings->num_controllers); for (i = 0; i < MAX_CONTROLLERS; ++i) { if (context->settings->controller_names[i] == NULL) continue; status_reply_put(status_reply, "controller#%d=%s", i, context->settings->controller_names[i]); } }
static void config_status_cb(struct status_reply *sr, void *s_) { const struct settings *s = s_; size_t i; for (i = 0; i < s->n_listeners; i++) { status_reply_put(sr, "management%zu=%s", i, s->listener_names[i]); } if (s->probe_interval) { status_reply_put(sr, "probe-interval=%d", s->probe_interval); } if (s->max_backoff) { status_reply_put(sr, "max-backoff=%d", s->max_backoff); } }
static void discovery_status_cb(struct status_reply *sr, void *d_) { struct discovery *d = d_; status_reply_put(sr, "accept-remote=%s", d->s->accept_controller_re); status_reply_put(sr, "n-changes=%d", d->n_changes); if (d->dhcp) { status_reply_put(sr, "state=%s", dhclient_get_state(d->dhcp)); status_reply_put(sr, "state-elapsed=%u", dhclient_get_state_elapsed(d->dhcp)); if (dhclient_is_bound(d->dhcp)) { uint32_t ip = dhclient_get_ip(d->dhcp); uint32_t netmask = dhclient_get_netmask(d->dhcp); uint32_t router = dhclient_get_router(d->dhcp); const struct dhcp_msg *cfg = dhclient_get_config(d->dhcp); uint32_t dns_server; char *domain_name; int i; status_reply_put(sr, "ip="IP_FMT, IP_ARGS(&ip)); status_reply_put(sr, "netmask="IP_FMT, IP_ARGS(&netmask)); if (router) { status_reply_put(sr, "router="IP_FMT, IP_ARGS(&router)); } for (i = 0; dhcp_msg_get_ip(cfg, DHCP_CODE_DNS_SERVER, i, &dns_server); i++) { status_reply_put(sr, "dns%d="IP_FMT, i, IP_ARGS(&dns_server)); } domain_name = dhcp_msg_get_string(cfg, DHCP_CODE_DOMAIN_NAME); if (domain_name) { status_reply_put(sr, "domain=%s", domain_name); free(domain_name); } status_reply_put(sr, "lease-remaining=%u", dhclient_get_lease_remaining(d->dhcp)); } } }
void rconn_status_cb(struct status_reply *sr, void *rconn_) { struct rconn *rconn = rconn_; time_t now = time_now(); status_reply_put(sr, "name=%s", rconn_get_name(rconn)); status_reply_put(sr, "state=%s", rconn_get_state(rconn)); status_reply_put(sr, "backoff=%d", rconn_get_backoff(rconn)); status_reply_put(sr, "is-connected=%s", rconn_is_connected(rconn) ? "true" : "false"); status_reply_put(sr, "sent-msgs=%u", rconn_packets_sent(rconn)); status_reply_put(sr, "received-msgs=%u", rconn_packets_received(rconn)); status_reply_put(sr, "attempted-connections=%u", rconn_get_attempted_connections(rconn)); status_reply_put(sr, "successful-connections=%u", rconn_get_successful_connections(rconn)); status_reply_put(sr, "last-connection=%ld", (long int) (now - rconn_get_last_connection(rconn))); status_reply_put(sr, "time-connected=%lu", rconn_get_total_time_connected(rconn)); status_reply_put(sr, "state-elapsed=%u", rconn_get_state_elapsed(rconn)); }