diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:53:57 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:53:57 +0000 |
commit | 34fc04214f843dd8f01398014961217cb9684c87 (patch) | |
tree | c466c676364a79aec58544e70403d559f81a1d67 /methods/cdrom.cc | |
parent | f78439bfef02317c4d9d8138af7bdfb3b73fcec2 (diff) |
Changed CD ident rountine to not use inodes
Author: jgg
Date: 1999-06-05 03:54:29 GMT
Changed CD ident rountine to not use inodes
Diffstat (limited to 'methods/cdrom.cc')
-rw-r--r-- | methods/cdrom.cc | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/methods/cdrom.cc b/methods/cdrom.cc index a44465766..68511dd5b 100644 --- a/methods/cdrom.cc +++ b/methods/cdrom.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: cdrom.cc,v 1.9 1999/05/23 05:45:13 jgg Exp $ +// $Id: cdrom.cc,v 1.10 1999/06/05 03:54:29 jgg Exp $ /* ###################################################################### CDROM URI method for APT @@ -68,7 +68,9 @@ bool CDROMMethod::Fetch(FetchItem *Itm) URI Get = Itm->Uri; string File = Get.Path; FetchResult Res; - + + bool Debug = _config->FindB("Debug::Acquire::cdrom",false); + /* All IMS queries are returned as a hit, CDROMs are readonly so time stamps never change */ if (Itm->LastModified != 0) @@ -114,13 +116,23 @@ bool CDROMMethod::Fetch(FetchItem *Itm) string NewID; while (1) { - if (IdentCdrom(CDROM,NewID) == false) - return false; - - // A hit - if (Database.Find("CD::" + NewID) == Get.Host) - break; - + bool Hit = false; + for (unsigned int Version = 2; Version != 0; Version--) + { + if (IdentCdrom(CDROM,NewID,Version) == false) + return false; + + if (Debug == true) + clog << "ID " << Version << " " << NewID << endl; + + // A hit + if (Database.Find("CD::" + NewID) == Get.Host) + { + Hit = true; + break; + } + } + // I suppose this should prompt somehow? if (UnmountCdrom(CDROM) == false) return _error->Error("Unable to unmount the CD-ROM in %s, it may still be in use.", |