diff src/gtk/transfer.c @ 56:a12bcbc2fce4

2002-11-11 Brian Masney <masneyb@gftp.org> * src/gtk/dnd.c - fixes to DnD code * src/gtk/gftp-gtk.[ch] - added main_thread_id variable * src/gtk/misc-gtk.c (ftp_log) - don't check the user_data to see if we're in a child thread, instead compare the value of pthread_self() with main_thread_id * src/gtk/chmod_dialog.c src/gtk/delete_dialog.c src/gtk/menu-items.c src/gtk/mkdir_dialog.c src/gtk/rename_dialog.c src/gtk/transfer.c - don't set user_data to 0x1 if we're in a child thread * lib/gftp.h src/gtk/misc-gtk.c src/text/gftp-text.c - make r_getservbyname() available even if HAVE_GERADDRINFO is defined * lib/misc.c (make_ssh_exec_args) - if port is zero, lookup the default port for the ssh service * lib/protocols.c (gftp_connect_server) - if the port is zero, store the default port for that protocol there * src/gtk/transfer.c - added function update_window_transfer_bytes(). Be able to update the directory download progress in window1 now * lib/config_file.c lib/misc.c lib/protocols.c lib/ssh.c lib/sshv2.c src/text/gftp-text.c - use g_strdup() instead of g_strconcat() where needed
author masneyb
date Mon, 11 Nov 2002 23:16:12 +0000
parents 0fec02fb9e54
children c01d91c10f6c
line wrap: on
line diff
--- a/src/gtk/transfer.c	Mon Nov 11 11:20:13 2002 +0000
+++ b/src/gtk/transfer.c	Mon Nov 11 23:16:12 2002 +0000
@@ -79,7 +79,6 @@
   GList * files;
 
   request = data;
-  request->user_data = (void *) 0x1;
   
   if (request->use_threads)
     {
@@ -97,7 +96,6 @@
           if (request->use_threads)
             use_jmp_environment = 0;
 
-          request->user_data = NULL;
           request->stopable = 0;
           if (request->wakeup_main_thread[1] > 0)
             write (request->wakeup_main_thread[1], " ", 1);
@@ -128,7 +126,6 @@
           if (request->use_threads)
             use_jmp_environment = 0;
 
-          request->user_data = NULL;
           request->stopable = 0;
           if (request->wakeup_main_thread[1] > 0)
             write (request->wakeup_main_thread[1], " ", 1);
@@ -152,7 +149,6 @@
         }
     }
 
-  request->user_data = NULL;
   if (request->use_threads)
     use_jmp_environment = 0;
 
@@ -245,7 +241,6 @@
   int ret, sj;
 
   request = data;
-  request->user_data = (void *) 0x1;
 
   conn_num = 0;
   if (request->use_threads)
@@ -286,7 +281,6 @@
   if (request->use_threads)
     use_jmp_environment = 0;
 
-  request->user_data = NULL;
   request->stopable = 0;
   if (request->wakeup_main_thread[1] > 0)
     write (request->wakeup_main_thread[1], " ", 1);
@@ -514,9 +508,6 @@
   int success, sj;
 
   transfer = data;
-  transfer->fromreq->user_data = (void *) 0x01;
-  if (transfer->toreq)
-    transfer->toreq->user_data = (void *) 0x01;
 
   if (transfer->fromreq->use_threads || 
       (transfer->toreq && transfer->toreq->use_threads))
@@ -544,9 +535,6 @@
       (transfer->toreq && transfer->toreq->use_threads))
     use_jmp_environment = 0;
 
-  transfer->fromreq->user_data = NULL;
-  if (transfer->toreq)
-    transfer->toreq->user_data = NULL;
   transfer->fromreq->stopable = 0;
   return ((void *) success);
 }
@@ -753,8 +741,6 @@
 
   pthread_detach (pthread_self ());
   transfer = data;
-  transfer->fromreq->user_data = (void *) 0x1;
-  transfer->toreq->user_data = (void *) 0x1;
   transfer->curfle = transfer->files;
   gettimeofday (&transfer->starttime, NULL);
   memcpy (&transfer->lasttime, &transfer->starttime, 
@@ -979,8 +965,6 @@
       transfer->toreq->cancel = 0;
     }
   transfer->done = 1; 
-  transfer->fromreq->user_data = NULL;
-  transfer->toreq->user_data = NULL;
   return (NULL);
 }
 
@@ -1423,7 +1407,7 @@
   tdata = node->data;
   if (tdata->started)
     {
-      fromreq = ((gftp_window_data *) tdata->fromwdata)->request;
+      fromreq = tdata->fromwdata != NULL ? ((gftp_window_data *) tdata->fromwdata)->request : NULL;
       if (!tdata->fromreq->stopable && tdata->fromwdata &&
           ((fromreq->sockfd == NULL && fromreq->cached) ||
            fromreq->always_connected) && tdata->fromreq->sockfd != NULL &&
@@ -1581,32 +1565,41 @@
     gtk_ctree_node_set_text (GTK_CTREE (dlwdw), tempfle->node, 1, dlstr);
 }
 
+static void
+update_window_transfer_bytes (gftp_window_data * wdata)
+{
+  char *tempstr, *temp1str;
+
+  if (wdata->request->gotbytes == -1)
+    {
+      update_window_info ();
+      wdata->request->gotbytes = 0;
+    }
+  else
+    {
+      tempstr = insert_commas (wdata->request->gotbytes, NULL, 0);
+      temp1str = g_strdup_printf (_("Retrieving file names...%s bytes"), 
+                                  tempstr);
+      gtk_label_set (GTK_LABEL (wdata->hoststxt), temp1str);
+      g_free (tempstr);
+      g_free (temp1str);
+    }
+}
+
 
 gint
 update_downloads (gpointer data)
 {
-  char tempstr[50], temp1str[127];
   GList * templist, * next;
   gftp_transfer * tdata;
 
   if (file_transfer_logs != NULL)
     display_cached_logs ();
 
+  if (window1.request->gotbytes != 0)
+    update_window_transfer_bytes (&window1);
   if (window2.request->gotbytes != 0)
-    {
-      if (window2.request->gotbytes == -1)
-	{
-	  update_window_info ();
-	  window2.request->gotbytes = 0;
-	}
-      else
-	{
-	  insert_commas (window2.request->gotbytes, tempstr, sizeof (tempstr));
-          g_snprintf (temp1str, sizeof (temp1str),
-	              _("Retrieving file names...%s bytes"), tempstr);
-	  gtk_label_set (GTK_LABEL (window2.hoststxt), temp1str);
-	}
-    }
+    update_window_transfer_bytes (&window2);
 
   if (viewedit_process_done)
     check_done_process ();