pollita         Thu Mar  4 17:24:27 2004 EDT

  Modified files:              
    /php-src/ext/ftp    ftp.c 
  Log:
  Don't rely on ANSI tmpfile(), use the streams layer instead, it'll deal with 
platform issues.
  
http://cvs.php.net/diff.php/php-src/ext/ftp/ftp.c?r1=1.100&r2=1.101&ty=u
Index: php-src/ext/ftp/ftp.c
diff -u php-src/ext/ftp/ftp.c:1.100 php-src/ext/ftp/ftp.c:1.101
--- php-src/ext/ftp/ftp.c:1.100 Sat Feb 21 14:37:37 2004
+++ php-src/ext/ftp/ftp.c       Thu Mar  4 17:24:27 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: ftp.c,v 1.100 2004/02/21 19:37:37 pollita Exp $ */
+/* $Id: ftp.c,v 1.101 2004/03/04 22:24:27 pollita Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1607,7 +1607,7 @@
 char**
 ftp_genlist(ftpbuf_t *ftp, const char *cmd, const char *path TSRMLS_DC)
 {
-       FILE            *tmpfp = NULL;
+       php_stream      *tmpstream = NULL;
        databuf_t       *data = NULL;
        char            *ptr;
        int             ch, lastch;
@@ -1618,7 +1618,7 @@
        char            *text;
 
 
-       if ((tmpfp = tmpfile()) == NULL) {
+       if ((tmpstream = php_stream_fopen_tmpfile()) == NULL) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create 
temporary file.  Check permissions in temporary files directory.");
                return NULL;
        }
@@ -1651,7 +1651,7 @@
                        goto bail;
                }
 
-               fwrite(data->buf, rcvd, 1, tmpfp);
+               php_stream_write(tmpstream, data->buf, rcvd);
 
                size += rcvd;
                for (ptr = data->buf; rcvd; rcvd--, ptr++) {
@@ -1666,11 +1666,7 @@
 
        ftp->data = data = data_close(ftp, data);
 
-       if (ferror(tmpfp)) {
-               goto bail;
-       }
-
-       rewind(tmpfp);
+       php_stream_rewind(tmpstream);
 
        ret = safe_emalloc((lines + 1), sizeof(char**), size * sizeof(char*));
 
@@ -1678,7 +1674,7 @@
        text = (char*) (ret + lines + 1);
        *entry = text;
        lastch = 0;
-       while ((ch = getc(tmpfp)) != EOF) {
+       while ((ch = php_stream_getc(tmpstream)) != EOF) {
                if (ch == '\n' && lastch == '\r') {
                        *(text - 1) = 0;
                        *++entry = text;
@@ -1689,10 +1685,7 @@
        }
        *entry = NULL;
 
-       if (ferror(tmpfp)) {
-               goto bail;
-       }
-       fclose(tmpfp);
+       php_stream_close(tmpstream);
 
        if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250)) {
                efree(ret);
@@ -1702,7 +1695,7 @@
        return ret;
 bail:
        ftp->data = data_close(ftp, data);
-       fclose(tmpfp);
+       php_stream_close(tmpstream);
        if (ret)
                efree(ret);
        return NULL;

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

Reply via email to