On Thu, Mar 07, 2002 at 05:45:08PM +0400, Walery Studennikov wrote: > On Wed, Mar 06, 2002 at 11:02:40AM +0200, Andrew V. Samoilov wrote: > > Hi! > > > > This patch fixes ftpfs uploading behavior. > > Now if file is opened for writting only it will be not retrieved > > to temporary file before uploading. > > > > This is first approximation. > > Test it carefully please. > > Probably, I've found a bug: > now I can't open file for edit via ftp - > MC hangs after downloading the file for editing. >
Fixed, see patch below (for patched ftpfs.c). Second approximation of this patch will be uploaded soon to http://www.linux.zp.ua/mc/ftpfs.upload.patch Also if your vfs/direntry.c is not from CVS, you need patch for this one 9 lines below. diff -u -p -u -p -r1.89 ftpfs.c --- ftpfs.c 2002/02/01 12:21:55 1.85 +++ ftpfs.c 2002/02/06 12:08:01 @@ -1691,7 +1723,7 @@ static int ftpfs_fh_open (vfs *me, vfs_s static int ftpfs_fh_close (vfs *me, vfs_s_fh *fh) { - if (fh->handle != -1){ + if (fh->handle != -1 && !fh->ino->localname){ close (fh->handle); fh->handle = -1; fh->changed = 0; --- vfs/direntry.c Tue Feb 19 10:59:23 2002 +++ vfs/direntry.c Wed Mar 6 10:46:35 2002 @@ -832,7 +826,7 @@ vfs_s_read (void *fh, char *buffer, int if (FH->linear == LS_LINEAR_OPEN) return MEDATA->linear_read (me, FH, buffer, count); - if (FH->handle){ + if (FH->handle != -1){ n = read (FH->handle, buffer, count); if (n < 0) me->verrno = errno; @@ -852,7 +846,7 @@ vfs_s_write (void *fh, char *buffer, int vfs_die ("no writing to linear files, please"); FH->changed = 1; - if (FH->handle){ + if (FH->handle != -1){ n = write (FH->handle, buffer, count); if (n < 0) me->verrno = errno; @@ -926,7 +920,7 @@ vfs_s_close (void *fh) } vfs_s_invalidate (me, FH_SUPER); } - if (FH->handle) + if (FH->handle != -1) close (FH->handle); vfs_s_free_inode (me, FH->ino); _______________________________________________ Mc-devel mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/mc-devel
