Przeglądaj źródła

apt-pkg/cdrom.{cc,h}: add ScanForRemovable helper

Michael Vogt 15 lat temu
rodzic
commit
f4c4a24ea1
2 zmienionych plików z 22 dodań i 8 usunięć
  1. 16 7
      apt-pkg/cdrom.cc
  2. 6 1
      apt-pkg/cdrom.h

+ 16 - 7
apt-pkg/cdrom.cc

@@ -868,8 +868,19 @@ pkgUdevCdromDevices::Dlopen()                     		        /*{{{*/
    return true;
 }
 									/*}}}*/
+
+                                                                        /*{{{*/
+// compatiblity only with the old API/ABI, can be removed on the next
+// ABI break
+vector<CdromDevice>
+pkgUdevCdromDevices::Scan()
+{ 
+   return ScanForRemovable(true); 
+};
+									/*}}}*/
+                                                                        /*{{{*/
 vector<CdromDevice>
-pkgUdevCdromDevices::Scan()                                             /*{{{*/
+pkgUdevCdromDevices::ScanForRemovable(bool CdromOnly)
 {
    vector<CdromDevice> cdrom_devices;
    struct udev_enumerate *enumerate;
@@ -881,9 +892,10 @@ pkgUdevCdromDevices::Scan()                                             /*{{{*/
 
    udev_ctx = udev_new();
    enumerate = udev_enumerate_new (udev_ctx);
-   udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1");
-   //FIXME: just use removalble here to include usb etc
-   //udev_enumerate_add_match_sysattr(enumerate, "removable", "1");
+   if (CdromOnly)
+      udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1");
+   else
+      udev_enumerate_add_match_sysattr(enumerate, "removable", "1");
 
    udev_enumerate_scan_devices (enumerate);
    devices = udev_enumerate_get_list_entry (enumerate);
@@ -899,9 +911,6 @@ pkgUdevCdromDevices::Scan()                                             /*{{{*/
       if (mountpath == NULL)
          mountpath = FindMountPointForDevice(devnode);
 
-      if (_config->FindB("Debug::Acquire::cdrom", false))
-         cerr << "found " << devnode << " mounted on " << mountpath << endl;
-
       // fill in the struct
       cdrom.DeviceName = string(devnode);
       if (mountpath) {

+ 6 - 1
apt-pkg/cdrom.h

@@ -68,7 +68,7 @@ class pkgCdrom								/*{{{*/
 									/*}}}*/
 
 
-// class that uses libudev to find cdrom devices dynamically
+// class that uses libudev to find cdrom/removable devices dynamically
 struct CdromDevice							/*{{{*/
 {
    string DeviceName;
@@ -101,7 +101,12 @@ class pkgUdevCdromDevices						/*{{{*/
 
    // try to open 
    bool Dlopen();
+
+   // this is the new interface
+   vector<CdromDevice> ScanForRemovable(bool CdromOnly);
+   // FIXME: compat with the old interface/API/ABI only
    vector<CdromDevice> Scan();
+
 };
 									/*}}}*/