wp 95 sapi/fpm/fpm/fpm.c struct fpm_worker_pool_s *wp; wp 98 sapi/fpm/fpm/fpm.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 101 sapi/fpm/fpm/fpm.c is_parent = fpm_children_create_initial(wp); wp 91 sapi/fpm/fpm/fpm_children.c struct fpm_worker_pool_s *wp = child->wp; wp 93 sapi/fpm/fpm/fpm_children.c ++wp->running_children; wp 96 sapi/fpm/fpm/fpm_children.c child->next = wp->children; wp 101 sapi/fpm/fpm/fpm_children.c wp->children = child; wp 107 sapi/fpm/fpm/fpm_children.c --child->wp->running_children; wp 113 sapi/fpm/fpm/fpm_children.c child->wp->children = child->next; wp 124 sapi/fpm/fpm/fpm_children.c struct fpm_worker_pool_s *wp; wp 127 sapi/fpm/fpm/fpm_children.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 129 sapi/fpm/fpm/fpm_children.c for (child = wp->children; child; child = child->next) { wp 146 sapi/fpm/fpm/fpm_children.c static void fpm_child_init(struct fpm_worker_pool_s *wp) /* {{{ */ wp 148 sapi/fpm/fpm/fpm_children.c fpm_globals.max_requests = wp->config->pm_max_requests; wp 150 sapi/fpm/fpm/fpm_children.c if (0 > fpm_stdio_init_child(wp) || wp 151 sapi/fpm/fpm/fpm_children.c 0 > fpm_log_init_child(wp) || wp 152 sapi/fpm/fpm/fpm_children.c 0 > fpm_status_init_child(wp) || wp 153 sapi/fpm/fpm/fpm_children.c 0 > fpm_unix_init_child(wp) || wp 155 sapi/fpm/fpm/fpm_children.c 0 > fpm_env_init_child(wp) || wp 156 sapi/fpm/fpm/fpm_children.c 0 > fpm_php_init_child(wp)) { wp 158 sapi/fpm/fpm/fpm_children.c zlog(ZLOG_ERROR, "[pool %s] child failed to initialize", wp->config->name); wp 237 sapi/fpm/fpm/fpm_children.c struct fpm_worker_pool_s *wp = child->wp; wp 242 sapi/fpm/fpm/fpm_children.c fpm_scoreboard_proc_free(wp->scoreboard, child->scoreboard_i); wp 252 sapi/fpm/fpm/fpm_children.c zlog(severity, "[pool %s] child %d exited %s after %ld.%06d seconds from start", child->wp->config->name, (int) pid, buf, tv2.tv_sec, (int) tv2.tv_usec); wp 254 sapi/fpm/fpm/fpm_children.c zlog(ZLOG_DEBUG, "[pool %s] child %d has been killed by the process management after %ld.%06d seconds from start", child->wp->config->name, (int) pid, tv2.tv_sec, (int) tv2.tv_usec); wp 288 sapi/fpm/fpm/fpm_children.c fpm_children_make(wp, 1 /* in event loop */, 1, 0); wp 301 sapi/fpm/fpm/fpm_children.c static struct fpm_child_s *fpm_resources_prepare(struct fpm_worker_pool_s *wp) /* {{{ */ wp 308 sapi/fpm/fpm/fpm_children.c zlog(ZLOG_ERROR, "[pool %s] unable to malloc new child", wp->config->name); wp 312 sapi/fpm/fpm/fpm_children.c c->wp = wp; wp 320 sapi/fpm/fpm/fpm_children.c if (0 > fpm_scoreboard_proc_alloc(wp->scoreboard, &c->scoreboard_i)) { wp 332 sapi/fpm/fpm/fpm_children.c fpm_scoreboard_proc_free(child->wp->scoreboard, child->scoreboard_i); wp 340 sapi/fpm/fpm/fpm_children.c struct fpm_worker_pool_s *wp; wp 341 sapi/fpm/fpm/fpm_children.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 342 sapi/fpm/fpm/fpm_children.c if (wp == child->wp) { wp 345 sapi/fpm/fpm/fpm_children.c fpm_scoreboard_free(wp->scoreboard); wp 348 sapi/fpm/fpm/fpm_children.c fpm_scoreboard_child_use(child->wp->scoreboard, child->scoreboard_i, getpid()); wp 361 sapi/fpm/fpm/fpm_children.c int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to_spawn, int is_debug) /* {{{ */ wp 368 sapi/fpm/fpm/fpm_children.c if (wp->config->pm == PM_STYLE_DYNAMIC) { wp 370 sapi/fpm/fpm/fpm_children.c max = wp->config->pm_start_servers; wp 372 sapi/fpm/fpm/fpm_children.c max = wp->running_children + nb_to_spawn; wp 374 sapi/fpm/fpm/fpm_children.c } else if (wp->config->pm == PM_STYLE_ONDEMAND) { wp 378 sapi/fpm/fpm/fpm_children.c max = wp->running_children + nb_to_spawn; wp 381 sapi/fpm/fpm/fpm_children.c max = wp->config->pm_max_children; wp 391 sapi/fpm/fpm/fpm_children.c while (fpm_pctl_can_spawn_children() && wp->running_children < max && (fpm_global_config.process_max < 1 || fpm_globals.running_children < fpm_global_config.process_max)) { wp 394 sapi/fpm/fpm/fpm_children.c child = fpm_resources_prepare(wp); wp 407 sapi/fpm/fpm/fpm_children.c fpm_child_init(wp); wp 421 sapi/fpm/fpm/fpm_children.c zlog(is_debug ? ZLOG_DEBUG : ZLOG_NOTICE, "[pool %s] child %d started", wp->config->name, (int) pid); wp 435 sapi/fpm/fpm/fpm_children.c int fpm_children_create_initial(struct fpm_worker_pool_s *wp) /* {{{ */ wp 437 sapi/fpm/fpm/fpm_children.c if (wp->config->pm == PM_STYLE_ONDEMAND) { wp 438 sapi/fpm/fpm/fpm_children.c wp->ondemand_event = (struct fpm_event_s *)malloc(sizeof(struct fpm_event_s)); wp 440 sapi/fpm/fpm/fpm_children.c if (!wp->ondemand_event) { wp 441 sapi/fpm/fpm/fpm_children.c zlog(ZLOG_ERROR, "[pool %s] unable to malloc the ondemand socket event", wp->config->name); wp 446 sapi/fpm/fpm/fpm_children.c memset(wp->ondemand_event, 0, sizeof(struct fpm_event_s)); wp 447 sapi/fpm/fpm/fpm_children.c fpm_event_set(wp->ondemand_event, wp->listening_socket, FPM_EV_READ | FPM_EV_EDGE, fpm_pctl_on_socket_accept, wp); wp 448 sapi/fpm/fpm/fpm_children.c wp->socket_event_set = 1; wp 449 sapi/fpm/fpm/fpm_children.c fpm_event_add(wp->ondemand_event, 0); wp 453 sapi/fpm/fpm/fpm_children.c return fpm_children_make(wp, 0 /* not in event loop yet */, 0, 1); wp 14 sapi/fpm/fpm/fpm_children.h int fpm_children_create_initial(struct fpm_worker_pool_s *wp); wp 18 sapi/fpm/fpm/fpm_children.h int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop, int nb_to_spawn, int is_debug); wp 25 sapi/fpm/fpm/fpm_children.h struct fpm_worker_pool_s *wp; wp 597 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_s *wp; wp 599 sapi/fpm/fpm/fpm_conf.c wp = fpm_worker_pool_alloc(); wp 601 sapi/fpm/fpm/fpm_conf.c if (!wp) { wp 605 sapi/fpm/fpm/fpm_conf.c wp->config = malloc(sizeof(struct fpm_worker_pool_config_s)); wp 607 sapi/fpm/fpm/fpm_conf.c if (!wp->config) { wp 608 sapi/fpm/fpm/fpm_conf.c fpm_worker_pool_free(wp); wp 612 sapi/fpm/fpm/fpm_conf.c memset(wp->config, 0, sizeof(struct fpm_worker_pool_config_s)); wp 613 sapi/fpm/fpm/fpm_conf.c wp->config->listen_backlog = FPM_BACKLOG_DEFAULT; wp 614 sapi/fpm/fpm/fpm_conf.c wp->config->pm_process_idle_timeout = 10; /* 10s by default */ wp 615 sapi/fpm/fpm/fpm_conf.c wp->config->process_priority = 64; /* 64 means unset */ wp 616 sapi/fpm/fpm/fpm_conf.c wp->config->clear_env = 1; wp 619 sapi/fpm/fpm/fpm_conf.c fpm_worker_all_pools = wp; wp 624 sapi/fpm/fpm/fpm_conf.c tmp->next = wp; wp 631 sapi/fpm/fpm/fpm_conf.c current_wp = wp; wp 632 sapi/fpm/fpm/fpm_conf.c return wp->config; wp 685 sapi/fpm/fpm/fpm_conf.c static int fpm_evaluate_full_path(char **path, struct fpm_worker_pool_s *wp, char *default_prefix, int expand) /* {{{ */ wp 694 sapi/fpm/fpm/fpm_conf.c if (wp && wp->config) { wp 695 sapi/fpm/fpm/fpm_conf.c prefix = wp->config->prefix; wp 738 sapi/fpm/fpm/fpm_conf.c if (**path != '/' && wp != NULL && wp->config) { wp 747 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_s *wp, *wp2; wp 754 sapi/fpm/fpm/fpm_conf.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 757 sapi/fpm/fpm/fpm_conf.c if (wp->config->prefix && *wp->config->prefix) { wp 758 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->prefix, NULL, NULL, 0); wp 760 sapi/fpm/fpm/fpm_conf.c if (!fpm_conf_is_dir(wp->config->prefix)) { wp 761 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the prefix '%s' does not exist or is not a directory", wp->config->name, wp->config->prefix); wp 767 sapi/fpm/fpm/fpm_conf.c if (!wp->config->user && !geteuid()) { wp 768 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] user has not been defined", wp->config->name); wp 773 sapi/fpm/fpm/fpm_conf.c if (wp->config->listen_address && *wp->config->listen_address) { wp 774 sapi/fpm/fpm/fpm_conf.c wp->listen_address_domain = fpm_sockets_domain_from_address(wp->config->listen_address); wp 776 sapi/fpm/fpm/fpm_conf.c if (wp->listen_address_domain == FPM_AF_UNIX && *wp->config->listen_address != '/') { wp 777 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->listen_address, wp, NULL, 0); wp 780 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] no listen address have been defined!", wp->config->name); wp 784 sapi/fpm/fpm/fpm_conf.c if (wp->config->process_priority != 64 && (wp->config->process_priority < -19 || wp->config->process_priority > 20)) { wp 785 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] process.priority must be included into [-19,20]", wp->config->name); wp 790 sapi/fpm/fpm/fpm_conf.c if (wp->config->pm != PM_STYLE_STATIC && wp->config->pm != PM_STYLE_DYNAMIC && wp->config->pm != PM_STYLE_ONDEMAND) { wp 791 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] the process manager is missing (static, dynamic or ondemand)", wp->config->name); wp 796 sapi/fpm/fpm/fpm_conf.c if (wp->config->pm_max_children < 1) { wp 797 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.max_children must be a positive value", wp->config->name); wp 802 sapi/fpm/fpm/fpm_conf.c if (wp->config->pm == PM_STYLE_DYNAMIC) { wp 803 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_config_s *config = wp->config; wp 806 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.min_spare_servers(%d) must be a positive value", wp->config->name, config->pm_min_spare_servers); wp 811 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.max_spare_servers(%d) must be a positive value", wp->config->name, config->pm_max_spare_servers); wp 817 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.min_spare_servers(%d) and pm.max_spare_servers(%d) cannot be greater than pm.max_children(%d)", wp->config->name, config->pm_min_spare_servers, config->pm_max_spare_servers, config->pm_max_children); wp 822 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.max_spare_servers(%d) must not be less than pm.min_spare_servers(%d)", wp->config->name, config->pm_max_spare_servers, config->pm_min_spare_servers); wp 828 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "[pool %s] pm.start_servers is not set. It's been set to %d.", wp->config->name, config->pm_start_servers); wp 831 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.start_servers(%d) must not be less than pm.min_spare_servers(%d) and not greater than pm.max_spare_servers(%d)", wp->config->name, config->pm_start_servers, config->pm_min_spare_servers, config->pm_max_spare_servers); wp 834 sapi/fpm/fpm/fpm_conf.c } else if (wp->config->pm == PM_STYLE_ONDEMAND) { wp 835 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_config_s *config = wp->config; wp 838 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] ondemand process manager can ONLY be used when events.mechanisme is either epoll (Linux) or kqueue (*BSD).", wp->config->name); wp 843 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ALERT, "[pool %s] pm.process_idle_timeout(%ds) must be greater than 0s", wp->config->name, config->pm_process_idle_timeout); wp 848 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_WARNING, "[pool %s] listen.backlog(%d) was too low for the ondemand process manager. I updated it for you to %d.", wp->config->name, config->listen_backlog, FPM_BACKLOG_DEFAULT); wp 859 sapi/fpm/fpm/fpm_conf.c if (wp->config->pm_status_path && *wp->config->pm_status_path) { wp 861 sapi/fpm/fpm/fpm_conf.c char *status = wp->config->pm_status_path; wp 864 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the status path '%s' must start with a '/'", wp->config->name, status); wp 869 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the status path '%s' is not long enough", wp->config->name, status); wp 875 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the status path '%s' must contain only the following characters '[alphanum]/_-.'", wp->config->name, status); wp 882 sapi/fpm/fpm/fpm_conf.c if (wp->config->ping_path && *wp->config->ping_path) { wp 883 sapi/fpm/fpm/fpm_conf.c char *ping = wp->config->ping_path; wp 887 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the ping path '%s' must start with a '/'", wp->config->name, ping); wp 892 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the ping path '%s' is not long enough", wp->config->name, ping); wp 898 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the ping path '%s' must containt only the following characters '[alphanum]/_-.'", wp->config->name, ping); wp 903 sapi/fpm/fpm/fpm_conf.c if (!wp->config->ping_response) { wp 904 sapi/fpm/fpm/fpm_conf.c wp->config->ping_response = strdup("pong"); wp 906 sapi/fpm/fpm/fpm_conf.c if (strlen(wp->config->ping_response) < 1) { wp 907 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the ping response page '%s' is not long enough", wp->config->name, wp->config->ping_response); wp 912 sapi/fpm/fpm/fpm_conf.c if (wp->config->ping_response) { wp 913 sapi/fpm/fpm/fpm_conf.c free(wp->config->ping_response); wp 914 sapi/fpm/fpm/fpm_conf.c wp->config->ping_response = NULL; wp 919 sapi/fpm/fpm/fpm_conf.c if (wp->config->access_log && *wp->config->access_log) { wp 920 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->access_log, wp, NULL, 0); wp 921 sapi/fpm/fpm/fpm_conf.c if (!wp->config->access_format) { wp 922 sapi/fpm/fpm/fpm_conf.c wp->config->access_format = strdup("%R - %u %t \"%m %r\" %s"); wp 926 sapi/fpm/fpm/fpm_conf.c if (wp->config->request_terminate_timeout) { wp 927 sapi/fpm/fpm/fpm_conf.c fpm_globals.heartbeat = fpm_globals.heartbeat ? MIN(fpm_globals.heartbeat, (wp->config->request_terminate_timeout * 1000) / 3) : (wp->config->request_terminate_timeout * 1000) / 3; wp 931 sapi/fpm/fpm/fpm_conf.c if (wp->config->slowlog && *wp->config->slowlog) { wp 932 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->slowlog, wp, NULL, 0); wp 936 sapi/fpm/fpm/fpm_conf.c if (wp->config->request_slowlog_timeout) { wp 938 sapi/fpm/fpm/fpm_conf.c if (! (wp->config->slowlog && *wp->config->slowlog)) { wp 939 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] 'slowlog' must be specified for use with 'request_slowlog_timeout'", wp->config->name); wp 946 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_WARNING, "[pool %s] 'request_slowlog_timeout' is not supported on your system", wp->config->name); wp 950 sapi/fpm/fpm/fpm_conf.c wp->config->request_slowlog_timeout = 0; wp 953 sapi/fpm/fpm/fpm_conf.c if (wp->config->slowlog && *wp->config->slowlog) { wp 956 sapi/fpm/fpm/fpm_conf.c fd = open(wp->config->slowlog, O_WRONLY | O_APPEND | O_CREAT, S_IRUSR | S_IWUSR); wp 959 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_SYSERROR, "Unable to create or open slowlog(%s)", wp->config->slowlog); wp 965 sapi/fpm/fpm/fpm_conf.c fpm_globals.heartbeat = fpm_globals.heartbeat ? MIN(fpm_globals.heartbeat, (wp->config->request_slowlog_timeout * 1000) / 3) : (wp->config->request_slowlog_timeout * 1000) / 3; wp 967 sapi/fpm/fpm/fpm_conf.c if (wp->config->request_terminate_timeout && wp->config->request_slowlog_timeout > wp->config->request_terminate_timeout) { wp 968 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] 'request_slowlog_timeout' (%d) can't be greater than 'request_terminate_timeout' (%d)", wp->config->name, wp->config->request_slowlog_timeout, wp->config->request_terminate_timeout); wp 974 sapi/fpm/fpm/fpm_conf.c if (wp->config->chroot && *wp->config->chroot) { wp 976 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->chroot, wp, NULL, 1); wp 978 sapi/fpm/fpm/fpm_conf.c if (*wp->config->chroot != '/') { wp 979 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the chroot path '%s' must start with a '/'", wp->config->name, wp->config->chroot); wp 983 sapi/fpm/fpm/fpm_conf.c if (!fpm_conf_is_dir(wp->config->chroot)) { wp 984 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the chroot path '%s' does not exist or is not a directory", wp->config->name, wp->config->chroot); wp 990 sapi/fpm/fpm/fpm_conf.c if (wp->config->chdir && *wp->config->chdir) { wp 992 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&wp->config->chdir, wp, NULL, 0); wp 994 sapi/fpm/fpm/fpm_conf.c if (*wp->config->chdir != '/') { wp 995 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the chdir path '%s' must start with a '/'", wp->config->name, wp->config->chdir); wp 999 sapi/fpm/fpm/fpm_conf.c if (wp->config->chroot) { wp 1002 sapi/fpm/fpm/fpm_conf.c spprintf(&buf, 0, "%s/%s", wp->config->chroot, wp->config->chdir); wp 1005 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the chdir path '%s' within the chroot path '%s' ('%s') does not exist or is not a directory", wp->config->name, wp->config->chdir, wp->config->chroot, buf); wp 1012 sapi/fpm/fpm/fpm_conf.c if (!fpm_conf_is_dir(wp->config->chdir)) { wp 1013 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] the chdir path '%s' does not exist or is not a directory", wp->config->name, wp->config->chdir); wp 1020 sapi/fpm/fpm/fpm_conf.c if (!wp->config->security_limit_extensions) { wp 1021 sapi/fpm/fpm/fpm_conf.c wp->config->security_limit_extensions = strdup(".php .phar"); wp 1024 sapi/fpm/fpm/fpm_conf.c if (*wp->config->security_limit_extensions) { wp 1032 sapi/fpm/fpm/fpm_conf.c security_limit_extensions = strdup(wp->config->security_limit_extensions); wp 1047 sapi/fpm/fpm/fpm_conf.c wp->limit_extensions = malloc(sizeof(char *) * (nb_ext + 1)); wp 1048 sapi/fpm/fpm/fpm_conf.c if (!wp->limit_extensions) { wp 1049 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] unable to malloc extensions array", wp->config->name); wp 1054 sapi/fpm/fpm/fpm_conf.c security_limit_extensions = strdup(wp->config->security_limit_extensions); wp 1061 sapi/fpm/fpm/fpm_conf.c wp->limit_extensions[nb_ext++] = strdup(ext); wp 1065 sapi/fpm/fpm/fpm_conf.c wp->limit_extensions[nb_ext] = NULL; wp 1071 sapi/fpm/fpm/fpm_conf.c if (!wp->config->chroot) { wp 1076 sapi/fpm/fpm/fpm_conf.c for (kv = wp->config->php_values; kv; kv = kv->next) { wp 1079 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&kv->value, wp, NULL, 0); wp 1083 sapi/fpm/fpm/fpm_conf.c for (kv = wp->config->php_admin_values; kv; kv = kv->next) { wp 1089 sapi/fpm/fpm/fpm_conf.c fpm_evaluate_full_path(&kv->value, wp, NULL, 0); wp 1097 sapi/fpm/fpm/fpm_conf.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 1099 sapi/fpm/fpm/fpm_conf.c if (wp == wp2) { wp 1103 sapi/fpm/fpm/fpm_conf.c if (wp->config->listen_address && *wp->config->listen_address && wp2->config->listen_address && *wp2->config->listen_address && !strcmp(wp->config->listen_address, wp2->config->listen_address)) { wp 1104 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] unable to set listen address as it's already used in another pool '%s'", wp2->config->name, wp->config->name); wp 1156 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_s *wp; wp 1221 sapi/fpm/fpm/fpm_conf.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 1222 sapi/fpm/fpm/fpm_conf.c if (!wp->config->access_log || !*wp->config->access_log) { wp 1225 sapi/fpm/fpm/fpm_conf.c if (0 > fpm_log_write(wp->config->access_format)) { wp 1226 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_ERROR, "[pool %s] wrong format for access.format '%s'", wp->config->name, wp->config->access_format); wp 1308 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_s *wp; wp 1318 sapi/fpm/fpm/fpm_conf.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 1319 sapi/fpm/fpm/fpm_conf.c if (!wp->config) continue; wp 1320 sapi/fpm/fpm/fpm_conf.c if (!wp->config->name) continue; wp 1321 sapi/fpm/fpm/fpm_conf.c if (!strcasecmp(wp->config->name, Z_STRVAL_P(section))) { wp 1323 sapi/fpm/fpm/fpm_conf.c current_wp = wp; wp 1571 sapi/fpm/fpm/fpm_conf.c struct fpm_worker_pool_s *wp; wp 1602 sapi/fpm/fpm/fpm_conf.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 1604 sapi/fpm/fpm/fpm_conf.c if (!wp->config) continue; wp 1605 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "[%s]", STR2STR(wp->config->name)); wp 1606 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tprefix = %s", STR2STR(wp->config->prefix)); wp 1607 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tuser = %s", STR2STR(wp->config->user)); wp 1608 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tgroup = %s", STR2STR(wp->config->group)); wp 1609 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten = %s", STR2STR(wp->config->listen_address)); wp 1610 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.backlog = %d", wp->config->listen_backlog); wp 1612 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.acl_users = %s", STR2STR(wp->config->listen_acl_users)); wp 1613 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.acl_groups = %s", STR2STR(wp->config->listen_acl_groups)); wp 1615 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.owner = %s", STR2STR(wp->config->listen_owner)); wp 1616 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.group = %s", STR2STR(wp->config->listen_group)); wp 1617 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.mode = %s", STR2STR(wp->config->listen_mode)); wp 1618 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tlisten.allowed_clients = %s", STR2STR(wp->config->listen_allowed_clients)); wp 1619 sapi/fpm/fpm/fpm_conf.c if (wp->config->process_priority == 64) { wp 1622 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tprocess.priority = %d", wp->config->process_priority); wp 1624 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm = %s", PM2STR(wp->config->pm)); wp 1625 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.max_children = %d", wp->config->pm_max_children); wp 1626 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.start_servers = %d", wp->config->pm_start_servers); wp 1627 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.min_spare_servers = %d", wp->config->pm_min_spare_servers); wp 1628 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.max_spare_servers = %d", wp->config->pm_max_spare_servers); wp 1629 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.process_idle_timeout = %d", wp->config->pm_process_idle_timeout); wp 1630 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.max_requests = %d", wp->config->pm_max_requests); wp 1631 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tpm.status_path = %s", STR2STR(wp->config->pm_status_path)); wp 1632 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tping.path = %s", STR2STR(wp->config->ping_path)); wp 1633 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tping.response = %s", STR2STR(wp->config->ping_response)); wp 1634 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\taccess.log = %s", STR2STR(wp->config->access_log)); wp 1635 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\taccess.format = %s", STR2STR(wp->config->access_format)); wp 1636 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tslowlog = %s", STR2STR(wp->config->slowlog)); wp 1637 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\trequest_slowlog_timeout = %ds", wp->config->request_slowlog_timeout); wp 1638 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\trequest_terminate_timeout = %ds", wp->config->request_terminate_timeout); wp 1639 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\trlimit_files = %d", wp->config->rlimit_files); wp 1640 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\trlimit_core = %d", wp->config->rlimit_core); wp 1641 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tchroot = %s", STR2STR(wp->config->chroot)); wp 1642 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tchdir = %s", STR2STR(wp->config->chdir)); wp 1643 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tcatch_workers_output = %s", BOOL2STR(wp->config->catch_workers_output)); wp 1644 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tclear_env = %s", BOOL2STR(wp->config->clear_env)); wp 1645 sapi/fpm/fpm/fpm_conf.c zlog(ZLOG_NOTICE, "\tsecurity.limit_extensions = %s", wp->config->security_limit_extensions); wp 1647 sapi/fpm/fpm/fpm_conf.c for (kv = wp->config->env; kv; kv = kv->next) { wp 1651 sapi/fpm/fpm/fpm_conf.c for (kv = wp->config->php_values; kv; kv = kv->next) { wp 1655 sapi/fpm/fpm/fpm_conf.c for (kv = wp->config->php_admin_values; kv; kv = kv->next) { wp 138 sapi/fpm/fpm/fpm_env.c int fpm_env_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 142 sapi/fpm/fpm/fpm_env.c spprintf(&title, 0, "pool %s", wp->config->name); wp 146 sapi/fpm/fpm/fpm_env.c if (wp->config->clear_env) { wp 150 sapi/fpm/fpm/fpm_env.c for (kv = wp->config->env; kv; kv = kv->next) { wp 154 sapi/fpm/fpm/fpm_env.c if (wp->user) { wp 155 sapi/fpm/fpm/fpm_env.c setenv("USER", wp->user, 1); wp 158 sapi/fpm/fpm/fpm_env.c if (wp->home) { wp 159 sapi/fpm/fpm/fpm_env.c setenv("HOME", wp->home, 1); wp 166 sapi/fpm/fpm/fpm_env.c static int fpm_env_conf_wp(struct fpm_worker_pool_s *wp) /* {{{ */ wp 170 sapi/fpm/fpm/fpm_env.c for (kv = wp->config->env; kv; kv = kv->next) { wp 185 sapi/fpm/fpm/fpm_env.c free(wp->user); wp 186 sapi/fpm/fpm/fpm_env.c wp->user = 0; wp 190 sapi/fpm/fpm/fpm_env.c free(wp->home); wp 191 sapi/fpm/fpm/fpm_env.c wp->home = 0; wp 201 sapi/fpm/fpm/fpm_env.c struct fpm_worker_pool_s *wp; wp 207 sapi/fpm/fpm/fpm_env.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 208 sapi/fpm/fpm/fpm_env.c if (0 > fpm_env_conf_wp(wp)) { wp 12 sapi/fpm/fpm/fpm_env.h int fpm_env_init_child(struct fpm_worker_pool_s *wp); wp 310 sapi/fpm/fpm/fpm_events.c struct fpm_worker_pool_s *wp; wp 325 sapi/fpm/fpm/fpm_events.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 326 sapi/fpm/fpm/fpm_events.c if (!wp->config) continue; wp 327 sapi/fpm/fpm/fpm_events.c if (wp->config->catch_workers_output && wp->config->pm_max_children > 0) { wp 328 sapi/fpm/fpm/fpm_events.c max += (wp->config->pm_max_children * 2); wp 35 sapi/fpm/fpm/fpm_log.c struct fpm_worker_pool_s *wp; wp 39 sapi/fpm/fpm/fpm_log.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 40 sapi/fpm/fpm/fpm_log.c if (!wp->config->access_log) { wp 45 sapi/fpm/fpm/fpm_log.c fd = open(wp->config->access_log, O_WRONLY | O_APPEND | O_CREAT, S_IRUSR | S_IWUSR); wp 47 sapi/fpm/fpm/fpm_log.c zlog(ZLOG_SYSERROR, "failed to open access log (%s)", wp->config->access_log); wp 50 sapi/fpm/fpm/fpm_log.c zlog(ZLOG_DEBUG, "open access log (%s)", wp->config->access_log); wp 54 sapi/fpm/fpm/fpm_log.c dup2(fd, wp->log_fd); wp 56 sapi/fpm/fpm/fpm_log.c fd = wp->log_fd; wp 59 sapi/fpm/fpm/fpm_log.c wp->log_fd = fd; wp 72 sapi/fpm/fpm/fpm_log.c int fpm_log_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 74 sapi/fpm/fpm/fpm_log.c if (!wp || !wp->config) { wp 78 sapi/fpm/fpm/fpm_log.c if (wp->config->access_log && *wp->config->access_log) { wp 79 sapi/fpm/fpm/fpm_log.c if (wp->config->access_format) { wp 80 sapi/fpm/fpm/fpm_log.c fpm_log_format = strdup(wp->config->access_format); wp 85 sapi/fpm/fpm/fpm_log.c fpm_log_fd = wp->log_fd; wp 89 sapi/fpm/fpm/fpm_log.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 90 sapi/fpm/fpm/fpm_log.c if (wp->log_fd > -1 && wp->log_fd != fpm_log_fd) { wp 91 sapi/fpm/fpm/fpm_log.c close(wp->log_fd); wp 92 sapi/fpm/fpm/fpm_log.c wp->log_fd = -1; wp 9 sapi/fpm/fpm/fpm_log.h int fpm_log_init_child(struct fpm_worker_pool_s *wp); wp 115 sapi/fpm/fpm/fpm_php.c static int fpm_php_apply_defines(struct fpm_worker_pool_s *wp) /* {{{ */ wp 119 sapi/fpm/fpm/fpm_php.c for (kv = wp->config->php_values; kv; kv = kv->next) { wp 125 sapi/fpm/fpm/fpm_php.c for (kv = wp->config->php_admin_values; kv; kv = kv->next) { wp 135 sapi/fpm/fpm/fpm_php.c static int fpm_php_set_allowed_clients(struct fpm_worker_pool_s *wp) /* {{{ */ wp 137 sapi/fpm/fpm/fpm_php.c if (wp->listen_address_domain == FPM_AF_INET) { wp 138 sapi/fpm/fpm/fpm_php.c fcgi_set_allowed_clients(wp->config->listen_allowed_clients); wp 145 sapi/fpm/fpm/fpm_php.c static int fpm_php_set_fcgi_mgmt_vars(struct fpm_worker_pool_s *wp) /* {{{ */ wp 150 sapi/fpm/fpm/fpm_php.c len = sprintf(max_workers, "%u", (unsigned int) wp->config->pm_max_children); wp 217 sapi/fpm/fpm/fpm_php.c int fpm_php_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 219 sapi/fpm/fpm/fpm_php.c if (0 > fpm_php_apply_defines(wp) || wp 220 sapi/fpm/fpm/fpm_php.c 0 > fpm_php_set_allowed_clients(wp)) { wp 224 sapi/fpm/fpm/fpm_php.c if (wp->limit_extensions) { wp 225 sapi/fpm/fpm/fpm_php.c limit_extensions = wp->limit_extensions; wp 36 sapi/fpm/fpm/fpm_php.h int fpm_php_init_child(struct fpm_worker_pool_s *wp); wp 58 sapi/fpm/fpm/fpm_php_trace.c fprintf(slowlog, "\n%s [pool %s] pid %d\n", buf, child->wp->config->name, (int) pid); wp 199 sapi/fpm/fpm/fpm_php_trace.c fpm_scoreboard_update(0, 0, 0, 0, 0, 0, 1, FPM_SCOREBOARD_ACTION_INC, child->wp->scoreboard); wp 204 sapi/fpm/fpm/fpm_php_trace.c slowlog = fopen(child->wp->config->slowlog, "a+"); wp 207 sapi/fpm/fpm/fpm_php_trace.c zlog(ZLOG_SYSERROR, "unable to open slowlog (%s)", child->wp->config->slowlog); wp 148 sapi/fpm/fpm/fpm_process_ctl.c struct fpm_worker_pool_s *wp; wp 151 sapi/fpm/fpm/fpm_process_ctl.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 154 sapi/fpm/fpm/fpm_process_ctl.c for (child = wp->children; child; child = child->next) { wp 158 sapi/fpm/fpm/fpm_process_ctl.c child->wp->config->name, signo, wp 294 sapi/fpm/fpm/fpm_process_ctl.c struct fpm_worker_pool_s *wp; wp 296 sapi/fpm/fpm/fpm_process_ctl.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 297 sapi/fpm/fpm/fpm_process_ctl.c int terminate_timeout = wp->config->request_terminate_timeout; wp 298 sapi/fpm/fpm/fpm_process_ctl.c int slowlog_timeout = wp->config->request_slowlog_timeout; wp 302 sapi/fpm/fpm/fpm_process_ctl.c for (child = wp->children; child; child = child->next) { wp 312 sapi/fpm/fpm/fpm_process_ctl.c struct fpm_worker_pool_s *wp; wp 314 sapi/fpm/fpm/fpm_process_ctl.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 322 sapi/fpm/fpm/fpm_process_ctl.c if (wp->config == NULL) continue; wp 324 sapi/fpm/fpm/fpm_process_ctl.c for (child = wp->children; child; child = child->next) { wp 340 sapi/fpm/fpm/fpm_process_ctl.c if (wp->listen_address_domain == FPM_AF_INET) { wp 341 sapi/fpm/fpm/fpm_process_ctl.c if (0 > fpm_socket_get_listening_queue(wp->listening_socket, &cur_lq, NULL)) { wp 346 sapi/fpm/fpm/fpm_process_ctl.c if (!wp->warn_lq) { wp 347 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_WARNING, "[pool %s] listening queue is not empty, #%d requests are waiting to be served, consider raising pm.max_children setting (%d)", wp->config->name, cur_lq, wp->config->pm_max_children); wp 348 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_lq = 1; wp 351 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_lq = 0; wp 356 sapi/fpm/fpm/fpm_process_ctl.c fpm_scoreboard_update(idle, active, cur_lq, -1, -1, -1, 0, FPM_SCOREBOARD_ACTION_SET, wp->scoreboard); wp 359 sapi/fpm/fpm/fpm_process_ctl.c if (wp->config->pm == PM_STYLE_ONDEMAND) { wp 362 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_DEBUG, "[pool %s] currently %d active children, %d spare children", wp->config->name, active, idle); wp 368 sapi/fpm/fpm/fpm_process_ctl.c if (last.tv_sec < now.tv_sec - wp->config->pm_process_idle_timeout) { wp 377 sapi/fpm/fpm/fpm_process_ctl.c if (wp->config->pm != PM_STYLE_DYNAMIC) continue; wp 379 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_DEBUG, "[pool %s] currently %d active children, %d spare children, %d running children. Spawning rate %d", wp->config->name, active, idle, wp->running_children, wp->idle_spawn_rate); wp 381 sapi/fpm/fpm/fpm_process_ctl.c if (idle > wp->config->pm_max_spare_servers && last_idle_child) { wp 384 sapi/fpm/fpm/fpm_process_ctl.c wp->idle_spawn_rate = 1; wp 388 sapi/fpm/fpm/fpm_process_ctl.c if (idle < wp->config->pm_min_spare_servers) { wp 389 sapi/fpm/fpm/fpm_process_ctl.c if (wp->running_children >= wp->config->pm_max_children) { wp 390 sapi/fpm/fpm/fpm_process_ctl.c if (!wp->warn_max_children) { wp 391 sapi/fpm/fpm/fpm_process_ctl.c fpm_scoreboard_update(0, 0, 0, 0, 0, 1, 0, FPM_SCOREBOARD_ACTION_INC, wp->scoreboard); wp 392 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_WARNING, "[pool %s] server reached pm.max_children setting (%d), consider raising it", wp->config->name, wp->config->pm_max_children); wp 393 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_max_children = 1; wp 395 sapi/fpm/fpm/fpm_process_ctl.c wp->idle_spawn_rate = 1; wp 399 sapi/fpm/fpm/fpm_process_ctl.c if (wp->idle_spawn_rate >= 8) { wp 400 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_WARNING, "[pool %s] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning %d children, there are %d idle, and %d total children", wp->config->name, wp->idle_spawn_rate, idle, wp->running_children); wp 404 sapi/fpm/fpm/fpm_process_ctl.c children_to_fork = MIN(wp->idle_spawn_rate, wp->config->pm_min_spare_servers - idle); wp 407 sapi/fpm/fpm/fpm_process_ctl.c children_to_fork = MIN(children_to_fork, wp->config->pm_max_children - wp->running_children); wp 409 sapi/fpm/fpm/fpm_process_ctl.c if (!wp->warn_max_children) { wp 410 sapi/fpm/fpm/fpm_process_ctl.c fpm_scoreboard_update(0, 0, 0, 0, 0, 1, 0, FPM_SCOREBOARD_ACTION_INC, wp->scoreboard); wp 411 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_WARNING, "[pool %s] server reached pm.max_children setting (%d), consider raising it", wp->config->name, wp->config->pm_max_children); wp 412 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_max_children = 1; wp 414 sapi/fpm/fpm/fpm_process_ctl.c wp->idle_spawn_rate = 1; wp 417 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_max_children = 0; wp 419 sapi/fpm/fpm/fpm_process_ctl.c fpm_children_make(wp, 1, children_to_fork, 1); wp 428 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_DEBUG, "[pool %s] %d child(ren) have been created dynamically", wp->config->name, children_to_fork); wp 431 sapi/fpm/fpm/fpm_process_ctl.c if (wp->idle_spawn_rate < FPM_MAX_SPAWN_RATE) { wp 432 sapi/fpm/fpm/fpm_process_ctl.c wp->idle_spawn_rate *= 2; wp 436 sapi/fpm/fpm/fpm_process_ctl.c wp->idle_spawn_rate = 1; wp 498 sapi/fpm/fpm/fpm_process_ctl.c struct fpm_worker_pool_s *wp = (struct fpm_worker_pool_s *)arg; wp 508 sapi/fpm/fpm/fpm_process_ctl.c wp->socket_event_set = 0; wp 512 sapi/fpm/fpm/fpm_process_ctl.c if (wp->running_children >= wp->config->pm_max_children) { wp 513 sapi/fpm/fpm/fpm_process_ctl.c if (!wp->warn_max_children) { wp 514 sapi/fpm/fpm/fpm_process_ctl.c fpm_scoreboard_update(0, 0, 0, 0, 0, 1, 0, FPM_SCOREBOARD_ACTION_INC, wp->scoreboard); wp 515 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_WARNING, "[pool %s] server reached max_children setting (%d), consider raising it", wp->config->name, wp->config->pm_max_children); wp 516 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_max_children = 1; wp 522 sapi/fpm/fpm/fpm_process_ctl.c for (child = wp->children; child; child = child->next) { wp 529 sapi/fpm/fpm/fpm_process_ctl.c wp->warn_max_children = 0; wp 530 sapi/fpm/fpm/fpm_process_ctl.c fpm_children_make(wp, 1, 1, 1); wp 536 sapi/fpm/fpm/fpm_process_ctl.c zlog(ZLOG_DEBUG, "[pool %s] got accept without idle child available .... I forked", wp->config->name); wp 230 sapi/fpm/fpm/fpm_request.c proc_p = fpm_scoreboard_proc_acquire(child->wp->scoreboard, child->scoreboard_i, 1); wp 266 sapi/fpm/fpm/fpm_request.c child->wp->config->name, (int) child->pid, purified_script_filename, proc.request_method, proc.request_uri, wp 276 sapi/fpm/fpm/fpm_request.c child->wp->config->name, (int) child->pid, purified_script_filename, proc.request_method, proc.request_uri, wp 288 sapi/fpm/fpm/fpm_request.c proc = fpm_scoreboard_proc_get(child->wp->scoreboard, child->scoreboard_i); wp 303 sapi/fpm/fpm/fpm_request.c proc = fpm_scoreboard_proc_get(child->wp->scoreboard, child->scoreboard_i); wp 27 sapi/fpm/fpm/fpm_scoreboard.c struct fpm_worker_pool_s *wp; wp 44 sapi/fpm/fpm/fpm_scoreboard.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 45 sapi/fpm/fpm/fpm_scoreboard.c if (wp->config->pm_max_children < 1) { wp 46 sapi/fpm/fpm/fpm_scoreboard.c zlog(ZLOG_ERROR, "[pool %s] Unable to create scoreboard SHM because max_client is not set", wp->config->name); wp 50 sapi/fpm/fpm/fpm_scoreboard.c if (wp->scoreboard) { wp 51 sapi/fpm/fpm/fpm_scoreboard.c zlog(ZLOG_ERROR, "[pool %s] Unable to create scoreboard SHM because it already exists", wp->config->name); wp 55 sapi/fpm/fpm/fpm_scoreboard.c wp->scoreboard = fpm_shm_alloc(sizeof(struct fpm_scoreboard_s) + (wp->config->pm_max_children - 1) * sizeof(struct fpm_scoreboard_proc_s *)); wp 56 sapi/fpm/fpm/fpm_scoreboard.c if (!wp->scoreboard) { wp 59 sapi/fpm/fpm/fpm_scoreboard.c wp->scoreboard->nprocs = wp->config->pm_max_children; wp 60 sapi/fpm/fpm/fpm_scoreboard.c for (i = 0; i < wp->scoreboard->nprocs; i++) { wp 61 sapi/fpm/fpm/fpm_scoreboard.c wp->scoreboard->procs[i] = fpm_shm_alloc(sizeof(struct fpm_scoreboard_proc_s)); wp 62 sapi/fpm/fpm/fpm_scoreboard.c if (!wp->scoreboard->procs[i]) { wp 65 sapi/fpm/fpm/fpm_scoreboard.c memset(wp->scoreboard->procs[i], 0, sizeof(struct fpm_scoreboard_proc_s)); wp 68 sapi/fpm/fpm/fpm_scoreboard.c wp->scoreboard->pm = wp->config->pm; wp 69 sapi/fpm/fpm/fpm_scoreboard.c wp->scoreboard->start_epoch = time(NULL); wp 70 sapi/fpm/fpm/fpm_scoreboard.c strlcpy(wp->scoreboard->pool, wp->config->name, sizeof(wp->scoreboard->pool)); wp 72 sapi/fpm/fpm/fpm_scoreboard.h int fpm_scoreboard_init_child(struct fpm_worker_pool_s *wp); wp 163 sapi/fpm/fpm/fpm_sockets.c static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct sockaddr *sa, int socklen) /* {{{ */ wp 180 sapi/fpm/fpm/fpm_sockets.c if (wp->listen_address_domain == FPM_AF_UNIX) { wp 187 sapi/fpm/fpm/fpm_sockets.c saved_umask = umask(0777 ^ wp->socket_mode); wp 191 sapi/fpm/fpm/fpm_sockets.c zlog(ZLOG_SYSERROR, "unable to bind listening socket for address '%s'", wp->config->listen_address); wp 192 sapi/fpm/fpm/fpm_sockets.c if (wp->listen_address_domain == FPM_AF_UNIX) { wp 199 sapi/fpm/fpm/fpm_sockets.c if (wp->listen_address_domain == FPM_AF_UNIX) { wp 204 sapi/fpm/fpm/fpm_sockets.c if (0 > fpm_unix_set_socket_premissions(wp, path)) { wp 210 sapi/fpm/fpm/fpm_sockets.c if (0 > listen(sock, wp->config->listen_backlog)) { wp 211 sapi/fpm/fpm/fpm_sockets.c zlog(ZLOG_SYSERROR, "failed to listen to address '%s'", wp->config->listen_address); wp 220 sapi/fpm/fpm/fpm_sockets.c static int fpm_sockets_get_listening_socket(struct fpm_worker_pool_s *wp, struct sockaddr *sa, int socklen) /* {{{ */ wp 224 sapi/fpm/fpm/fpm_sockets.c sock = fpm_sockets_hash_op(0, sa, 0, wp->listen_address_domain, FPM_GET_USE_SOCKET); wp 229 sapi/fpm/fpm/fpm_sockets.c sock = fpm_sockets_new_listening_socket(wp, sa, socklen); wp 230 sapi/fpm/fpm/fpm_sockets.c fpm_sockets_hash_op(sock, sa, 0, wp->listen_address_domain, FPM_STORE_USE_SOCKET); wp 249 sapi/fpm/fpm/fpm_sockets.c static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) /* {{{ */ wp 252 sapi/fpm/fpm/fpm_sockets.c char *dup_address = strdup(wp->config->listen_address); wp 297 sapi/fpm/fpm/fpm_sockets.c if ((sock = fpm_sockets_get_listening_socket(wp, p->ai_addr, p->ai_addrlen)) != -1) { wp 312 sapi/fpm/fpm/fpm_sockets.c static int fpm_socket_af_unix_listening_socket(struct fpm_worker_pool_s *wp) /* {{{ */ wp 317 sapi/fpm/fpm/fpm_sockets.c strlcpy(sa_un.sun_path, wp->config->listen_address, sizeof(sa_un.sun_path)); wp 319 sapi/fpm/fpm/fpm_sockets.c return fpm_sockets_get_listening_socket(wp, (struct sockaddr *) &sa_un, sizeof(struct sockaddr_un)); wp 326 sapi/fpm/fpm/fpm_sockets.c struct fpm_worker_pool_s *wp; wp 361 sapi/fpm/fpm/fpm_sockets.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 362 sapi/fpm/fpm/fpm_sockets.c switch (wp->listen_address_domain) { wp 364 sapi/fpm/fpm/fpm_sockets.c wp->listening_socket = fpm_socket_af_inet_listening_socket(wp); wp 368 sapi/fpm/fpm/fpm_sockets.c if (0 > fpm_unix_resolve_socket_premissions(wp)) { wp 371 sapi/fpm/fpm/fpm_sockets.c wp->listening_socket = fpm_socket_af_unix_listening_socket(wp); wp 375 sapi/fpm/fpm/fpm_sockets.c if (wp->listening_socket == -1) { wp 379 sapi/fpm/fpm/fpm_sockets.c if (wp->listen_address_domain == FPM_AF_INET && fpm_socket_get_listening_queue(wp->listening_socket, NULL, &lq_len) >= 0) { wp 380 sapi/fpm/fpm/fpm_sockets.c fpm_scoreboard_update(-1, -1, -1, (int)lq_len, -1, -1, 0, FPM_SCOREBOARD_ACTION_SET, wp->scoreboard); wp 25 sapi/fpm/fpm/fpm_status.c int fpm_status_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 27 sapi/fpm/fpm/fpm_status.c if (!wp || !wp->config) { wp 32 sapi/fpm/fpm/fpm_status.c if (wp->config->pm_status_path) { wp 33 sapi/fpm/fpm/fpm_status.c fpm_status_uri = strdup(wp->config->pm_status_path); wp 36 sapi/fpm/fpm/fpm_status.c if (wp->config->ping_path) { wp 37 sapi/fpm/fpm/fpm_status.c if (!wp->config->ping_response) { wp 38 sapi/fpm/fpm/fpm_status.c zlog(ZLOG_ERROR, "[pool %s] ping is set (%s) but ping.response is not set.", wp->config->name, wp->config->ping_path); wp 41 sapi/fpm/fpm/fpm_status.c fpm_status_ping_uri = strdup(wp->config->ping_path); wp 42 sapi/fpm/fpm/fpm_status.c fpm_status_ping_response = strdup(wp->config->ping_response); wp 24 sapi/fpm/fpm/fpm_status.h int fpm_status_init_child(struct fpm_worker_pool_s *wp); wp 82 sapi/fpm/fpm/fpm_stdio.c int fpm_stdio_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 100 sapi/fpm/fpm/fpm_stdio.c if (wp->listening_socket != STDIN_FILENO) { wp 101 sapi/fpm/fpm/fpm_stdio.c if (0 > dup2(wp->listening_socket, STDIN_FILENO)) { wp 190 sapi/fpm/fpm/fpm_stdio.c zlog(ZLOG_WARNING, "[pool %s] child %d said into %s: \"%s\"%s", child->wp->config->name, wp 209 sapi/fpm/fpm/fpm_stdio.c if (0 == child->wp->config->catch_workers_output) { /* not required */ wp 239 sapi/fpm/fpm/fpm_stdio.c if (0 == child->wp->config->catch_workers_output) { /* not required */ wp 260 sapi/fpm/fpm/fpm_stdio.c if (0 == child->wp->config->catch_workers_output) { /* not required */ wp 275 sapi/fpm/fpm/fpm_stdio.c if (child->wp->config->catch_workers_output) { wp 12 sapi/fpm/fpm/fpm_stdio.h int fpm_stdio_init_child(struct fpm_worker_pool_s *wp); wp 17 sapi/fpm/fpm/fpm_systemd.c struct fpm_worker_pool_s *wp; wp 22 sapi/fpm/fpm/fpm_systemd.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 23 sapi/fpm/fpm/fpm_systemd.c if (wp->scoreboard) { wp 24 sapi/fpm/fpm/fpm_systemd.c active += wp->scoreboard->active; wp 25 sapi/fpm/fpm/fpm_systemd.c idle += wp->scoreboard->idle; wp 26 sapi/fpm/fpm/fpm_systemd.c requests += wp->scoreboard->requests; wp 27 sapi/fpm/fpm/fpm_systemd.c slow_req += wp->scoreboard->slow_rq; wp 39 sapi/fpm/fpm/fpm_unix.c int fpm_unix_resolve_socket_premissions(struct fpm_worker_pool_s *wp) /* {{{ */ wp 41 sapi/fpm/fpm/fpm_unix.c struct fpm_worker_pool_config_s *c = wp->config; wp 46 sapi/fpm/fpm/fpm_unix.c wp->socket_acl = NULL; wp 48 sapi/fpm/fpm/fpm_unix.c wp->socket_uid = -1; wp 49 sapi/fpm/fpm/fpm_unix.c wp->socket_gid = -1; wp 50 sapi/fpm/fpm/fpm_unix.c wp->socket_mode = 0660; wp 57 sapi/fpm/fpm/fpm_unix.c wp->socket_mode = strtoul(c->listen_mode, 0, 8); wp 86 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot allocate ACL", wp->config->name); wp 100 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_DEBUG, "[pool %s] user '%s' have uid=%d", wp->config->name, p, pwd->pw_uid); wp 102 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot get uid for user '%s'", wp->config->name, p); wp 114 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot create ACL for user '%s'", wp->config->name, p); wp 133 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_DEBUG, "[pool %s] group '%s' have gid=%d", wp->config->name, p, grp->gr_gid); wp 135 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot get gid for group '%s'", wp->config->name, p); wp 147 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot create ACL for group '%s'", wp->config->name, p); wp 156 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_WARNING, "[pool %s] ACL set, listen.owner = '%s' is ignored", wp->config->name, c->listen_owner); wp 159 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_WARNING, "[pool %s] ACL set, listen.group = '%s' is ignored", wp->config->name, c->listen_group); wp 161 sapi/fpm/fpm/fpm_unix.c wp->socket_acl = acl; wp 172 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot get uid for user '%s'", wp->config->name, c->listen_owner); wp 176 sapi/fpm/fpm/fpm_unix.c wp->socket_uid = pwd->pw_uid; wp 177 sapi/fpm/fpm/fpm_unix.c wp->socket_gid = pwd->pw_gid; wp 185 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] cannot get gid for group '%s'", wp->config->name, c->listen_group); wp 188 sapi/fpm/fpm/fpm_unix.c wp->socket_gid = grp->gr_gid; wp 195 sapi/fpm/fpm/fpm_unix.c int fpm_unix_set_socket_premissions(struct fpm_worker_pool_s *wp, const char *path) /* {{{ */ wp 198 sapi/fpm/fpm/fpm_unix.c if (wp->socket_acl) { wp 204 sapi/fpm/fpm/fpm_unix.c aclconf = wp->socket_acl; wp 207 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to read the ACL of the socket '%s'", wp->config->name, path); wp 214 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to add entry to the ACL of the socket '%s'", wp->config->name, path); wp 223 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to write the ACL of the socket '%s'", wp->config->name, path); wp 227 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_DEBUG, "[pool %s] ACL of the socket '%s' is set", wp->config->name, path); wp 236 sapi/fpm/fpm/fpm_unix.c if (wp->socket_uid != -1 || wp->socket_gid != -1) { wp 237 sapi/fpm/fpm/fpm_unix.c if (0 > chown(path, wp->socket_uid, wp->socket_gid)) { wp 238 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to chown() the socket '%s'", wp->config->name, wp->config->listen_address); wp 246 sapi/fpm/fpm/fpm_unix.c int fpm_unix_free_socket_premissions(struct fpm_worker_pool_s *wp) /* {{{ */ wp 249 sapi/fpm/fpm/fpm_unix.c if (wp->socket_acl) { wp 250 sapi/fpm/fpm/fpm_unix.c return acl_free(wp->socket_acl); wp 257 sapi/fpm/fpm/fpm_unix.c static int fpm_unix_conf_wp(struct fpm_worker_pool_s *wp) /* {{{ */ wp 263 sapi/fpm/fpm/fpm_unix.c if (wp->config->user && *wp->config->user) { wp 264 sapi/fpm/fpm/fpm_unix.c if (strlen(wp->config->user) == strspn(wp->config->user, "0123456789")) { wp 265 sapi/fpm/fpm/fpm_unix.c wp->set_uid = strtoul(wp->config->user, 0, 10); wp 269 sapi/fpm/fpm/fpm_unix.c pwd = getpwnam(wp->config->user); wp 271 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_ERROR, "[pool %s] cannot get uid for user '%s'", wp->config->name, wp->config->user); wp 275 sapi/fpm/fpm/fpm_unix.c wp->set_uid = pwd->pw_uid; wp 276 sapi/fpm/fpm/fpm_unix.c wp->set_gid = pwd->pw_gid; wp 278 sapi/fpm/fpm/fpm_unix.c wp->user = strdup(pwd->pw_name); wp 279 sapi/fpm/fpm/fpm_unix.c wp->home = strdup(pwd->pw_dir); wp 283 sapi/fpm/fpm/fpm_unix.c if (wp->config->group && *wp->config->group) { wp 284 sapi/fpm/fpm/fpm_unix.c if (strlen(wp->config->group) == strspn(wp->config->group, "0123456789")) { wp 285 sapi/fpm/fpm/fpm_unix.c wp->set_gid = strtoul(wp->config->group, 0, 10); wp 289 sapi/fpm/fpm/fpm_unix.c grp = getgrnam(wp->config->group); wp 291 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_ERROR, "[pool %s] cannot get gid for group '%s'", wp->config->name, wp->config->group); wp 294 sapi/fpm/fpm/fpm_unix.c wp->set_gid = grp->gr_gid; wp 299 sapi/fpm/fpm/fpm_unix.c if (wp->set_uid == 0 || wp->set_gid == 0) { wp 300 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_ERROR, "[pool %s] please specify user and group other than root", wp->config->name); wp 305 sapi/fpm/fpm/fpm_unix.c if (wp->config->user && *wp->config->user) { wp 306 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_NOTICE, "[pool %s] 'user' directive is ignored when FPM is not running as root", wp->config->name); wp 308 sapi/fpm/fpm/fpm_unix.c if (wp->config->group && *wp->config->group) { wp 309 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_NOTICE, "[pool %s] 'group' directive is ignored when FPM is not running as root", wp->config->name); wp 311 sapi/fpm/fpm/fpm_unix.c if (wp->config->chroot && *wp->config->chroot) { wp 312 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_NOTICE, "[pool %s] 'chroot' directive is ignored when FPM is not running as root", wp->config->name); wp 314 sapi/fpm/fpm/fpm_unix.c if (wp->config->process_priority != 64) { wp 315 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_NOTICE, "[pool %s] 'process.priority' directive is ignored when FPM is not running as root", wp->config->name); wp 321 sapi/fpm/fpm/fpm_unix.c wp->user = strdup(pwd->pw_name); wp 322 sapi/fpm/fpm/fpm_unix.c wp->home = strdup(pwd->pw_dir); wp 329 sapi/fpm/fpm/fpm_unix.c int fpm_unix_init_child(struct fpm_worker_pool_s *wp) /* {{{ */ wp 334 sapi/fpm/fpm/fpm_unix.c if (wp->config->rlimit_files) { wp 337 sapi/fpm/fpm/fpm_unix.c r.rlim_max = r.rlim_cur = (rlim_t) wp->config->rlimit_files; wp 340 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to set rlimit_files for this pool. Please check your system limits or decrease rlimit_files. setrlimit(RLIMIT_NOFILE, %d)", wp->config->name, wp->config->rlimit_files); wp 344 sapi/fpm/fpm/fpm_unix.c if (wp->config->rlimit_core) { wp 347 sapi/fpm/fpm/fpm_unix.c r.rlim_max = r.rlim_cur = wp->config->rlimit_core == -1 ? (rlim_t) RLIM_INFINITY : (rlim_t) wp->config->rlimit_core; wp 350 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to set rlimit_core for this pool. Please check your system limits or decrease rlimit_core. setrlimit(RLIMIT_CORE, %d)", wp->config->name, wp->config->rlimit_core); wp 354 sapi/fpm/fpm/fpm_unix.c if (is_root && wp->config->chroot && *wp->config->chroot) { wp 355 sapi/fpm/fpm/fpm_unix.c if (0 > chroot(wp->config->chroot)) { wp 356 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to chroot(%s)", wp->config->name, wp->config->chroot); wp 362 sapi/fpm/fpm/fpm_unix.c if (wp->config->chdir && *wp->config->chdir) { wp 363 sapi/fpm/fpm/fpm_unix.c if (0 > chdir(wp->config->chdir)) { wp 364 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to chdir(%s)", wp->config->name, wp->config->chdir); wp 369 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_WARNING, "[pool %s] failed to chdir(/)", wp->config->name); wp 375 sapi/fpm/fpm/fpm_unix.c if (wp->config->process_priority != 64) { wp 376 sapi/fpm/fpm/fpm_unix.c if (setpriority(PRIO_PROCESS, 0, wp->config->process_priority) < 0) { wp 377 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] Unable to set priority for this new process", wp->config->name); wp 382 sapi/fpm/fpm/fpm_unix.c if (wp->set_gid) { wp 383 sapi/fpm/fpm/fpm_unix.c if (0 > setgid(wp->set_gid)) { wp 384 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to setgid(%d)", wp->config->name, wp->set_gid); wp 388 sapi/fpm/fpm/fpm_unix.c if (wp->set_uid) { wp 389 sapi/fpm/fpm/fpm_unix.c if (0 > initgroups(wp->config->user, wp->set_gid)) { wp 390 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to initgroups(%s, %d)", wp->config->name, wp->config->user, wp->set_gid); wp 393 sapi/fpm/fpm/fpm_unix.c if (0 > setuid(wp->set_uid)) { wp 394 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to setuid(%d)", wp->config->name, wp->set_uid); wp 402 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to prctl(PR_SET_DUMPABLE)", wp->config->name); wp 411 sapi/fpm/fpm/fpm_unix.c if (wp->config->apparmor_hat) { wp 415 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to query apparmor confinement. Please check if \"/proc/*/attr/current\" is read and writeable.", wp->config->name); wp 419 sapi/fpm/fpm/fpm_unix.c new_con = malloc(strlen(con) + strlen(wp->config->apparmor_hat) + 3); // // + 0 Byte wp 421 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to allocate memory for apparmor hat change.", wp->config->name); wp 425 sapi/fpm/fpm/fpm_unix.c if (0 > sprintf(new_con, "%s//%s", con, wp->config->apparmor_hat)) { wp 426 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to construct apparmor confinement.", wp->config->name); wp 431 sapi/fpm/fpm/fpm_unix.c zlog(ZLOG_SYSERROR, "[pool %s] failed to change to new confinement (%s). Please check if \"/proc/*/attr/current\" is read and writeable and \"change_profile -> %s//*\" is allowed.", wp->config->name, new_con, con); wp 446 sapi/fpm/fpm/fpm_unix.c struct fpm_worker_pool_s *wp; wp 573 sapi/fpm/fpm/fpm_unix.c for (wp = fpm_worker_all_pools; wp; wp = wp->next) { wp 574 sapi/fpm/fpm/fpm_unix.c if (0 > fpm_unix_conf_wp(wp)) { wp 10 sapi/fpm/fpm/fpm_unix.h int fpm_unix_resolve_socket_premissions(struct fpm_worker_pool_s *wp); wp 11 sapi/fpm/fpm/fpm_unix.h int fpm_unix_set_socket_premissions(struct fpm_worker_pool_s *wp, const char *path); wp 12 sapi/fpm/fpm/fpm_unix.h int fpm_unix_free_socket_premissions(struct fpm_worker_pool_s *wp); wp 14 sapi/fpm/fpm/fpm_unix.h int fpm_unix_init_child(struct fpm_worker_pool_s *wp); wp 22 sapi/fpm/fpm/fpm_worker_pool.c void fpm_worker_pool_free(struct fpm_worker_pool_s *wp) /* {{{ */ wp 24 sapi/fpm/fpm/fpm_worker_pool.c if (wp->config) { wp 25 sapi/fpm/fpm/fpm_worker_pool.c free(wp->config); wp 27 sapi/fpm/fpm/fpm_worker_pool.c if (wp->user) { wp 28 sapi/fpm/fpm/fpm_worker_pool.c free(wp->user); wp 30 sapi/fpm/fpm/fpm_worker_pool.c if (wp->home) { wp 31 sapi/fpm/fpm/fpm_worker_pool.c free(wp->home); wp 33 sapi/fpm/fpm/fpm_worker_pool.c fpm_unix_free_socket_premissions(wp); wp 34 sapi/fpm/fpm/fpm_worker_pool.c free(wp); wp 40 sapi/fpm/fpm/fpm_worker_pool.c struct fpm_worker_pool_s *wp, *wp_next; wp 42 sapi/fpm/fpm/fpm_worker_pool.c for (wp = fpm_worker_all_pools; wp; wp = wp_next) { wp 43 sapi/fpm/fpm/fpm_worker_pool.c wp_next = wp->next; wp 44 sapi/fpm/fpm/fpm_worker_pool.c fpm_worker_pool_config_free(wp->config); wp 45 sapi/fpm/fpm/fpm_worker_pool.c fpm_children_free(wp->children); wp 47 sapi/fpm/fpm/fpm_worker_pool.c fpm_scoreboard_free(wp->scoreboard); wp 49 sapi/fpm/fpm/fpm_worker_pool.c fpm_worker_pool_free(wp); wp 52 sapi/fpm/fpm/fpm_worker_pool.h void fpm_worker_pool_free(struct fpm_worker_pool_s *wp);