MCPcopy Create free account
hub / github.com/apache/httpd / cgid_init

Function cgid_init

modules/generators/mod_cgid.c:1035–1083  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1033}
1034
1035static int cgid_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp,
1036 server_rec *main_server)
1037{
1038 apr_proc_t *procnew = NULL;
1039 const char *userdata_key = "cgid_init";
1040 int ret = OK;
1041 void *data;
1042
1043 root_server = main_server;
1044 root_pool = p;
1045
1046 apr_pool_userdata_get(&data, userdata_key, main_server->process->pool);
1047 if (!data) {
1048 procnew = apr_pcalloc(main_server->process->pool, sizeof(*procnew));
1049 procnew->pid = -1;
1050 procnew->err = procnew->in = procnew->out = NULL;
1051 apr_pool_userdata_set((const void *)procnew, userdata_key,
1052 apr_pool_cleanup_null, main_server->process->pool);
1053 return ret;
1054 }
1055 else {
1056 procnew = data;
1057 }
1058
1059 if (ap_state_query(AP_SQ_MAIN_STATE) != AP_SQ_MS_CREATE_PRE_CONFIG) {
1060 char *tmp_sockname;
1061
1062 parent_pid = getpid();
1063 tmp_sockname = ap_runtime_dir_relative(p, sockname);
1064 if (strlen(tmp_sockname) > sizeof(server_addr->sun_path) - 1) {
1065 tmp_sockname[sizeof(server_addr->sun_path)] = '\0';
1066 ap_log_error(APLOG_MARK, APLOG_ERR, 0, main_server, APLOGNO(01254)
1067 "The length of the ScriptSock path exceeds maximum, "
1068 "truncating to %s", tmp_sockname);
1069 }
1070 sockname = tmp_sockname;
1071
1072 server_addr_len = APR_OFFSETOF(struct sockaddr_un, sun_path) + strlen(sockname);
1073 server_addr = (struct sockaddr_un *)apr_palloc(p, server_addr_len + 1);
1074 server_addr->sun_family = AF_UNIX;
1075 strcpy(server_addr->sun_path, sockname);
1076
1077 ret = cgid_start(p, main_server, procnew);
1078 if (ret != OK ) {
1079 return ret;
1080 }
1081 }
1082 return ret;
1083}
1084
1085static void *create_cgid_config(apr_pool_t *p, server_rec *s)
1086{

Callers

nothing calls this directly

Calls 4

ap_state_queryFunction · 0.85
ap_runtime_dir_relativeFunction · 0.85
cgid_startFunction · 0.85
ap_log_errorFunction · 0.50

Tested by

no test coverage detected