]> git.saurik.com Git - apt.git/blobdiff - methods/cdrom.cc
FildFd: Introduce a Flush() function and call it from Close()
[apt.git] / methods / cdrom.cc
index 3c14d9dfbfd5106492e2548a43d14ab1a5165dc4..d9ddecb6a1aadca2f4a1ce0f3ff96215599c19e6 100644 (file)
@@ -19,9 +19,9 @@
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/hashes.h>
 
+#include <string>
+#include <vector>
 #include <sys/stat.h>
-#include <unistd.h>
-#include <dlfcn.h>
 
 #include <iostream>
 #include <apti18n.h>
@@ -42,9 +42,9 @@ class CDROMMethod : public pkgAcqMethod
  
    bool IsCorrectCD(URI want, string MountPath, string& NewID);
    bool AutoDetectAndMount(const URI, string &NewID);
-   virtual bool Fetch(FetchItem *Itm);
+   virtual bool Fetch(FetchItem *Itm) APT_OVERRIDE;
    string GetID(string Name);
-   virtual void Exit();
+   virtual void Exit() APT_OVERRIDE;
       
    public:
    
@@ -260,13 +260,14 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
    struct stat Buf;
    if (stat(Res.Filename.c_str(),&Buf) != 0)
       return _error->Error(_("File not found"));
-   
+
+   URIStart(Res);
    if (NewID.empty() == false)
       CurrentID = NewID;
    Res.LastModified = Buf.st_mtime;
    Res.Size = Buf.st_size;
 
-   Hashes Hash;
+   Hashes Hash(Itm->ExpectedHashes);
    FileFd Fd(Res.Filename, FileFd::ReadOnly);
    Hash.AddFD(Fd);
    Res.TakeHashes(Hash);