22#define APR_WANT_STRFUNC
25#if APR_HAVE_SYS_TYPES_H
41#undef APLOG_MODULE_INDEX
42#define APLOG_MODULE_INDEX AP_CORE_MODULE_INDEX
85#if APR_HAS_SHARED_MEMORY
125#if APR_HAS_SHARED_MEMORY
133#define SIZE_OF_scoreboard APR_ALIGN_DEFAULT(sizeof(scoreboard))
134#define SIZE_OF_global_score APR_ALIGN_DEFAULT(sizeof(global_score))
135#define SIZE_OF_process_score APR_ALIGN_DEFAULT(sizeof(process_score))
136#define SIZE_OF_worker_score APR_ALIGN_DEFAULT(sizeof(worker_score))
186#if APR_HAS_SHARED_MEMORY
196 "unable to create or access scoreboard \"%s\" "
197 "(name-based shared memory failure)",
fname);
210#if APR_HAS_SHARED_MEMORY
221 "Fatal error: unable to create global pool "
222 "for use by the scoreboard");
232 "Fatal error: Invalid Scoreboard path %s",
243 "Unable to create or access scoreboard "
244 "(anonymous shared memory failure)");
266#if APR_HAS_SHARED_MEMORY
272 "Fatal error: shared scoreboard too small for child!");
307#if APR_HAS_SHARED_MEMORY
324#if APR_HAS_SHARED_MEMORY
368 unsigned short conn_count)
402 ws->my_access_count++;
412 int max_daemons_limit = 0;
416 for (
i = 0;
i < max_daemons_limit; ++
i) {
426 int child_num,
int thread_num)
433 int child_num,
int thread_num)
507 ws->my_access_count = 0L;
508 ws->my_bytes_served = 0L;
510 ws->times.tms_utime = 0;
511 ws->times.tms_stime = 0;
512 ws->times.tms_cutime = 0;
513 ws->times.tms_cstime = 0;
556 s->server_hostname,
c->local_addr->port);
651 ws->duration +=
ws->stop_time -
ws->start_time;
695 dest->client[
sizeof(
dest->client) - 1] =
'\0';
696 dest->client64[
sizeof(
dest->client64) - 1] =
'\0';
697 dest->request[
sizeof(
dest->request) - 1] =
'\0';
698 dest->vhost[
sizeof(
dest->vhost) - 1] =
'\0';
699 dest->protocol[
sizeof(
dest->protocol) - 1] =
'\0';
Symbol export macros and hook functions.
#define AP_IMPLEMENT_HOOK_RUN_ALL(ret, name, args_decl, args_use, ok, decline)
Apache Multi-Processing Module library.
APR general purpose library routines.
static apr_pool_t * global_pool
APR Portability Routines.
APR Shared Memory Routines.
apr_size_t const unsigned char unsigned int unsigned int d
APR Standard Headers Support.
static apr_pool_t * pconf
char * ap_server_root_relative(apr_pool_t *p, const char *fname)
const char server_rec server_rec ** ps
server_rec * ap_server_conf
const char * ap_get_protocol(conn_rec *c)
const char apr_ssize_t slen
#define APR_HOOK_LINK(name)
#define APR_HOOK_STRUCT(members)
#define APR_RETRIEVE_OPTIONAL_FN(name)
#define APR_OPTIONAL_FN_TYPE(name)
#define APR_URI_UNP_OMITPASSWORD
#define HTTP_INTERNAL_SERVER_ERROR
void * ap_calloc(size_t nelem, size_t size) __attribute__((malloc))
const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden)
const char int apr_pool_t * pool
apr_vformatter_buff_t * c
#define apr_pool_create(newpool, parent)
const void apr_size_t bytes
apr_int32_t apr_int32_t apr_int32_t err
const char * ap_get_remote_host(conn_rec *conn, void *dir_config, int type, int *str_is_ip)
const char * ap_get_useragent_host(request_rec *req, int type, int *str_is_ip)
apr_status_t ap_mpm_query(int query_code, int *result)
#define AP_MPMQ_MAX_DAEMON_USED
#define AP_MPMQ_HARD_LIMIT_THREADS
#define AP_MPMQ_GENERATION
#define AP_MPMQ_HARD_LIMIT_DAEMONS
static apr_off_t ap_logio_get_last_bytes(conn_rec *c)
void ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p, int child_num, int thread_num)
#define SIZE_OF_process_score
void ap_set_conn_count(ap_sb_handle_t *sb, request_rec *r, unsigned short conn_count)
int ap_mod_status_reqtail
#define SIZE_OF_global_score
static apr_status_t open_scoreboard(apr_pool_t *pconf)
void ap_update_sb_handle(ap_sb_handle_t *sbh, int child_num, int thread_num)
static apr_status_t ap_cleanup_shared_mem(void *d)
worker_score * ap_get_scoreboard_worker_from_indexes(int x, int y)
static int update_child_status_internal(int child_num, int thread_num, int status, conn_rec *c, server_rec *s, request_rec *r, const char *descr)
apr_status_t ap_cleanup_scoreboard(void *d)
void ap_time_process_request(ap_sb_handle_t *sbh, int status)
scoreboard * ap_scoreboard_image
int ap_update_child_status_from_server(ap_sb_handle_t *sbh, int status, conn_rec *c, server_rec *s)
const char * ap_scoreboard_fname
void ap_init_scoreboard(void *shared_score)
void ap_increment_counts(ap_sb_handle_t *sb, request_rec *r)
void ap_copy_scoreboard_worker(worker_score *dest, int child_num, int thread_num)
int ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e sb_type)
int ap_exists_scoreboard_image(void)
apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int detached)
int ap_update_child_status(ap_sb_handle_t *sbh, int status, request_rec *r)
#define SIZE_OF_worker_score
static apr_OFN_ap_logio_get_last_bytes_t * pfn_ap_logio_get_last_bytes
static apr_size_t scoreboard_size
static ap_scoreboard_e scoreboard_type
int ap_update_global_status(void)
int ap_update_child_status_descr(ap_sb_handle_t *sbh, int status, const char *descr)
#define SIZE_OF_scoreboard
int ap_calc_scoreboard_size(void)
int ap_update_child_status_from_indexes(int child_num, int thread_num, int status, request_rec *r)
const char * ap_set_scoreboard(cmd_parms *cmd, void *dummy, const char *arg)
int ap_find_child_by_pid(apr_proc_t *pid)
int ap_update_child_status_from_conn(ap_sb_handle_t *sbh, int status, conn_rec *c)
const char * ap_set_extended_status(cmd_parms *cmd, void *dummy, int arg)
worker_score * ap_get_scoreboard_worker(ap_sb_handle_t *sbh)
global_score * ap_get_scoreboard_global(void)
process_score * ap_get_scoreboard_process(int x)
const char * ap_set_reqtail(cmd_parms *cmd, void *dummy, int arg)
static void copy_request(char *rbuf, apr_size_t rbuflen, request_rec *r)
static apr_status_t create_namebased_scoreboard(apr_pool_t *pool, const char *fname)
Apache scoreboard library.
#define DEFAULT_SCOREBOARD
Structure to store things which are per connection.
ap_generation_t running_generation
A structure that represents the current request.
A structure to store information for each virtual server.
unsigned short conn_count