]> granicus.if.org Git - php/commitdiff
refactor _php_stream_fopen_{temporary_,tmp}file()
authorMichael Wallner <mike@php.net>
Wed, 2 Jul 2014 10:10:10 +0000 (12:10 +0200)
committerMichael Wallner <mike@php.net>
Thu, 3 Jul 2014 18:40:40 +0000 (20:40 +0200)
main/streams/plain_wrapper.c

index 5e9e5c7acea7a8353f70ebd6c65f67441072d96d..aba16ff8314a3e807a29019599df9e298597fe1c 100644 (file)
@@ -183,31 +183,20 @@ static php_stream *_php_stream_fopen_from_file_int(FILE *file, const char *mode
        return php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode);
 }
 
-PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, char **opened_path STREAMS_DC TSRMLS_DC)
+PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, char **opened_path_ptr STREAMS_DC TSRMLS_DC)
 {
-       int fd = php_open_temporary_fd(dir, pfx, opened_path TSRMLS_CC);
+       char *opened_path = NULL;
+       int fd;
 
+       fd = php_open_temporary_fd(dir, pfx, opened_path TSRMLS_CC);
        if (fd != -1)   {
-               php_stream *stream = php_stream_fopen_from_fd_int_rel(fd, "r+b", NULL);
-               if (stream) {
-                       return stream;
-               }
-               close(fd);
-
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to allocate stream");
-
-               return NULL;
-       }
-       return NULL;
-}
+               php_stream *stream;
 
-PHPAPI php_stream *_php_stream_fopen_tmpfile(int dummy STREAMS_DC TSRMLS_DC)
-{
-       char *opened_path = NULL;
-       int fd = php_open_temporary_fd(NULL, "php", &opened_path TSRMLS_CC);
+               if (opened_path_ptr) {
+                       *opened_path_ptr = opened_path;
+               }
 
-       if (fd != -1)   {
-               php_stream *stream = php_stream_fopen_from_fd_int_rel(fd, "r+b", NULL);
+               stream = php_stream_fopen_from_fd_int_rel(fd, "r+b", NULL);
                if (stream) {
                        php_stdio_stream_data *self = (php_stdio_stream_data*)stream->abstract;
                        stream->wrapper = &php_plain_files_wrapper;
@@ -227,6 +216,11 @@ PHPAPI php_stream *_php_stream_fopen_tmpfile(int dummy STREAMS_DC TSRMLS_DC)
        return NULL;
 }
 
+PHPAPI php_stream *_php_stream_fopen_tmpfile(int dummy STREAMS_DC TSRMLS_DC)
+{
+       return php_stream_fopen_temporary_file(NULL, "php", NULL);
+}
+
 PHPAPI php_stream *_php_stream_fopen_from_fd(int fd, const char *mode, const char *persistent_id STREAMS_DC TSRMLS_DC)
 {
        php_stream *stream = php_stream_fopen_from_fd_int_rel(fd, mode, persistent_id);