diff lib/sshv2.c @ 14:83090328581e

* More largefile support. Hopefully all that is left is the configure stuff * Sanity checking on the fdopen() calls. Also make sure that all of them have a + in their open mode. Doesn't affect UNIX, but it does affect Windows * HTTP fixes when running under Solaris. Read from request->sockfd and write to request->sockfd_write (Solaris doesn't like it when you read/write to the same FILE structure) * Display major/minor properly for a device when connected with the local protocol
author masneyb
date Wed, 04 Sep 2002 11:45:56 +0000
parents 8b1883341c6f
children c8ec7877432e
line wrap: on
line diff
--- a/lib/sshv2.c	Fri Aug 30 19:46:27 2002 +0000
+++ b/lib/sshv2.c	Wed Sep 04 11:45:56 2002 +0000
@@ -356,8 +356,23 @@
       g_free (args);
       g_free (exepath);
 
-      request->sockfd = request->datafd = fdopen (fdm, "rb");
-      request->sockfd_write = fdopen (fdm, "wb");
+      if ((request->sockfd = fdopen (fdm, "rb+")) == NULL)
+        {
+          request->logging_function (gftp_logging_error, request->user_data,
+                                     _("Cannot fdopen() socket: %s\n"),
+                                     g_strerror (errno));
+          close (fdm);
+          return (-2);
+        }
+
+      if ((request->sockfd_write = fdopen (fdm, "wb+")) == NULL)
+        {
+          request->logging_function (gftp_logging_error, request->user_data,
+                                     _("Cannot fdopen() socket: %s\n"),
+                                     g_strerror (errno));
+          gftp_disconnect (request);
+          return (-2);
+        }
 
       version = htonl (SSH_MY_VERSION);
       if (sshv2_send_command (request, SSH_FXP_INIT, (char *) &version, 4) < 0)
@@ -411,7 +426,7 @@
 			         _("Disconnecting from site %s\n"),
                                  request->hostname);
       fclose (request->sockfd);
-      request->sockfd = request->datafd = request->sockfd_write = NULL;
+      request->sockfd = request->sockfd_write = NULL;
     }
 
   if (params->message.buffer != NULL)
@@ -780,7 +795,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
 
   params = request->protocol_data;
   if (params->message.buffer != NULL)
@@ -1087,7 +1101,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
 
   params = request->protocol_data;
   if (request->directory != directory)
@@ -1157,7 +1170,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
 
   if (request->directory == NULL || *request->directory == '\0')
     dir = ".";
@@ -1219,7 +1231,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (directory != NULL, -2);
 
   params = request->protocol_data;
@@ -1277,7 +1288,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (file != NULL, -2);
 
   params = request->protocol_data;
@@ -1335,7 +1345,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (file != NULL, -2);
 
   params = request->protocol_data;
@@ -1400,7 +1409,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (newdir != NULL, -2);
 
   params = request->protocol_data;
@@ -1459,7 +1467,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (oldname != NULL, -2);
   g_return_val_if_fail (newname != NULL, -2);
 
@@ -1531,7 +1538,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (file != NULL, -2);
 
   params = request->protocol_data;
@@ -1599,7 +1605,6 @@
 
   g_return_val_if_fail (request != NULL, -2);
   g_return_val_if_fail (request->protonum == GFTP_SSHV2_NUM, -2);
-  g_return_val_if_fail (request->datafd != NULL, -2);
   g_return_val_if_fail (file != NULL, -2);
 
   params = request->protocol_data;