dmitry          Fri Aug 31 12:18:04 2007 UTC

  Modified files:              
    /php-src/sapi/cgi   cgi_main.c 
  Log:
  Fixed bug #42453 (CGI SAPI does not shut down cleanly with -i/-m/-v cmdline 
options)
  
  
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.330&r2=1.331&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.330 php-src/sapi/cgi/cgi_main.c:1.331
--- php-src/sapi/cgi/cgi_main.c:1.330   Wed Aug  8 23:55:42 2007
+++ php-src/sapi/cgi/cgi_main.c Fri Aug 31 12:18:04 2007
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.330 2007/08/08 23:55:42 stas Exp $ */
+/* $Id: cgi_main.c,v 1.331 2007/08/31 12:18:04 dmitry Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -1410,9 +1410,9 @@
                                        php_output_tearup();
                                        SG(headers_sent) = 1;
                                        php_cgi_usage(argv[0]);
-                                       php_output_teardown();
-                                       exit(1);
-                                       break;
+                                       php_output_end_all(TSRMLS_C);
+                                       exit_status = 0;
+                                       goto out;
                        }
                }
                php_optind = orig_optind;
@@ -1438,8 +1438,9 @@
                                        php_output_tearup();
                                        SG(headers_sent) = 1;
                                        php_printf("You cannot use both -n and 
-c switch. Use -h for help.\n");
-                                       php_output_teardown();
-                                       exit(1);
+                                       php_output_end_all(TSRMLS_C);
+                                       exit_status = 1;
+                                       goto out;
                                }
 
                                while ((c = php_getopt(argc, argv, OPTIONS, 
&php_optarg, &php_optind, 0)) != -1) {
@@ -1480,9 +1481,9 @@
                                                                
SG(request_info).no_headers = 1;
                                                        }
                                                        
php_print_info(0xFFFFFFFF TSRMLS_CC);
-                                                       php_output_teardown();
-                                                       exit(0);
-                                                       break;
+                                                       
php_request_shutdown((void *) 0);
+                                                       exit_status = 0;
+                                                       goto out;
 
                                        case 'l': /* syntax check mode */
                                                        no_headers = 1;
@@ -1497,9 +1498,9 @@
                                                        php_printf("\n[Zend 
Modules]\n");
                                                        
print_extensions(TSRMLS_C);
                                                        php_printf("\n");
-                                                       php_output_teardown();
-                                                       exit(0);
-                                                       break;
+                                                       
php_output_end_all(TSRMLS_C);
+                                                       exit_status = 0;
+                                                       goto out;
 
 #if 0 /* not yet operational, see also below ... */
                                        case '': /* generate indented source 
mode*/
@@ -1527,9 +1528,9 @@
 #else
                                                        php_printf("PHP %s (%s) 
(built: %s %s)\nCopyright (c) 1997-2007 The PHP Group\n%s", PHP_VERSION, 
sapi_module.name, __DATE__, __TIME__, get_zend_version());
 #endif
-                                                       php_output_teardown();
-                                                       exit(0);
-                                                       break;
+                                                       
php_request_shutdown((void *) 0);
+                                                       exit_status = 0;
+                                                       goto out;
 
                                        case 'w':
                                                        behavior = 
PHP_MODE_STRIP;
@@ -1802,6 +1803,7 @@
                exit_status = 255;
        } zend_end_try();
 
+out:
        SG(server_context) = NULL;
        php_module_shutdown(TSRMLS_C);
        sapi_shutdown();

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to