diff lib/sshv2.c @ 526:990088b18285

2004-8-9 Brian Masney <masneyb@gftp.org> * lib/config_file.c lib/options.h lib/rfc959.c - fixed warnings about unitialized members in the structure * lib/pty.c (gftp_exec) - setup stderr when running the program * lib/sshv2.c src/uicommon/gftpui.h - fixed signed/unsigned integer comparisions * lib/sshv2.c - added sshv2_copy_param_options() * src/gtk/options_dialog.c - compile fix when compiling against GTK+ 1.2
author masneyb
date Tue, 10 Aug 2004 01:55:53 +0000
parents 7262851e3ae8
children d32b05e07284
line wrap: on
line diff
--- a/lib/sshv2.c	Sun Aug 01 11:03:39 2004 +0000
+++ b/lib/sshv2.c	Tue Aug 10 01:55:53 2004 +0000
@@ -1700,7 +1700,7 @@
                      mode_t * mode)
 {
   gftp_file fle;
-  mode_t ret;
+  int ret;
 
   memset (&fle, 0, sizeof (fle));
   ret = sshv2_send_stat_command (request, filename, &fle);
@@ -2041,6 +2041,43 @@
 }
 
 
+static void
+sshv2_copy_message (sshv2_message * src_message, sshv2_message * dest_message)
+{
+  dest_message->length = src_message->length;
+  dest_message->command = src_message->command;
+  dest_message->buffer = g_strdup (src_message->buffer);
+  dest_message->pos = dest_message->buffer + (src_message->pos - src_message->buffer);
+  dest_message->end = dest_message->buffer + (src_message->end - src_message->buffer);
+}
+
+
+static void
+sshv2_copy_param_options (gftp_request * dest_request,
+                          gftp_request * src_request)
+{ 
+  sshv2_params * dparms, * sparms;
+  
+  dparms = dest_request->protocol_data;
+  sparms = src_request->protocol_data;
+
+  memcpy (dparms->handle, sparms->handle, sizeof (*dparms->handle));
+  if (sparms->read_buffer)
+    dparms->read_buffer = g_strdup (sparms->read_buffer);
+  else
+    dparms->read_buffer = NULL;
+
+  sshv2_copy_message (&sparms->message, &dparms->message);
+
+  dparms->id = sparms->id;
+  dparms->count = sparms->count;
+  dparms->handle_len = sparms->handle_len;
+  dparms->initialized = sparms->initialized;
+  dparms->dont_log_status = sparms->dont_log_status;
+  dparms->offset = sparms->offset;
+}
+
+
 int
 sshv2_init (gftp_request * request)
 {
@@ -2050,7 +2087,7 @@
 
   request->protonum = GFTP_SSHV2_NUM;
   request->init = sshv2_init;
-  request->copy_param_options = NULL;
+  request->copy_param_options = sshv2_copy_param_options;
   request->destroy = sshv2_destroy;
   request->read_function = gftp_fd_read;
   request->write_function = gftp_fd_write;