MD5 c0465a6e318d1a1a11c6c322288df990 files/lftp-3.4.6-nossl.patch 660
RMD160 f4c56f2fe7c491a9344e1b95785231957efb2711 files/lftp-3.4.6-nossl.patch 660
SHA256 61f79d13b5c2f0cdb7abd300486396a39458192cd71b1a61c799afda1508d1fe files/lftp-3.4.6-nossl.patch 660
+AUX lftp-3.5.10-time-mdtm.patch 12072 RMD160 e40d458309602d09a7ae797c38a9d7c3c1f944cc SHA1 779618483e4583414679e19921b4ca8ae5bb0f70 SHA256 be18b8cb918e0f7ce6656abf92caee013f80dbf6855e084b5bb99888fb640602
+MD5 62e34f35776b76863d11687eeaa74c5f files/lftp-3.5.10-time-mdtm.patch 12072
+RMD160 e40d458309602d09a7ae797c38a9d7c3c1f944cc files/lftp-3.5.10-time-mdtm.patch 12072
+SHA256 be18b8cb918e0f7ce6656abf92caee013f80dbf6855e084b5bb99888fb640602 files/lftp-3.5.10-time-mdtm.patch 12072
DIST lftp-3.4.6.tar.gz 1735847 RMD160 801b1c0f8b68e3f5917fd59ba6d80f3f64c38a8f SHA1 f438dfd390c8613776cddb109f4132f81c5c841e SHA256 6731d4b40ca694a8505d16004575ff74205e83d7456c828915cf94e7b73aa8d3
-DIST lftp-3.5.4.tar.bz2 1320471 RMD160 bfa694c29623f4519f1f11b6137cefc703f3f7b4 SHA1 19de42de97c7737cb7a169224b3778601902afc3 SHA256 94e599136235023d6c0d7b971d6602f08c1cfc93c8c5dc05880b4c3f67f725a1
-DIST lftp-3.5.6.tar.bz2 1325232 RMD160 e6005b5385dd1ca7818322121a99895cc06c4ecf SHA1 ca28df9b2bb1db37a295db56015a1b082d9bc60d SHA256 3c91fe25e440bcb704b73bbfe1cde67cf72780627394a8c5f038f4b44eed35a8
-DIST lftp-3.5.7.tar.bz2 1293219 RMD160 ba04bc2b98aa4831aa6f509c7e415d2a656343c6 SHA1 06e225e54856609b45738277334b9892f4b3eb8e SHA256 cb37e3ff31e41606e924fc4e656cc36e31fb6eb626105b26a0a709c365851df6
+DIST lftp-3.5.10.tar.bz2 1328779 RMD160 e52cadfa18c9f40bb57a847f99d07d4c7b5ec55f SHA1 4f2b26ce51356f91278ea0429ac342881a1c6d7f SHA256 aa5572d37dc823abd929bf41bd44c7cd54eb8ecfbb4d8833a7275afad5ea5b9f
DIST lftp-3.5.9.tar.bz2 1291792 RMD160 669b11f06b59b43be4cdd2506484141adb1255b0 SHA1 ce4f7abb5a74e90218bb2ee94170ace747025298 SHA256 f1960226d87b97a7bf0d81503adae365846f69f8ee6edacac8ff63524fcd1cd3
EBUILD lftp-3.4.6.ebuild 1865 RMD160 56212e69846191d7bf5997fd207cbc4c321e00ee SHA1 7bbac132d3d6b06155b4c29e8f4131db86c6e889 SHA256 64a9157fa9eddc1e5584bef05b04fd5eb7359cd1a2f3f22661130d52088f4816
MD5 4ee567d6f8ca822fa55ac31f42850a04 lftp-3.4.6.ebuild 1865
RMD160 56212e69846191d7bf5997fd207cbc4c321e00ee lftp-3.4.6.ebuild 1865
SHA256 64a9157fa9eddc1e5584bef05b04fd5eb7359cd1a2f3f22661130d52088f4816 lftp-3.4.6.ebuild 1865
-EBUILD lftp-3.5.4.ebuild 1701 RMD160 acabddafab68c19c9fba084312a2bab27761824c SHA1 bad67e9417df0095ed3cefec321606dd4efb6dfc SHA256 f750c1da2699f3040e9ca6ff0cdea709455e0b049a572a22c62dca84ad7f1fad
-MD5 4b93e81c0a1060396f893812954d9618 lftp-3.5.4.ebuild 1701
-RMD160 acabddafab68c19c9fba084312a2bab27761824c lftp-3.5.4.ebuild 1701
-SHA256 f750c1da2699f3040e9ca6ff0cdea709455e0b049a572a22c62dca84ad7f1fad lftp-3.5.4.ebuild 1701
-EBUILD lftp-3.5.6.ebuild 1715 RMD160 e999fd0e88e57df587d0c6c73b786b20580e80e9 SHA1 84a55078a5fabc651d5a42a301c385b26fb1ab26 SHA256 99abd7b2cf06aacf3342971666bd003529d94971ba5cc36c690036be8fd9bb63
-MD5 df88a9e0ffdf521835786e7bb37a0a5e lftp-3.5.6.ebuild 1715
-RMD160 e999fd0e88e57df587d0c6c73b786b20580e80e9 lftp-3.5.6.ebuild 1715
-SHA256 99abd7b2cf06aacf3342971666bd003529d94971ba5cc36c690036be8fd9bb63 lftp-3.5.6.ebuild 1715
-EBUILD lftp-3.5.7.ebuild 1715 RMD160 1df0ae975a7a01a3bd014767bd1b486075f8de37 SHA1 a1b3c39ab4a311850b7a6421e7d2373f69ba2b90 SHA256 e0352479d144c01b120ca6515399b1a2b0f345c1c452d4506285d3879cacff74
-MD5 c350a1a3f54261de62a8e1f6b86f609c lftp-3.5.7.ebuild 1715
-RMD160 1df0ae975a7a01a3bd014767bd1b486075f8de37 lftp-3.5.7.ebuild 1715
-SHA256 e0352479d144c01b120ca6515399b1a2b0f345c1c452d4506285d3879cacff74 lftp-3.5.7.ebuild 1715
+EBUILD lftp-3.5.10.ebuild 1805 RMD160 0207d9a45d289b9e499659ced33ed60545c1a82e SHA1 38ba182cca19a3d4455bd4bd5c9fd20f0056a16b SHA256 1d543df7651e0a2520ed9273a6826f270de38fd12eefbb9806ee6484f3c8291f
+MD5 e8d600439e394b94449c741d2a43e16f lftp-3.5.10.ebuild 1805
+RMD160 0207d9a45d289b9e499659ced33ed60545c1a82e lftp-3.5.10.ebuild 1805
+SHA256 1d543df7651e0a2520ed9273a6826f270de38fd12eefbb9806ee6484f3c8291f lftp-3.5.10.ebuild 1805
EBUILD lftp-3.5.9.ebuild 1715 RMD160 eb3368b721dfcf9c18733307eefd5c29bc41ae9a SHA1 c7be2882a9e34528256513e28c01b74703226bb0 SHA256 0f65afb27c4bafd2920a096742df86d2b6b95a82e54f9d2eb75a8c59cb7b1941
MD5 1e3a64da884db95c9fb05f766d1201bb lftp-3.5.9.ebuild 1715
RMD160 eb3368b721dfcf9c18733307eefd5c29bc41ae9a lftp-3.5.9.ebuild 1715
SHA256 0f65afb27c4bafd2920a096742df86d2b6b95a82e54f9d2eb75a8c59cb7b1941 lftp-3.5.9.ebuild 1715
-MISC ChangeLog 19345 RMD160 f387725d5174386fa4f2850dc03dd2c48ab27039 SHA1 60f1ab2bc88ef2fe6b1ef47d2bfde74a5417458b SHA256 836a90b2f3a6274d9b9d605e8ae5671882bc2d05a96f5f368218ee0cc9bfedcb
-MD5 79b791fe1e3a040ede8ba81534a0db73 ChangeLog 19345
-RMD160 f387725d5174386fa4f2850dc03dd2c48ab27039 ChangeLog 19345
-SHA256 836a90b2f3a6274d9b9d605e8ae5671882bc2d05a96f5f368218ee0cc9bfedcb ChangeLog 19345
+MISC ChangeLog 19585 RMD160 faee46e6f5df3e01eeb86ddbbd31329079dccebf SHA1 bd1c8ce9bec255515b91c6b518b269317e46a3c8 SHA256 defc15cea538f728c6a8e9999ba7085b92c0728b21b5d80957be4c8d65e14934
+MD5 9863c9edeb32e32e4f4a3576bbbea94d ChangeLog 19585
+RMD160 faee46e6f5df3e01eeb86ddbbd31329079dccebf ChangeLog 19585
+SHA256 defc15cea538f728c6a8e9999ba7085b92c0728b21b5d80957be4c8d65e14934 ChangeLog 19585
MISC metadata.xml 430 RMD160 e522bf2928ed5c97a1e41a3443c6c26ba64847cd SHA1 0c992ae070f385380005c35321070c3c5d318eb9 SHA256 bd840a8fc0f6882e2fc2fc80aa4b3ba5a7a1b22a296d998c368ed5628baf3b82
MD5 bd30469259dd912781df916084edcacd metadata.xml 430
RMD160 e522bf2928ed5c97a1e41a3443c6c26ba64847cd metadata.xml 430
MD5 3521cb857ca543b1c9346c9474bb6253 files/digest-lftp-3.4.6 235
RMD160 88fa9abdddd8dda1c30a4dfb4e06ddb662dc694e files/digest-lftp-3.4.6 235
SHA256 371a5c09ffb0e66d03379735df8c510e0dbbde4ea78072a093950f24bf8c3759 files/digest-lftp-3.4.6 235
-MD5 ed1eddd307704526103d03ba4f29bef8 files/digest-lftp-3.5.4 238
-RMD160 c7b8b67fb20ced66cf763a0ca550a1a2a11996fe files/digest-lftp-3.5.4 238
-SHA256 5bf7db5a2dac096cccd94bd4d5bd4580aceff2e07205da652451f8a7402352ba files/digest-lftp-3.5.4 238
-MD5 cc2cdf271d2a10372acef89fb1e9fa27 files/digest-lftp-3.5.6 238
-RMD160 c607033388cc0e85b818640cab61c85ad2476dc0 files/digest-lftp-3.5.6 238
-SHA256 7cc5931cdcc3a2af0e292cbaf7d26316cf756082c25a57efb67021ca21cf4c6b files/digest-lftp-3.5.6 238
-MD5 9b80a875a4a879fad6e98d06b4a791b6 files/digest-lftp-3.5.7 238
-RMD160 b812cc609d0f3a072e64987184199bbc06610c46 files/digest-lftp-3.5.7 238
-SHA256 fae27d80b3f308529f5356c2e7a6d32cecd7a5e5e042c26a35d0289ced7c3d43 files/digest-lftp-3.5.7 238
+MD5 2df363acd5459310df757f0002543fe6 files/digest-lftp-3.5.10 241
+RMD160 c53b7c55bb8adad48c0be3b16b55b4f98d5fca97 files/digest-lftp-3.5.10 241
+SHA256 668797d9112251f23c2d597eb30c5ee3de876ac6eca8dc2963def441d0503e92 files/digest-lftp-3.5.10 241
MD5 7262d51f131d033280986bedab314b16 files/digest-lftp-3.5.9 238
RMD160 1f27ce4d4b1e3e27fe68939b38918430ab09725a files/digest-lftp-3.5.9 238
SHA256 fce04ccc3bd05dbd6e2cc24bc6a5561efd76d3a6b62371107597066b879f198b files/digest-lftp-3.5.9 238
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.2 (GNU/Linux)
-iD8DBQFF2UmKmdTrptrqvGERAscLAJ9BHPoq0Yjd3MPzR5P9vIFT5nJwqACfRbns
-blloQHVsF7nkEUtmzgR+W3Y=
-=yVCs
+iD8DBQFGFakBmdTrptrqvGERAnJhAKCGTOW/rHjGbuqM+cyoLYUlFgM1tQCggr6F
+8R15U1iU+GyjHdA6IaYb9y0=
+=k2NH
-----END PGP SIGNATURE-----
--- /dev/null
+Index: ChangeLog
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/ChangeLog,v
+retrieving revision 1.1062.2.7
+diff -u -p -r1.1062.2.7 ChangeLog
+--- ChangeLog 26 Mar 2007 07:26:13 -0000 1.1062.2.7
++++ ChangeLog 5 Apr 2007 13:10:40 -0000
+@@ -1,3 +1,10 @@
++2007-04-05 Alexander V. Lukyanov <lav@yars.free.net>
++
++ * FileAccess.h, FileCopy.cc, FileCopy.h, FileSet.cc, FileSet.h,
++ FileSetOutput.cc, Filter.cc, Filter.h, MirrorJob.cc, NetAccess.cc:
++ (FileTimestamp) new struct; use it where needed; submit even
++ imprecise timestamp from MirrorJob to CopyJob.
++
+ 2007-03-26 Alexander V. Lukyanov <lav@yars.free.net>
+
+ * LocalAccess.cc: prevent double-delete of args in LocalDirList
+Index: FileAccess.h
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileAccess.h,v
+retrieving revision 1.93
+diff -u -p -r1.93 FileAccess.h
+--- FileAccess.h 27 Jul 2006 07:22:39 -0000 1.93
++++ FileAccess.h 5 Apr 2007 13:10:04 -0000
+@@ -43,10 +43,6 @@
+ #include "FileSet.h"
+ #include "LsCache.h"
+
+-#define NO_SIZE ((off_t)-1L)
+-#define NO_SIZE_YET ((off_t)-2L)
+-#define NO_DATE ((time_t)-1L)
+-#define NO_DATE_YET ((time_t)-2L)
+ #define FILE_END ((off_t)-1L)
+ #define UNKNOWN_POS ((off_t)-1L)
+
+@@ -143,7 +139,7 @@ protected:
+ off_t real_pos;
+ off_t limit;
+
+- time_t *opt_date;
++ FileTimestamp *opt_date;
+ off_t *opt_size;
+
+ static void NonBlock(int fd);
+@@ -248,7 +244,7 @@ public:
+ void SetLimit(off_t lim) { limit=lim; }
+ void SetSize(off_t s) { entity_size=s; }
+ void SetDate(time_t d) { entity_date=d; }
+- void WantDate(time_t *d) { opt_date=d; }
++ void WantDate(FileTimestamp *d) { opt_date=d; }
+ void WantSize(off_t *s) { opt_size=s; }
+ void AsciiTransfer() { ascii=true; }
+ virtual void Close();
+Index: FileCopy.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileCopy.cc,v
+retrieving revision 1.126
+diff -u -p -r1.126 FileCopy.cc
+--- FileCopy.cc 25 Jul 2006 08:38:31 -0000 1.126
++++ FileCopy.cc 5 Apr 2007 13:10:04 -0000
+@@ -637,10 +637,10 @@ void FileCopyPeer::SetSize(off_t s)
+ seek_pos=0;
+ }
+ }
+-void FileCopyPeer::SetDate(time_t d)
++void FileCopyPeer::SetDate(time_t d,int p)
+ {
+- date=d;
+- if(date==NO_DATE || date==NO_DATE_YET)
++ date.set(d,p);
++ if(d==NO_DATE || d==NO_DATE_YET)
+ date_set=true;
+ else
+ date_set=false;
+@@ -680,7 +680,6 @@ FileCopyPeer::FileCopyPeer(dir_t m) : IO
+ start_transfer=true;
+ size=NO_SIZE_YET;
+ e_size=NO_SIZE;
+- date=NO_DATE_YET;
+ seek_pos=0;
+ can_seek=false;
+ can_seek0=false;
+@@ -961,7 +960,7 @@ void FileCopyPeerFA::OpenSession()
+ session->AsciiTransfer();
+ if(want_size && size==NO_SIZE_YET)
+ session->WantSize(&size);
+- if(want_date && date==NO_DATE_YET)
++ if(want_date && (date==NO_DATE_YET || date.ts_prec>1))
+ session->WantDate(&date);
+ if(mode==GET)
+ {
+Index: FileCopy.h
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileCopy.h,v
+retrieving revision 1.69
+diff -u -p -r1.69 FileCopy.h
+--- FileCopy.h 4 Jul 2006 05:15:36 -0000 1.69
++++ FileCopy.h 5 Apr 2007 13:10:05 -0000
+@@ -47,7 +47,7 @@ protected:
+ bool start_transfer;
+ off_t size;
+ off_t e_size;
+- time_t date;
++ FileTimestamp date;
+
+ off_t seek_pos;
+ bool can_seek;
+@@ -89,7 +89,7 @@ public:
+ time_t GetDate() { return date; }
+ off_t GetSize() { if(size>=0 && pos>size) WantSize(); return size; }
+
+- void SetDate(time_t d);
++ void SetDate(time_t d,int p=0);
+ void SetSize(off_t s);
+ void SetEntitySize(off_t s) { e_size=s; }
+
+@@ -225,7 +225,8 @@ public:
+ off_t GetBytesCount() { return bytes_count; }
+ double GetTimeSpent();
+
+- void SetDate(time_t t) { get->SetDate(t); }
++ void SetDate(time_t t,int p=0) { get->SetDate(t,p); }
++ void SetDate(const FileTimestamp &t) { SetDate(t.ts,t.ts_prec); }
+ void SetSize(off_t s) { get->SetSize(s); }
+
+ bool Done() { return state==ALL_DONE; }
+Index: FileSet.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileSet.cc,v
+retrieving revision 1.52
+diff -u -p -r1.52 FileSet.cc
+--- FileSet.cc 29 Aug 2006 07:25:26 -0000 1.52
++++ FileSet.cc 5 Apr 2007 13:10:05 -0000
+@@ -42,11 +42,6 @@
+ #include "IdNameCache.h"
+ #include "PatternSet.h"
+
+-#define NO_SIZE (-1L)
+-#define NO_SIZE_YET (-2L)
+-#define NO_DATE ((time_t)-1L)
+-#define NO_DATE_YET ((time_t)-2L)
+-
+ void FileInfo::Merge(const FileInfo& f)
+ {
+ if(strcmp(name,f.name))
+@@ -55,8 +50,8 @@ void FileInfo::Merge(const FileInfo& f)
+ int dif=(~defined)&f.defined;
+ if(dif&MODE)
+ SetMode(f.mode);
+- if(dif&DATE || (defined&DATE && f.defined&DATE && f.date_prec<date_prec))
+- SetDate(f.date,f.date_prec);
++ if(dif&DATE || (defined&DATE && f.defined&DATE && f.date.ts_prec<date.ts_prec))
++ SetDate(f.date,f.date.ts_prec);
+ if(dif&TYPE)
+ SetType(f.filetype);
+ if(dif&SYMLINK)
+@@ -421,9 +416,9 @@ bool FileInfo::SameAs(const FileInfo *f
+
+ if(defined&DATE && fi->defined&DATE && !(ignore&DATE))
+ {
+- time_t p=date_prec;
+- if(p<fi->date_prec)
+- p=fi->date_prec;
++ time_t p=date.ts_prec;
++ if(p<fi->date.ts_prec)
++ p=fi->date.ts_prec;
+ if(!(ignore&IGNORE_DATE_IF_OLDER && date<fi->date)
+ && labs(date-fi->date)>p)
+ return false;
+@@ -588,7 +583,7 @@ void FileSet::LocalUtime(const char *dir
+ struct stat st;
+ ut.actime=ut.modtime=file->date;
+
+- if(stat(local_name,&st)!=-1 && st.st_mtime!=file->date)
++ if(stat(local_name,&st)!=-1 && labs(st.st_mtime-file->date)>file->date.ts_prec)
+ utime(local_name,&ut);
+ }
+ }
+@@ -689,7 +684,6 @@ void FileInfo::Init()
+ filetype=UNKNOWN;
+ mode=(mode_t)-1;
+ date=NO_DATE;
+- date_prec=0;
+ size=NO_SIZE;
+ nlinks=0;
+ name=0;
+@@ -712,7 +706,6 @@ FileInfo::FileInfo(const FileInfo &fi)
+ filetype=fi.filetype;
+ mode=fi.mode;
+ date=fi.date;
+- date_prec=fi.date_prec;
+ size=fi.size;
+ nlinks=fi.nlinks;
+ longname=xstrdup(fi.longname);
+Index: FileSet.h
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileSet.h,v
+retrieving revision 1.38
+diff -u -p -r1.38 FileSet.h
+--- FileSet.h 29 Aug 2006 07:25:26 -0000 1.38
++++ FileSet.h 5 Apr 2007 13:10:05 -0000
+@@ -31,13 +31,28 @@
+ class TimeInterval;
+ class Range;
+
++#define NO_SIZE ((off_t)-1L)
++#define NO_SIZE_YET ((off_t)-2L)
++#define NO_DATE ((time_t)-1L)
++#define NO_DATE_YET ((time_t)-2L)
++
++struct FileTimestamp
++{
++ time_t ts;
++ int ts_prec;
++ FileTimestamp() : ts(NO_DATE_YET), ts_prec(0) {}
++ void set(time_t ts1,int ts1_prec) { ts=ts1; ts_prec=ts1_prec; }
++ bool is_set() { return ts!=NO_DATE && ts!=NO_DATE_YET; }
++ operator time_t() const { return ts; }
++ time_t operator=(time_t t) { set(t,0); return t; }
++};
++
+ class FileInfo
+ {
+ public:
+ char *name;
+ mode_t mode;
+- time_t date;
+- int date_prec;
++ FileTimestamp date;
+ off_t size;
+ void *data;
+ const char *user, *group;
+@@ -82,7 +97,7 @@ public:
+ static FileInfo *parse_ls_line(const char *line,const char *tz);
+
+ void SetMode(mode_t m) { mode=m; defined|=MODE; }
+- void SetDate(time_t t,int prec) { date=t; defined|=DATE; date_prec=prec; }
++ void SetDate(time_t t,int prec) { date.set(t,prec); defined|=DATE; }
+ void SetType(type t) { filetype=t; defined|=TYPE; }
+ void SetSymlink(const char *s) { xfree(symlink); symlink=xstrdup(s);
+ filetype=SYMLINK; defined|=TYPE|SYMLINK_DEF; }
+Index: FileSetOutput.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/FileSetOutput.cc,v
+retrieving revision 1.41
+diff -u -p -r1.41 FileSetOutput.cc
+--- FileSetOutput.cc 7 Aug 2006 08:55:20 -0000 1.41
++++ FileSetOutput.cc 5 Apr 2007 13:10:05 -0000
+@@ -144,7 +144,7 @@ void FileSetOutput::print(FileSet &fs, O
+ if(!use_fmt || !*use_fmt)
+ use_fmt="%b %e %Y\n%b %e %H:%M";
+
+- char *dt_mem = xstrftime(use_fmt, localtime (&f->date));
++ char *dt_mem = xstrftime(use_fmt, localtime (&f->date.ts));
+ char *dt=strtok(dt_mem,"\n|");
+ if(recent) {
+ char *dt1=strtok(NULL,"\n|");
+Index: Filter.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/Filter.cc,v
+retrieving revision 1.39
+diff -u -p -r1.39 Filter.cc
+--- Filter.cc 6 Feb 2006 10:57:24 -0000 1.39
++++ Filter.cc 5 Apr 2007 13:10:05 -0000
+@@ -34,6 +34,7 @@
+ #include "SignalHook.h"
+ #include "ArgV.h"
+ #include "misc.h"
++#include "FileSet.h"
+
+ #ifndef O_BINARY
+ # define O_BINARY 0
+@@ -345,11 +346,17 @@ bool OutputFilter::usesfd(int n_fd)
+ return n_fd<=2;
+ }
+
+-void FileStream::setmtime(time_t t)
++void FileStream::setmtime(const FileTimestamp &ts)
+ {
+ getfd(); // this might create the file... But can fail retriably. FIXME.
++
++ // skip the time update if the timestamp is already accurate enough.
++ struct stat st;
++ if(fstat(fd,&st)!=-1 && labs(st.st_mtime-ts)<=ts.ts_prec)
++ return;
++
+ struct utimbuf ut;
+- ut.actime=ut.modtime=t;
++ ut.actime=ut.modtime=ts;
+ utime(full_name,&ut);
+ }
+ FileStream::FileStream(const char *fname,int new_mode) : FDStream(-1,fname)
+Index: Filter.h
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/Filter.h,v
+retrieving revision 1.23
+diff -u -p -r1.23 Filter.h
+--- Filter.h 21 Jun 2005 14:30:04 -0000 1.23
++++ Filter.h 5 Apr 2007 13:10:05 -0000
+@@ -26,6 +26,7 @@
+ #include "ProcWait.h"
+
+ class ArgV;
++class FileTimestamp;
+
+ class FDStream
+ {
+@@ -57,7 +58,7 @@ public:
+ const char *GetCwd() const { return cwd; }
+
+ virtual off_t get_size() { return -1; }
+- virtual void setmtime(time_t) {}
++ virtual void setmtime(const FileTimestamp &) {}
+ virtual bool can_setmtime() { return false; }
+ virtual void remove_if_empty() {}
+ virtual void remove() {}
+@@ -136,7 +137,7 @@ public:
+ FileStream(const char *fname,int open_mode);
+ ~FileStream();
+
+- void setmtime(time_t t);
++ void setmtime(const FileTimestamp &);
+ bool can_setmtime() { return true; }
+ void remove_if_empty();
+ void remove();
+Index: MirrorJob.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/MirrorJob.cc,v
+retrieving revision 1.139.2.1
+diff -u -p -r1.139.2.1 MirrorJob.cc
+--- MirrorJob.cc 6 Jan 2007 06:39:33 -0000 1.139.2.1
++++ MirrorJob.cc 5 Apr 2007 13:10:05 -0000
+@@ -228,7 +228,7 @@ void MirrorJob::HandleFile(FileInfo *fi
+ && (old->defined&file->TYPE) && old->filetype==old->NORMAL
+ && (flags&IGNORE_TIME ||
+ ((file->defined&file->DATE) && (old->defined&old->DATE)
+- && file->date + file->date_prec < old->date - old->date_prec))
++ && file->date + file->date.ts_prec < old->date - old->date.ts_prec))
+ && (file->defined&file->SIZE) && (old->defined&old->SIZE)
+ && file->size >= old->size
+ && !use_pget)
+@@ -297,7 +297,7 @@ void MirrorJob::HandleFile(FileInfo *fi
+ c->RemoveTargetFirst();
+ CopyJob *cp=
+ new CopyJob(c,file->name,"mirror");
+- if((file->defined&file->DATE) && file->date_prec<=1)
++ if(file->defined&file->DATE)
+ cp->SetDate(file->date);
+ if(file->defined&file->SIZE)
+ cp->SetSize(file->size);
+Index: NetAccess.cc
+===================================================================
+RCS file: /home/lav/cvsroot/lftp/src/NetAccess.cc,v
+retrieving revision 1.87
+diff -u -p -r1.87 NetAccess.cc
+--- NetAccess.cc 27 Jul 2006 07:44:54 -0000 1.87
++++ NetAccess.cc 5 Apr 2007 13:10:06 -0000
+@@ -871,7 +871,7 @@ do_again:
+ cur->time=NO_DATE;
+ cur->get_size = need_size && !(file->defined & file->SIZE);
+ cur->get_time = need_time && (!(file->defined & file->DATE)
+- || (file->date_prec>0 && can_get_prec_time));
++ || (file->date.ts_prec>0 && can_get_prec_time));
+ cur->file=0;
+
+ if(file->defined & file->TYPE)