apt-pkg/contrib/cdromutl.{cc,h}: return string for mountpath; apt-pkg/cdrom.cc: use...
authorMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Mar 2011 11:15:13 +0000 (12:15 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Mar 2011 11:15:13 +0000 (12:15 +0100)
apt-pkg/cdrom.cc
apt-pkg/contrib/cdromutl.cc
apt-pkg/contrib/cdromutl.h

index deca6b4..83438f1 100644 (file)
@@ -907,13 +907,18 @@ pkgUdevCdromDevices::ScanForRemovable(bool CdromOnly)
       if (udevice == NULL)
         continue;
       const char* devnode = udev_device_get_devnode(udevice);
-      const char* mountpath = udev_device_get_property_value(udevice, "FSTAB_DIR");
-      if (mountpath == NULL)
+
+      // try fstab_dir first
+      string mountpath;
+      const char* mp = udev_device_get_property_value(udevice, "FSTAB_DIR");
+      if (mp)
+         mountpath = string(mp);
+      else
          mountpath = FindMountPointForDevice(devnode);
 
       // fill in the struct
       cdrom.DeviceName = string(devnode);
-      if (mountpath) {
+      if (mountpath != "") {
         cdrom.MountPath = mountpath;
         string s = string(mountpath);
         cdrom.Mounted = IsMounted(s);
index cf1c0c2..83c324f 100644 (file)
@@ -237,7 +237,7 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version)
                                                                        /*}}}*/
 
 // FindMountPointForDevice - Find mountpoint for the given device      /*{{{*/
-char* FindMountPointForDevice(const char *devnode)
+string FindMountPointForDevice(const char *devnode)
 {
    char buf[255];
    char *out[10];
@@ -254,14 +254,14 @@ char* FindMountPointForDevice(const char *devnode)
          while ( fgets(buf, sizeof(buf), f) != NULL) {
             if (strncmp(buf, devnode, strlen(devnode)) == 0) {
                if(TokSplitString(' ', buf, out, 10))
-                  return strdup(out[1]);
+                  return string(out[1]);
             }
          }
          fclose(f);
       }
    }
    
-   return NULL;
+   return string();
 }
 
 
index 4f0f903..38ed299 100644 (file)
@@ -19,6 +19,6 @@ bool MountCdrom(string Path, string DeviceName="");
 bool UnmountCdrom(string Path);
 bool IdentCdrom(string CD,string &Res,unsigned int Version = 2);
 bool IsMounted(string &Path);
-char *FindMountPointForDevice(const char *device);
+string FindMountPointForDevice(const char *device);
 
 #endif