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