]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/cdrom.cc
methods/mirrors.cc: make cycle through the mirrors work properly
[apt.git] / apt-pkg / cdrom.cc
index 087ee321ca7668391fa1ec41b70af71013ef48f0..783ffc43069338c169a79654599378222409c970 100644 (file)
@@ -160,7 +160,7 @@ bool pkgCdrom::FindPackages(string CD,
    
    return !_error->PendingError();
 }
-
+                                                                       /*}}}*/
 // Score - We compute a 'score' for a path                             /*{{{*/
 // ---------------------------------------------------------------------
 /* Paths are scored based on how close they come to what I consider
@@ -210,7 +210,6 @@ int pkgCdrom::Score(string Path)
 
    return Res;
 }
-
                                                                        /*}}}*/
 // DropBinaryArch - Dump dirs with a string like /binary-<foo>/                /*{{{*/
 // ---------------------------------------------------------------------
@@ -248,8 +247,7 @@ bool pkgCdrom::DropBinaryArch(vector<string> &List)
    
    return true;
 }
-
-
+                                                                       /*}}}*/
 // DropRepeats - Drop repeated files resulting from symlinks           /*{{{*/
 // ---------------------------------------------------------------------
 /* Here we go and stat every file that we found and strip dup inodes. */
@@ -291,7 +289,8 @@ bool pkgCdrom::DropRepeats(vector<string> &List,const char *Name)
         List[J] = string();
       }
    }  
+   delete[] Inodes;
+
    // Wipe erased entries
    for (unsigned int I = 0; I < List.size();)
    {
@@ -304,7 +303,6 @@ bool pkgCdrom::DropRepeats(vector<string> &List,const char *Name)
    return true;
 }
                                                                        /*}}}*/
-
 // ReduceSourceList - Takes the path list and reduces it               /*{{{*/
 // ---------------------------------------------------------------------
 /* This takes the list of source list expressed entires and collects
@@ -513,9 +511,8 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source)
    
    return true;
 }
-
-
-bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log)
+                                                                       /*}}}*/
+bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log)               /*{{{*/
 {
    stringstream msg;
 
@@ -573,9 +570,8 @@ bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log)
 
    return true;
 }
-
-
-bool pkgCdrom::Add(pkgCdromStatus *log)
+                                                                       /*}}}*/
+bool pkgCdrom::Add(pkgCdromStatus *log)                                        /*{{{*/
 {
    stringstream msg;
 
@@ -834,8 +830,6 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
       }
    }
 
-   
-
    // Unmount and finish
    if (_config->FindB("APT::CDROM::NoMount",false) == false) {
       log->Update(_("Unmounting CD-ROM...\n"), STEP_LAST);
@@ -844,17 +838,21 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
 
    return true;
 }
-
-
-pkgUdevCdromDevices::pkgUdevCdromDevices() 
-  : libudev_handle(NULL)
+                                                                       /*}}}*/
+pkgUdevCdromDevices::pkgUdevCdromDevices()                                     /*{{{*/
+   : libudev_handle(NULL)
 {
 
 }
+                                                                       /*}}}*/
 
 bool
-pkgUdevCdromDevices::Dlopen()
+pkgUdevCdromDevices::Dlopen()                                          /*{{{*/
 {
+   // alread open
+   if(libudev_handle != NULL)
+      return true;
+
    // see if we can get libudev
    void *h = ::dlopen("libudev.so.0", RTLD_LAZY);
    if(h == NULL)
@@ -876,9 +874,9 @@ pkgUdevCdromDevices::Dlopen()
 
    return true;
 }
-
+                                                                       /*}}}*/
 vector<CdromDevice>
-pkgUdevCdromDevices::Scan()
+pkgUdevCdromDevices::Scan()                                             /*{{{*/
 {
    vector<CdromDevice> cdrom_devices;
    struct udev_enumerate *enumerate;
@@ -908,7 +906,8 @@ pkgUdevCdromDevices::Scan()
       cdrom.DeviceName = string(devnode);
       if (mountpath) {
         cdrom.MountPath = mountpath;
-        cdrom.Mounted = true;
+        string s = string(mountpath);
+        cdrom.Mounted = IsMounted(s);
       } else {
         cdrom.Mounted = false;
         cdrom.MountPath = "";
@@ -917,9 +916,11 @@ pkgUdevCdromDevices::Scan()
    } 
    return cdrom_devices;
 }
+                                                                       /*}}}*/
 
-
-pkgUdevCdromDevices::~pkgUdevCdromDevices()
+pkgUdevCdromDevices::~pkgUdevCdromDevices()                             /*{{{*/
 { 
-   dlclose(libudev_handle);
+   if (libudev_handle != NULL)
+      dlclose(libudev_handle);
 }
+                                                                       /*}}}*/