25#ifndef LBM_HEARTBEAT_MAX_LASTSEEN
29#define LBM_HEARTBEAT_MAX_LASTSEEN (10)
32module AP_MODULE_DECLARE_DATA lbmethod_heartbeat_module;
129 const char *ip, *
val;
250 ctx.servers = servers;
272 &lbmethod_heartbeat_module);
290 "lb_heartbeat: Unable to read heartbeats at '%s'",
304 "lb_heartbeat: No server for worker %s", (*worker)->s->name_ex);
368 &lbmethod_heartbeat_module);
378 "Failed to lookup provider 'shm' for '%s'. Maybe you "
379 "need to load mod_slotmem_shm?",
388 "No slotmem from mod_heartmonitor");
391 "Using slotmem from mod_heartmonitor");
394 ctx->path =
"(slotmem)";
401 static const char *
const aszPred[]={
"mod_heartmonitor.c",
NULL };
432 void *dconf,
const char *
path)
437 &lbmethod_heartbeat_module);
452 "Path to read heartbeat data."),
ap hook functions and macros
Apache Multi-Processing Module library.
Memory Slot Extension Storage Module for Apache.
APR Versioning Interface.
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
char * ap_runtime_dir_relative(apr_pool_t *p, const char *fname)
#define ap_get_module_config(v, m)
void ap_hook_post_config(ap_HOOK_post_config_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_DECLARE_MODULE(foo)
request_rec int int apr_table_t const char * path
const char server_rec server_rec ** ps
#define AP_SQ_MS_CREATE_PRE_CONFIG
int ap_state_query(int query_code)
const unsigned char * buf
apr_status_t ap_register_provider(apr_pool_t *pool, const char *provider_group, const char *provider_name, const char *provider_version, const void *provider)
void * ap_lookup_provider(const char *provider_group, const char *provider_name, const char *provider_version)
#define APR_BRIGADE_EMPTY(b)
apr_brigade_flush void * ctx
apr_memcache_server_t * server
#define APR_RETRIEVE_OPTIONAL_FN(name)
#define DEFAULT_HEARTBEAT_STORAGE
#define AP_SLOTMEM_PROVIDER_GROUP
#define AP_SLOTMEM_PROVIDER_VERSION
#define PROXY_WORKER_IS_USABLE(f)
#define STANDARD20_MODULE_STUFF
int ap_unescape_url(char *url)
apr_uint32_t ap_random_pick(apr_uint32_t min, apr_uint32_t max)
const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden)
const char int apr_pool_t * pool
#define APR_HASH_KEY_STRING
apr_vformatter_buff_t * c
apr_interval_time_t apr_int32_t * num
#define apr_pool_create(newpool, parent)
#define apr_pcalloc(p, size)
#define APR_ARRAY_PUSH(ary, type)
#define APR_ARRAY_IDX(ary, i, type)
apr_int32_t apr_int32_t apr_int32_t err
#define apr_time_sec(time)
commun structures for mod_heartmonitor.c and mod_lbmethod_heartbeat.c
static int lb_hb_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
static apr_status_t age(proxy_balancer *balancer, server_rec *s)
static apr_status_t readslot_heartbeats(ctx_servers_t *ctx, apr_pool_t *pool)
static void argstr_to_table(apr_pool_t *p, char *str, apr_table_t *parms)
static proxy_worker * find_best_hb(proxy_balancer *balancer, request_rec *r)
static apr_status_t readfile_heartbeats(const char *path, apr_hash_t *servers, apr_pool_t *pool)
static const ap_slotmem_provider_t * storage
struct ctx_servers ctx_servers_t
static const char * cmd_lb_hb_storage(cmd_parms *cmd, void *dconf, const char *path)
static const proxy_balancer_method heartbeat
static void register_hooks(apr_pool_t *p)
static void * lb_hb_create_config(apr_pool_t *p, server_rec *s)
static apr_status_t reset(proxy_balancer *balancer, server_rec *s)
static ap_slotmem_instance_t * hm_serversmem
static apr_status_t read_heartbeats(const char *path, apr_hash_t *servers, apr_pool_t *pool)
static const command_rec cmds[]
#define LBM_HEARTBEAT_MAX_LASTSEEN
static apr_status_t hm_read(void *mem, void *data, apr_pool_t *pool)
static void * lb_hb_merge_config(apr_pool_t *p, void *basev, void *overridesv)
static int(* ap_proxy_retry_worker_fn)(const char *proxy_function, proxy_worker *worker, server_rec *s)
Proxy Extension Module for Apache.
static int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worker, server_rec *s)
Apache scoreboard library.
apr_status_t(* doall)(ap_slotmem_instance_t *s, ap_slotmem_callback_fn_t *func, void *data, apr_pool_t *pool)
apr_status_t(* attach)(ap_slotmem_instance_t **inst, const char *name, apr_size_t *item_size, unsigned int *item_num, apr_pool_t *pool)
apr_array_header_t * workers
A structure that represents the current request.
A structure to store information for each virtual server.
struct ap_conf_vector_t * module_config
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray