]> granicus.if.org Git - php/commitdiff
applied Luca Montecchiani's win32 fixes (open files in binary mode
authorAndrew Skalski <askalski@php.net>
Mon, 22 May 2000 21:16:58 +0000 (21:16 +0000)
committerAndrew Skalski <askalski@php.net>
Mon, 22 May 2000 21:16:58 +0000 (21:16 +0000)
using the "b" fopen flag, and use closesocket rather than close
when closing sockets)

ext/ftp/ftp.c
ext/ftp/php_ftp.c

index 98605d1e0eafc48cdd07b78d5e39c86ffd5dcf17..fa167a62d829ec2ae5b8c2113563fda8f3d568cc 100644 (file)
 
 #include "ftp.h"
 
+/* define closesocket macro for portability */
+#if !defined(WIN32) && !defined(WINNT)
+#undef closesocket
+#define closesocket close
+#endif
+
 /* sends an ftp command, returns true on success, false on error.
  * it sends the string "cmd args\r\n" if args is non-null, or
  * "cmd\r\n" if args is null
@@ -156,7 +162,7 @@ ftp_open(const char *host, short port)
 
 bail:
        if (fd != -1)
-               close(fd);
+               closesocket(fd);
        free(ftp);
        return NULL;
 }
@@ -168,7 +174,7 @@ ftp_close(ftpbuf_t *ftp)
        if (ftp == NULL)
                return NULL;
        if (ftp->fd != -1)
-               close(ftp->fd);
+               closesocket(ftp->fd);
        ftp_gc(ftp);
        free(ftp);
        return NULL;
@@ -981,7 +987,7 @@ ftp_getdata(ftpbuf_t *ftp)
                        sizeof(ftp->pasvaddr)) == -1)
                {
                        perror("connect");
-                       close(fd);
+                       closesocket(fd);
                        free(data);
                        return NULL;
                }
@@ -1034,7 +1040,7 @@ ftp_getdata(ftpbuf_t *ftp)
 
 bail:
        if (fd != -1)
-               close(fd);
+               closesocket(fd);
        free(data);
        return NULL;
 }
@@ -1051,7 +1057,7 @@ data_accept(databuf_t *data)
 
        size = sizeof(addr);
        data->fd = my_accept(data->listener, (struct sockaddr*) &addr, &size);
-       close(data->listener);
+       closesocket(data->listener);
        data->listener = -1;
 
        if (data->fd == -1) {
@@ -1069,9 +1075,9 @@ data_close(databuf_t *data)
        if (data == NULL)
                return NULL;
        if (data->listener != -1)
-               close(data->listener);
+               closesocket(data->listener);
        if (data->fd != -1)
-               close(data->fd);
+               closesocket(data->fd);
        free(data);
        return NULL;
 }
index 4f967d1ee0d0d31e5583e4ed17ad64f63e0bc372..e76f3c7096bad6a9edbe55d216ccafa379cd9636 100644 (file)
@@ -551,7 +551,11 @@ PHP_FUNCTION(ftp_get)
                RETURN_FALSE;
        }
 
+#if defined(WIN32) || defined(WINNT)
+       if ((outfp = V_FOPEN(arg2->value.str.val, "wb")) == NULL) {
+#else
        if ((outfp = V_FOPEN(arg2->value.str.val, "w")) == NULL) {
+#endif
                fclose(tmpfp);
                php_error(E_WARNING, "error opening %s", arg2->value.str.val);
                RETURN_FALSE;
@@ -635,7 +639,11 @@ PHP_FUNCTION(ftp_put)
        convert_to_string(arg3);
        XTYPE(xtype, arg4);
 
+#if defined(WIN32) || defined(WINNT)
+       if ((infp = V_FOPEN(arg3->value.str.val, "rb")) == NULL) {
+#else
        if ((infp = V_FOPEN(arg3->value.str.val, "r")) == NULL) {
+#endif
                php_error(E_WARNING, "error opening %s", arg3->value.str.val);
                RETURN_FALSE;
        }