[patch] Fix ftpfs uploading behavior -rc1

Andrew V. Samoilov sav at it.efp.com.ua
Tue Mar 19 14:15:59 UTC 2002


Hello,
Pavel Machek wrote:
 > Hi!
 >
 >>I reworked ftpfs uploading patch and now I invite you to test it
 >>hardly.  There are 3 changed files and one new field (linear) in
 >>vfs_s_super structure.  This flag inform ftpfs_fh_open about ordered
 >>linear transfer in this ftp connection.  Now temporary file is used
 >>only if file is copied over ftpfs from ftp server to the same ftp
 >>server.  I think it is not good idea to open new control connection.
 >>
 >
 > Do you think linear field in vfs_s_super is right thing?
 >
 > It seems very wrong to me. That state is certainly not
 > per-superblock....
 >
 > 		 
					Pavel

I consider to rename this field to u.ftp.control_connection_buzy
or data_transfer and call MEDATA->linear_start in vfs_s_open
instead of vfs_s_read. Or even eliminate linear_* family and
handle O_LINEAR flag in fh_open/fh_close.  But this requires
changes not only in ftpfs.c but also in fish.c.


Index: direntry.c
===================================================================
RCS file: /cvs/gnome/mc/vfs/direntry.c,v
retrieving revision 1.40
diff -u -p -u -p -r1.40 direntry.c
--- direntry.c	6 Mar 2002 08:46:35 -0000	1.40
+++ direntry.c	15 Mar 2002 14:51:18 -0000
@@ -788,6 +788,10 @@ vfs_s_open (vfs *me, char *file, int fla

      if (IS_LINEAR(flags)) {
- 	fh->linear = LS_LINEAR_CLOSED;
+ 
print_vfs_message (_("Starting linear transfer..."));
+ 
if (!MEDATA->linear_start (me, FH, 0)){
+ 	    g_free(fh);
+ 	    return NULL;
+	}
      } else if ((MEDATA->fh_open) && (MEDATA->fh_open (me, fh, flags, 
mode))){
  	    g_free(fh);
  	    return NULL;
@@ -816,8 +817,10 @@ vfs_s_read (void *fh, char *buffer, int

-     if (FH->linear == LS_LINEAR_CLOSED){
-        print_vfs_message (_("Starting linear transfer..."));
- 
if (!MEDATA->linear_start (me, FH, 0))
- 	    return -1;
-     }
-
-     if (FH->linear == LS_LINEAR_CLOSED)
. . .

-- 
Regards,
Andrew V. Samoilov.





More information about the mc-devel mailing list