diff options
| author | Ondřej Surý <ondrej@sury.org> | 2014-08-14 16:47:40 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2014-08-14 16:47:40 +0200 |
| commit | dee9227b6f6c89113e8964649afaf57c2ebf1027 (patch) | |
| tree | 72a2baeb28b2057b89e189a46fb488dec487223c /sapi | |
| parent | b60f6e95a473d1ae97fdf20cec4cfefc06b24ec2 (diff) | |
| download | php-dee9227b6f6c89113e8964649afaf57c2ebf1027.tar.gz | |
New upstream version 5.6.0~rc4+dfsgupstream/5.6.0_rc4+dfsg
Diffstat (limited to 'sapi')
| -rw-r--r-- | sapi/fpm/fpm/fpm_main.c | 28 | ||||
| -rw-r--r-- | sapi/milter/Makefile.frag | 4 | ||||
| -rw-r--r-- | sapi/milter/config.m4 | 4 | ||||
| -rw-r--r-- | sapi/milter/php_milter.c | 8 |
4 files changed, 38 insertions, 6 deletions
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 2ee145634..cd5492d73 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -1148,6 +1148,22 @@ static void init_request_info(TSRMLS_D) TRANSLATE_SLASHES(env_document_root); } + if (!apache_was_here && env_path_translated != NULL && env_redirect_url != NULL && + env_path_translated != script_path_translated && + strcmp(env_path_translated, script_path_translated) != 0) { + /* + * pretty much apache specific. If we have a redirect_url + * then our script_filename and script_name point to the + * php executable + * we don't want to do this for the new mod_proxy_fcgi approach, + * where redirect_url may also exist but the below will break + * with rewrites to PATH_INFO, hence the !apache_was_here check + */ + script_path_translated = env_path_translated; + /* we correct SCRIPT_NAME now in case we don't have PATH_INFO */ + env_script_name = env_redirect_url; + } + #ifdef __riscos__ /* Convert path to unix format*/ __riscosify_control |= __RISCOSIFY_DONT_CHECK_DIR; @@ -1325,6 +1341,18 @@ static void init_request_info(TSRMLS_D) } script_path_translated = _sapi_cgibin_putenv("SCRIPT_FILENAME", script_path_translated TSRMLS_CC); } + if (!apache_was_here && env_redirect_url) { + /* if we used PATH_TRANSLATED to work around Apache mod_fastcgi (but not mod_proxy_fcgi, + * hence !apache_was_here) weirdness, strip info accordingly */ + if (orig_path_info) { + _sapi_cgibin_putenv("ORIG_PATH_INFO", orig_path_info TSRMLS_CC); + _sapi_cgibin_putenv("PATH_INFO", NULL TSRMLS_CC); + } + if (orig_path_translated) { + _sapi_cgibin_putenv("ORIG_PATH_TRANSLATED", orig_path_translated TSRMLS_CC); + _sapi_cgibin_putenv("PATH_TRANSLATED", NULL TSRMLS_CC); + } + } if (env_script_name != orig_script_name) { if (orig_script_name) { _sapi_cgibin_putenv("ORIG_SCRIPT_NAME", orig_script_name TSRMLS_CC); diff --git a/sapi/milter/Makefile.frag b/sapi/milter/Makefile.frag index 26200a196..f193f56b0 100644 --- a/sapi/milter/Makefile.frag +++ b/sapi/milter/Makefile.frag @@ -1,8 +1,8 @@ milter: $(SAPI_MILTER_PATH) -$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_SAPI_OBJS) +$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_MILTER_OBJS) $(BUILD_MILTER) install-milter: $(SAPI_MILTER_PATH) - @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(bindir)/php-milter + @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(INSTALL_ROOT)$(bindir)/php-milter diff --git a/sapi/milter/config.m4 b/sapi/milter/config.m4 index 4bcad80bb..a69ab2e1e 100644 --- a/sapi/milter/config.m4 +++ b/sapi/milter/config.m4 @@ -22,10 +22,10 @@ if test "$PHP_MILTER" != "no"; then SAPI_MILTER_PATH=sapi/milter/php-milter PHP_BUILD_THREAD_SAFE - PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile.frag) + PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile.frag,$abs_srcdir/sapi/milter,sapi/milter) PHP_SELECT_SAPI(milter, program, php_milter.c getopt.c,,'$(SAPI_MILTER_PATH)') PHP_ADD_LIBRARY_WITH_PATH(milter, $MILTERPATH,) - BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" + BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_MILTER_PATH)" PHP_SUBST(SAPI_MILTER_PATH) PHP_SUBST(BUILD_MILTER) fi diff --git a/sapi/milter/php_milter.c b/sapi/milter/php_milter.c index 432fd806c..4a1170723 100644 --- a/sapi/milter/php_milter.c +++ b/sapi/milter/php_milter.c @@ -525,6 +525,10 @@ static sfsistat mlfi_close(SMFICTX *ctx) int status; TSRMLS_FETCH(); + if (!SG(sapi_started) && SUCCESS != php_request_startup(TSRMLS_C)) { + return ret; + } + /* call userland */ INIT_ZVAL(function_name); ZVAL_STRING(&function_name, "milter_close", 0); @@ -550,7 +554,7 @@ static sfsistat mlfi_close(SMFICTX *ctx) /* {{{ Milter entry struct */ -struct smfiDesc smfilter = { +static struct smfiDesc smfilter = { "php-milter", /* filter name */ SMFI_VERSION, /* version code -- leave untouched */ 0, /* flags */ @@ -1015,6 +1019,7 @@ int main(int argc, char *argv[]) tsrm_startup(1, 1, 0, NULL); + tsrm_ls = ts_resource(0); sapi_startup(&milter_sapi_module); while ((c=ap_php_getopt(argc, argv, OPTSTRING))!=-1) { @@ -1032,7 +1037,6 @@ int main(int argc, char *argv[]) milter_sapi_module.executable_location = argv[0]; - tsrm_ls = ts_resource(0); sapi_module.startup(&milter_sapi_module); |
