|
Packit Service |
f9aed3 |
/*
|
|
Packit Service |
f9aed3 |
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
Packit Service |
f9aed3 |
* contributor license agreements. See the NOTICE file distributed with
|
|
Packit Service |
f9aed3 |
* this work for additional information regarding copyright ownership.
|
|
Packit Service |
f9aed3 |
* The ASF licenses this file to You under the Apache License, Version 2.0
|
|
Packit Service |
f9aed3 |
* (the "License"); you may not use this file except in compliance with
|
|
Packit Service |
f9aed3 |
* the License. You may obtain a copy of the License at
|
|
Packit Service |
f9aed3 |
*
|
|
Packit Service |
f9aed3 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit Service |
f9aed3 |
*
|
|
Packit Service |
f9aed3 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit Service |
f9aed3 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit Service |
f9aed3 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit Service |
f9aed3 |
* See the License for the specific language governing permissions and
|
|
Packit Service |
f9aed3 |
* limitations under the License.
|
|
Packit Service |
f9aed3 |
*/
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#ifndef FCGID_CONF_H
|
|
Packit Service |
f9aed3 |
#define FCGID_CONF_H
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#define MODFCGID_COPYRIGHT \
|
|
Packit Service |
f9aed3 |
"Copyright 2013 The Apache Software Foundation."
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_MAJOR 2
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_MINOR 3
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_SUBVER 9
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_DEV 0
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#if MODFCGID_VERSION_DEV
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_DEVSTR "-dev"
|
|
Packit Service |
f9aed3 |
#else
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION_DEVSTR ""
|
|
Packit Service |
f9aed3 |
#endif
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* APR_STRINGIFY is defined here, and also in apr_general.h, so wrap it */
|
|
Packit Service |
f9aed3 |
#ifndef APR_STRINGIFY
|
|
Packit Service |
f9aed3 |
/** Properly quote a value as a string in the C preprocessor */
|
|
Packit Service |
f9aed3 |
#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
|
|
Packit Service |
f9aed3 |
/** Helper macro for APR_STRINGIFY */
|
|
Packit Service |
f9aed3 |
#define APR_STRINGIFY_HELPER(n) #n
|
|
Packit Service |
f9aed3 |
#endif
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#define MODFCGID_REVISION APR_STRINGIFY(MODFCGID_VERSION_MAJOR) \
|
|
Packit Service |
f9aed3 |
"." APR_STRINGIFY(MODFCGID_VERSION_MINOR) \
|
|
Packit Service |
f9aed3 |
"." APR_STRINGIFY(MODFCGID_VERSION_SUBVER)
|
|
Packit Service |
f9aed3 |
#define MODFCGID_VERSION MODFCGID_REVISION MODFCGID_VERSION_DEVSTR
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#define MODFCGID_PRODUCT "mod_fcgid/" MODFCGID_VERSION
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#ifndef VERSION_ONLY
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#include "apr_user.h"
|
|
Packit Service |
f9aed3 |
#include "fcgid_global.h"
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
typedef struct {
|
|
Packit Service |
f9aed3 |
const char *cgipath; /* executable file path */
|
|
Packit Service |
f9aed3 |
const char *cmdline; /* entire command line */
|
|
Packit Service |
f9aed3 |
apr_ino_t inode;
|
|
Packit Service |
f9aed3 |
apr_dev_t deviceid;
|
|
Packit Service |
f9aed3 |
int virtual;
|
|
Packit Service |
f9aed3 |
} fcgid_cmd_conf;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
typedef struct {
|
|
Packit Service |
f9aed3 |
/* not based on config */
|
|
Packit Service |
f9aed3 |
int vhost_id;
|
|
Packit Service |
f9aed3 |
/* global only */
|
|
Packit Service |
f9aed3 |
apr_hash_t *cmdopts_hash;
|
|
Packit Service |
f9aed3 |
int busy_scan_interval;
|
|
Packit Service |
f9aed3 |
int error_scan_interval;
|
|
Packit Service |
f9aed3 |
int idle_scan_interval;
|
|
Packit Service |
f9aed3 |
int max_process_count;
|
|
Packit Service |
f9aed3 |
int php_fix_pathinfo_enable;
|
|
Packit Service |
f9aed3 |
char *shmname_path;
|
|
Packit Service |
f9aed3 |
char *sockname_prefix;
|
|
Packit Service |
f9aed3 |
int spawn_score;
|
|
Packit Service |
f9aed3 |
int spawnscore_uplimit;
|
|
Packit Service |
f9aed3 |
int termination_score;
|
|
Packit Service |
f9aed3 |
int time_score;
|
|
Packit Service |
f9aed3 |
int zombie_scan_interval;
|
|
Packit Service |
f9aed3 |
#ifdef WIN32
|
|
Packit Service |
f9aed3 |
/* FcgidWin32PreventOrphans - Win32 CGI processes automatic cleanup */
|
|
Packit Service |
f9aed3 |
HANDLE hJobObjectForAutoCleanup;
|
|
Packit Service |
f9aed3 |
#endif
|
|
Packit Service |
f9aed3 |
/* global or vhost
|
|
Packit Service |
f9aed3 |
* scalar values have corresponding _set field to aid merging
|
|
Packit Service |
f9aed3 |
*/
|
|
Packit Service |
f9aed3 |
apr_table_t *default_init_env;
|
|
Packit Service |
f9aed3 |
int ipc_comm_timeout;
|
|
Packit Service |
f9aed3 |
int ipc_comm_timeout_set;
|
|
Packit Service |
f9aed3 |
int ipc_connect_timeout;
|
|
Packit Service |
f9aed3 |
int ipc_connect_timeout_set;
|
|
Packit Service |
f9aed3 |
int max_mem_request_len;
|
|
Packit Service |
f9aed3 |
int max_mem_request_len_set;
|
|
Packit Service |
f9aed3 |
apr_off_t max_request_len;
|
|
Packit Service |
f9aed3 |
int max_request_len_set;
|
|
Packit Service |
f9aed3 |
int max_requests_per_process;
|
|
Packit Service |
f9aed3 |
int max_requests_per_process_set;
|
|
Packit Service |
f9aed3 |
int output_buffersize;
|
|
Packit Service |
f9aed3 |
int output_buffersize_set;
|
|
Packit Service |
f9aed3 |
apr_array_header_t *pass_headers;
|
|
Packit Service |
f9aed3 |
int max_class_process_count;
|
|
Packit Service |
f9aed3 |
int max_class_process_count_set;
|
|
Packit Service |
f9aed3 |
int min_class_process_count;
|
|
Packit Service |
f9aed3 |
int min_class_process_count_set;
|
|
Packit Service |
f9aed3 |
int busy_timeout;
|
|
Packit Service |
f9aed3 |
int busy_timeout_set;
|
|
Packit Service |
f9aed3 |
int idle_timeout;
|
|
Packit Service |
f9aed3 |
int idle_timeout_set;
|
|
Packit Service |
f9aed3 |
int proc_lifetime;
|
|
Packit Service |
f9aed3 |
int proc_lifetime_set;
|
|
Packit Service |
f9aed3 |
} fcgid_server_conf;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
typedef struct {
|
|
Packit Service |
f9aed3 |
/* scalar values have corresponding _set field to aid merging */
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* wrapper */
|
|
Packit Service |
f9aed3 |
apr_hash_t *wrapper_info_hash;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* authenticator */
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *authenticator_info;
|
|
Packit Service |
f9aed3 |
int authenticator_authoritative;
|
|
Packit Service |
f9aed3 |
int authenticator_authoritative_set;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* authorizer */
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *authorizer_info;
|
|
Packit Service |
f9aed3 |
int authorizer_authoritative;
|
|
Packit Service |
f9aed3 |
int authorizer_authoritative_set;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* access check */
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *access_info;
|
|
Packit Service |
f9aed3 |
int access_authoritative;
|
|
Packit Service |
f9aed3 |
int access_authoritative_set;
|
|
Packit Service |
f9aed3 |
} fcgid_dir_conf;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
/* processing options which are sent to the PM with a spawn request
|
|
Packit Service |
f9aed3 |
* and/or configurable via FCGIDCmdOptions; envvars are kept in a
|
|
Packit Service |
f9aed3 |
* separate structure to keep them out of the process table in order
|
|
Packit Service |
f9aed3 |
* to limit shared memory use
|
|
Packit Service |
f9aed3 |
*/
|
|
Packit Service |
f9aed3 |
#define INITENV_KEY_LEN 64
|
|
Packit Service |
f9aed3 |
#define INITENV_VAL_LEN 128
|
|
Packit Service |
f9aed3 |
#define INITENV_CNT 64
|
|
Packit Service |
f9aed3 |
typedef struct {
|
|
Packit Service |
f9aed3 |
char initenv_key[INITENV_CNT][INITENV_KEY_LEN];
|
|
Packit Service |
f9aed3 |
char initenv_val[INITENV_CNT][INITENV_VAL_LEN];
|
|
Packit Service |
f9aed3 |
} fcgid_cmd_env;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
typedef struct {
|
|
Packit Service |
f9aed3 |
int busy_timeout;
|
|
Packit Service |
f9aed3 |
int idle_timeout;
|
|
Packit Service |
f9aed3 |
int ipc_comm_timeout;
|
|
Packit Service |
f9aed3 |
int ipc_connect_timeout;
|
|
Packit Service |
f9aed3 |
int max_class_process_count;
|
|
Packit Service |
f9aed3 |
int max_requests_per_process;
|
|
Packit Service |
f9aed3 |
int min_class_process_count;
|
|
Packit Service |
f9aed3 |
int proc_lifetime;
|
|
Packit Service |
f9aed3 |
fcgid_cmd_env *cmdenv;
|
|
Packit Service |
f9aed3 |
} fcgid_cmd_options;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
void *create_fcgid_server_config(apr_pool_t * p, server_rec * s);
|
|
Packit Service |
f9aed3 |
void *merge_fcgid_server_config(apr_pool_t * p, void *basev,
|
|
Packit Service |
f9aed3 |
void *overridesv);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
void *create_fcgid_dir_config(apr_pool_t * p, char *dummy);
|
|
Packit Service |
f9aed3 |
void *merge_fcgid_dir_config(apr_pool_t * p, void *basev,
|
|
Packit Service |
f9aed3 |
void *overridesv);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_idle_timeout(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_idle_scan_interval(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_busy_timeout(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_busy_scan_interval(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_proc_lifetime(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_error_scan_interval(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_zombie_scan_interval(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_socketpath(cmd_parms * cmd, void *dummy, const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_shmpath(cmd_parms * cmd, void *dummy, const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_time_score(cmd_parms * cmd, void *dummy, const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_max_request_len(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_max_mem_request_len(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_termination_score(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_spawn_score(cmd_parms * cmd, void *dummy, const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_spawnscore_uplimit(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_max_process(cmd_parms * cmd, void *dummy, const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_max_class_process(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_min_class_process(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_ipc_connect_timeout(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_ipc_comm_timeout(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_output_buffersize(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *add_default_env_vars(cmd_parms * cmd, void *sconf,
|
|
Packit Service |
f9aed3 |
const char *name, const char *value);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *add_pass_headers(cmd_parms * cmd, void *sconf,
|
|
Packit Service |
f9aed3 |
const char *name);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
apr_array_header_t *get_pass_headers(request_rec * r);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_wrapper_config(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *wrapper, const char *extension, const char* virtual);
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *get_wrapper_info(const char *cgipath, request_rec * r);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_authenticator_info(cmd_parms * cmd, void *config,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
const char *set_authenticator_authoritative(cmd_parms * cmd,
|
|
Packit Service |
f9aed3 |
void *config, int arg);
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *get_authenticator_info(request_rec * r, int *authoritative);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_authorizer_info(cmd_parms * cmd, void *config,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
const char *set_authorizer_authoritative(cmd_parms * cmd,
|
|
Packit Service |
f9aed3 |
void *config, int arg);
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *get_authorizer_info(request_rec * r, int *authoritative);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_access_info(cmd_parms * cmd, void *config,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
const char *set_access_authoritative(cmd_parms * cmd,
|
|
Packit Service |
f9aed3 |
void *config, int arg);
|
|
Packit Service |
f9aed3 |
fcgid_cmd_conf *get_access_info(request_rec * r, int *authoritative);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_php_fix_pathinfo_enable(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_max_requests_per_process(cmd_parms * cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#ifdef WIN32
|
|
Packit Service |
f9aed3 |
const char *set_win32_prevent_process_orphans(cmd_parms *cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
int arg);
|
|
Packit Service |
f9aed3 |
#endif
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
const char *set_cmd_options(cmd_parms *cmd, void *dummy,
|
|
Packit Service |
f9aed3 |
const char *arg);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
void get_cmd_options(request_rec *r, const char *cmdpath,
|
|
Packit Service |
f9aed3 |
fcgid_cmd_options *cmdopts, fcgid_cmd_env *cmdenv);
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
AP_MODULE_DECLARE_DATA extern module fcgid_module;
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#endif
|
|
Packit Service |
f9aed3 |
|
|
Packit Service |
f9aed3 |
#endif
|