diff lib/misc.c @ 41:4bcfaf6307b5

2002-10-29 Brian Masney <masneyb@gftp.org> * lib/config_file.c lib/gftp.h lib/options.h src/gtk/menu-items.c src/gtk/view_dialog.c - removed tmp_directory variable. Instead use g_get_tmp_dir () * lib/gftp.h (struct gftp_request) - added int cancel : 1 * lib/misc.c lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/ssh.c lib/sshv2.c - check for interrupted signal calls * lib/protocols.c - added gftp_fgets() and gftp_fwrite() functions * src/gtk/delete_dialog.c src/gtk/misc-gtk.c src/gtk/transfer.c - use g_main_context_iteration in GTK+ 2.0 port * src/gtk/misc-gtk.c - use g_object_unref instead of gdk_drawable_unref in GTK+ 2.0 port
author masneyb
date Wed, 30 Oct 2002 02:53:21 +0000
parents 474d562c7268
children a12bcbc2fce4
line wrap: on
line diff
--- a/lib/misc.c	Fri Oct 18 02:53:52 2002 +0000
+++ b/lib/misc.c	Wed Oct 30 02:53:21 2002 +0000
@@ -864,6 +864,7 @@
       return (NULL);
     }
 
+  errno = 0;
   while (1)
     {
       FD_ZERO (&rdfds);
@@ -872,7 +873,7 @@
       tv.tv_usec = 0;
       if (select (fd + 1, &rdfds, NULL, NULL, &tv) < 0)
         {
-          if (errno == EINTR)
+          if (errno == EINTR && !request->cancel)
             continue;
           ok = 0;
           break;
@@ -880,7 +881,7 @@
 
       if ((rd = read (fd, tempstr + diff, rem - 1)) < 0)
         {
-          if (errno == EINTR)
+          if (errno == EINTR && !request->cancel)
             continue;
           ok = 0;
           break;