tony2001                Wed Feb 21 21:57:22 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/main       php_streams.h 
    /php-src/main/streams       plain_wrapper.c streams.c 
    /php-src/sapi/cli   php_cli.c 
  Log:
  MFH: implement PHP_STREAM_FLAG_NO_CLOSE and avoid hacks
  
  
http://cvs.php.net/viewvc.cgi/php-src/main/php_streams.h?r1=1.103.2.1.2.1&r2=1.103.2.1.2.2&diff_format=u
Index: php-src/main/php_streams.h
diff -u php-src/main/php_streams.h:1.103.2.1.2.1 
php-src/main/php_streams.h:1.103.2.1.2.2
--- php-src/main/php_streams.h:1.103.2.1.2.1    Mon Jan  1 09:36:11 2007
+++ php-src/main/php_streams.h  Wed Feb 21 21:57:21 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_streams.h,v 1.103.2.1.2.1 2007/01/01 09:36:11 sebastian Exp $ */
+/* $Id: php_streams.h,v 1.103.2.1.2.2 2007/02/21 21:57:21 tony2001 Exp $ */
 
 #ifndef PHP_STREAMS_H
 #define PHP_STREAMS_H
@@ -178,6 +178,8 @@
  * might otherwise cause the read to block for much longer than
  * is strictly required. */
 #define PHP_STREAM_FLAG_AVOID_BLOCKING                         16
+
+#define PHP_STREAM_FLAG_NO_CLOSE                                       32
        
 struct _php_stream  {
        php_stream_ops *ops;
http://cvs.php.net/viewvc.cgi/php-src/main/streams/plain_wrapper.c?r1=1.52.2.6.2.15&r2=1.52.2.6.2.16&diff_format=u
Index: php-src/main/streams/plain_wrapper.c
diff -u php-src/main/streams/plain_wrapper.c:1.52.2.6.2.15 
php-src/main/streams/plain_wrapper.c:1.52.2.6.2.16
--- php-src/main/streams/plain_wrapper.c:1.52.2.6.2.15  Tue Feb 13 23:39:14 2007
+++ php-src/main/streams/plain_wrapper.c        Wed Feb 21 21:57:21 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: plain_wrapper.c,v 1.52.2.6.2.15 2007/02/13 23:39:14 iliaa Exp $ */
+/* $Id: plain_wrapper.c,v 1.52.2.6.2.16 2007/02/21 21:57:21 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -392,16 +392,7 @@
                                data->file = NULL;
                        }
                } else if (data->fd != -1) {
-#if PHP_DEBUG
-                       if ((data->fd == 1 || data->fd == 2) && 0 == 
strcmp(sapi_module.name, "cli")) {
-                               /* don't close stdout or stderr in CLI in DEBUG 
mode, as we want to see any leaks */
-                               ret = 0;
-                       } else {
-                               ret = close(data->fd);
-                       }
-#else
                        ret = close(data->fd);
-#endif
                        data->fd = -1;
                } else {
                        return 0; /* everything should be closed already -> 
success */
http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.82.2.6.2.10&r2=1.82.2.6.2.11&diff_format=u
Index: php-src/main/streams/streams.c
diff -u php-src/main/streams/streams.c:1.82.2.6.2.10 
php-src/main/streams/streams.c:1.82.2.6.2.11
--- php-src/main/streams/streams.c:1.82.2.6.2.10        Mon Jan 15 17:07:07 2007
+++ php-src/main/streams/streams.c      Wed Feb 21 21:57:21 2007
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: streams.c,v 1.82.2.6.2.10 2007/01/15 17:07:07 tony2001 Exp $ */
+/* $Id: streams.c,v 1.82.2.6.2.11 2007/02/21 21:57:21 tony2001 Exp $ */
 
 #define _GNU_SOURCE
 #include "php.h"
@@ -279,6 +279,10 @@
        int preserve_handle = close_options & PHP_STREAM_FREE_PRESERVE_HANDLE ? 
1 : 0;
        int release_cast = 1;
 
+       if (stream->flags & PHP_STREAM_FLAG_NO_CLOSE) {
+               preserve_handle = 1;
+       }
+
 #if STREAM_DEBUG
 fprintf(stderr, "stream_free: %s:%p[%s] in_free=%d opts=%08x\n", 
stream->ops->label, stream, stream->orig_path, stream->in_free, close_options);
 #endif
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/php_cli.c?r1=1.129.2.13.2.14&r2=1.129.2.13.2.15&diff_format=u
Index: php-src/sapi/cli/php_cli.c
diff -u php-src/sapi/cli/php_cli.c:1.129.2.13.2.14 
php-src/sapi/cli/php_cli.c:1.129.2.13.2.15
--- php-src/sapi/cli/php_cli.c:1.129.2.13.2.14  Tue Feb 20 19:20:41 2007
+++ php-src/sapi/cli/php_cli.c  Wed Feb 21 21:57:21 2007
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_cli.c,v 1.129.2.13.2.14 2007/02/20 19:20:41 tony2001 Exp $ */
+/* $Id: php_cli.c,v 1.129.2.13.2.15 2007/02/21 21:57:21 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -476,6 +476,12 @@
        s_out = php_stream_open_wrapper_ex("php://stdout", "wb", 0, NULL, 
sc_out);
        s_err = php_stream_open_wrapper_ex("php://stderr", "wb", 0, NULL, 
sc_err);
 
+#if PHP_DEBUG
+       /* do not close stdout and stderr */
+       s_out->flags |= PHP_STREAM_FLAG_NO_CLOSE;
+       s_err->flags |= PHP_STREAM_FLAG_NO_CLOSE;
+#endif
+
        if (s_in==NULL || s_out==NULL || s_err==NULL) {
                FREE_ZVAL(zin);
                FREE_ZVAL(zout);

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

Reply via email to