diff options
Diffstat (limited to 'apt-pkg/contrib/cdromutl.cc')
-rw-r--r-- | apt-pkg/contrib/cdromutl.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc index d0d810c5d..99eb540ec 100644 --- a/apt-pkg/contrib/cdromutl.cc +++ b/apt-pkg/contrib/cdromutl.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: cdromutl.cc,v 1.5 1999/04/20 05:11:17 jgg Exp $ +// $Id: cdromutl.cc,v 1.6 1999/06/05 03:54:29 jgg Exp $ /* ###################################################################### CDROM Utilities - Some functions to manipulate CDROM mounts. @@ -160,7 +160,7 @@ bool MountCdrom(string Path) // --------------------------------------------------------------------- /* We convert everything we hash into a string, this prevents byte size/order from effecting the outcome. */ -bool IdentCdrom(string CD,string &Res) +bool IdentCdrom(string CD,string &Res,unsigned int Version) { MD5Summation Hash; @@ -182,8 +182,19 @@ bool IdentCdrom(string CD,string &Res) if (strcmp(Dir->d_name,".") == 0 || strcmp(Dir->d_name,"..") == 0) continue; - - sprintf(S,"%lu",Dir->d_ino); + + if (Version <= 1) + { + sprintf(S,"%lu",Dir->d_ino); + } + else + { + struct stat Buf; + if (stat(Dir->d_name,&Buf) != 0) + continue; + sprintf(S,"%lu",Buf.st_mtime); + } + Hash.Add(S); Hash.Add(Dir->d_name); }; @@ -201,7 +212,8 @@ bool IdentCdrom(string CD,string &Res) (long)(Buf.f_bfree*(Buf.f_bsize/1024))); Hash.Add(S); - Res = Hash.Result().Value(); + sprintf(S,"-%u",Version); + Res = Hash.Result().Value() + S; return true; } /*}}}*/ |