svn: /php/php-src/branches/PHP_5_3_FPM/sapi/fpm/ Makefile.frag fpm/fpm_conf.c fpm/fpm_conf.h
| From: | Jérôme Loyet | Date: | Mon, 11 Jan 2010 17:57:22 +0000 |
| Subject: | svn: /php/php-src/branches/PHP_5_3_FPM/sapi/fpm/ Makefile.frag fpm/fpm_conf.c fpm/fpm_conf.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-61517@lists.php.net to get a copy of this message | ||
fat Mon, 11 Jan 2010 17:57:22 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=293414
Log:
INSTALL_ROOT was not set correctly for fpm binary
Changed paths:
U php/php-src/branches/PHP_5_3_FPM/sapi/fpm/Makefile.frag
U php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.c
U php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.h
Modified: php/php-src/branches/PHP_5_3_FPM/sapi/fpm/Makefile.frag
===================================================================
--- php/php-src/branches/PHP_5_3_FPM/sapi/fpm/Makefile.frag 2010-01-11 17:08:53 UTC (rev 293413)
+++ php/php-src/branches/PHP_5_3_FPM/sapi/fpm/Makefile.frag 2010-01-11 17:57:22 UTC (rev 293414)
@@ -12,7 +12,7 @@
@$(mkinstalldirs) $(INSTALL_ROOT)$(sbindir)
@$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/log
@$(mkinstalldirs) $(INSTALL_ROOT)$(localstatedir)/run
- @$(INSTALL) -m 0755 $(SAPI_FPM_PATH)
$(INSTALL_ROO)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
+ @$(INSTALL) -m 0755 $(SAPI_FPM_PATH)
$(INSTALL_ROOT)$(sbindir)/$(program_prefix)php-fpm$(program_suffix)$(EXEEXT)
@echo "Installing PHP FPM config: $(INSTALL_ROOT)$(sysconfdir)/" && \
$(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir) || :
Modified: php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.c
===================================================================
--- php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.c 2010-01-11 17:08:53 UTC (rev 293413)
+++ php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.c 2010-01-11 17:57:22 UTC (rev 293414)
@@ -297,6 +297,8 @@
free(wpc->pm->status);
free(wpc->pm->ping);
free(wpc->pm->pong);
+ free(wpc->sticky_cookie);
+ free(wpc->sticky_route);
if (wpc->listen_options) {
free(wpc->listen_options->owner);
free(wpc->listen_options->group);
@@ -347,6 +349,9 @@
{
XML_CONF_SCALAR, "rlimit_files", &xml_conf_set_slot_integer, offsetof(struct
fpm_worker_pool_config_s, rlimit_files) },
{ XML_CONF_SCALAR, "rlimit_core", &fpm_conf_set_rlimit_core, 0 },
{
XML_CONF_SCALAR, "max_requests", &xml_conf_set_slot_integer, offsetof(struct
fpm_worker_pool_config_s, max_requests) },
+ { XML_CONF_SCALAR, "sticky", &xml_conf_set_slot_boolean, offsetof(struct
fpm_worker_pool_config_s, sticky) },
+ {
XML_CONF_SCALAR, "sticky_cookie", &xml_conf_set_slot_string, offsetof(struct
fpm_worker_pool_config_s, sticky_cookie) },
+ {
XML_CONF_SCALAR, "sticky_route", &xml_conf_set_slot_string, offsetof(struct
fpm_worker_pool_config_s, sticky_route) },
{
XML_CONF_SCALAR, "catch_workers_output", &fpm_conf_set_catch_workers_output, 0 },
{ XML_CONF_SUBSECTION, "pm", &fpm_conf_set_pm_subsection, offsetof(struct
fpm_worker_pool_config_s, pm) },
{ 0, 0, 0, 0 }
@@ -475,7 +480,65 @@
close(fd);
}
}
+ if (wp->config->sticky) {
+ char *cookie = wp->config->sticky_cookie;
+ char *route = wp->config->sticky_route;
+ int i;
+ if (!cookie) {
+ wp->config->sticky_cookie = strdup("FPMCOOKIE");
+ } else {
+ if (strlen(cookie) < 2) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] the sticky cookie '%s' is not long
enough", wp->config->name, cookie);
+ return(-1);
+ }
+
+ for (i=0; i<strlen(cookie); i++) {
+ if (!isalnum(cookie[i])) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] the sticky cookie '%s' must containt
only the alphanum characters", wp->config->name, cookie);
+ return(-1);
+ }
+ }
+ }
+
+ if (!route) {
+ char *hostname;
+ hostname = malloc(sizeof(char) * (FPM_CONF_MAX_HOSTNAME_LENGTH + 1));
+ if (!hostname) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] sticky: unable to malloc memory for
hostname", wp->config->name);
+ return(-1);
+ }
+ if (gethostname(hostname, FPM_CONF_MAX_HOSTNAME_LENGTH) != 0) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] sticky: unable to retrieve hostname",
wp->config->name);
+ return(-1);
+ }
+ hostname[FPM_CONF_MAX_HOSTNAME_LENGTH] = '\0';
+ wp->config->sticky_route = strdup(hostname);
+ zlog(ZLOG_STUFF, ZLOG_NOTICE, "[pool %s] the sticky route has been set to the local
hostname '%s'", wp->config->name, wp->config->sticky_route);
+ free(hostname);
+ } else {
+ if (strlen(route) < 2) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] the sticky route '%s' is not long
enough", wp->config->name, route);
+ return(-1);
+ }
+
+ for (i=0; i<strlen(route); i++) {
+ if (!isalnum(route[i])) {
+ zlog(ZLOG_STUFF, ZLOG_ERROR, "[pool %s] the sticky route '%s' must containt
only the alphanum characters", wp->config->name, route);
+ return(-1);
+ }
+ }
+ }
+zlog(ZLOG_STUFF, ZLOG_NOTICE, "[pool %s] sticky is set to %s=%s", wp->config->name,
wp->config->sticky_cookie, wp->config->sticky_route);
+ } else {
+ if (wp->config->sticky_route) {
+ free(wp->config->sticky_route);
+ }
+ if (wp->config->sticky_cookie) {
+ free(wp->config->sticky_cookie);
+ }
+ }
+
if (wp->config->pm->ping && *wp->config->pm->ping) {
char *ping = wp->config->pm->ping;
int i;
Modified: php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.h
===================================================================
--- php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.h 2010-01-11 17:08:53 UTC (rev 293413)
+++ php/php-src/branches/PHP_5_3_FPM/sapi/fpm/fpm/fpm_conf.h 2010-01-11 17:57:22 UTC (rev 293414)
@@ -6,6 +6,7 @@
#define FPM_CONF_H 1
#define FPM_CONF_MAX_PONG_LENGTH 64
+#define FPM_CONF_MAX_HOSTNAME_LENGTH 255
struct key_value_s;
@@ -64,6 +65,9 @@
int max_requests;
int rlimit_files;
int rlimit_core;
+ int sticky;
+ char *sticky_cookie;
+ char *sticky_route;
unsigned catch_workers_output:1;
};