26#ifndef HEARTBEAT_INTERVAL
27#define HEARTBEAT_INTERVAL (1)
30module AP_MODULE_DECLARE_DATA heartbeat_module;
43#define MSG_VERSION (1)
57 for (
i = 0;
i <
ctx->server_limit;
i++) {
61 for (j = 0; j <
ctx->thread_limit; j++) {
89 NULL,
APLOGNO(02097)
"Heartbeat: apr_socket_create failed");
96 NULL,
APLOGNO(02098)
"Heartbeat: apr_mcast_loopback failed");
103 NULL,
APLOGNO(02099)
"Heartbeat: apr_socket_sendto failed");
141 int parent,
int singleton)
167 void *dconf,
const char *
addr)
187 return "HeartbeatAddress: May only be specified once.";
193 return "HeartbeatAddress: Unable to parse address.";
197 return "HeartbeatAddress: No host provided in address";
201 return "HeartbeatAddress: No port provided in address";
208 return "HeartbeatAddress: apr_sockaddr_info_get failed.";
216 "Address to send heartbeat requests"),
Apache Multi-Processing Module library.
const char apr_size_t len
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
#define AP_DECLARE_MODULE(foo)
const char server_rec server_rec ** ps
const unsigned char * buf
const char apr_port_t port
apr_brigade_flush void * ctx
apr_pool_t apr_dbd_t apr_dbd_results_t ** res
void ap_hook_watchdog_exit(ap_HOOK_watchdog_exit_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_watchdog_step(ap_HOOK_watchdog_step_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_watchdog_need(ap_HOOK_watchdog_need_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_WATCHDOG_SINGLETON
void ap_hook_watchdog_init(ap_HOOK_watchdog_init_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define STANDARD20_MODULE_STUFF
const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden)
const char int apr_pool_t * pool
#define apr_pcalloc(p, size)
apr_int32_t apr_int32_t apr_int32_t err
apr_status_t ap_mpm_query(int query_code, int *result)
#define AP_MPMQ_HARD_LIMIT_THREADS
#define AP_MPMQ_GENERATION
#define AP_MPMQ_HARD_LIMIT_DAEMONS
static void * hb_create_config(apr_pool_t *p, server_rec *s)
static const command_rec hb_cmds[]
static int hb_watchdog_init(server_rec *s, const char *name, apr_pool_t *pool)
static int hb_monitor(hb_ctx_t *ctx, apr_pool_t *p)
static void hb_register_hooks(apr_pool_t *p)
static const char * cmd_hb_address(cmd_parms *cmd, void *dconf, const char *addr)
static int hb_watchdog_step(server_rec *s, const char *name, apr_pool_t *pool)
static int hb_watchdog_exit(server_rec *s, const char *name, apr_pool_t *pool)
static const char * msg_format
static int hb_watchdog_need(server_rec *s, const char *name, int parent, int singleton)
static const proxy_balancer_method heartbeat
Watchdog module for Apache.
Apache scoreboard library.
scoreboard * ap_scoreboard_image
process_score * ap_get_scoreboard_process(int x)
apr_sockaddr_t * mcast_addr
A structure to store information for each virtual server.
apr_status_t apr_socket_sendto(apr_socket_t *sock, apr_sockaddr_t *where, apr_int32_t flags, const char *buf, apr_size_t *len)
apr_status_t apr_socket_close(apr_socket_t *thesocket)
apr_status_t apr_socket_create(apr_socket_t **new, int ofamily, int type, int protocol, apr_pool_t *cont)