--- apt-0.5.15cnc6/apt-pkg/contrib/cdromutl.cc~ 2005-05-14 13:13:03 +0400 +++ apt-0.5.15cnc6/apt-pkg/contrib/cdromutl.cc 2005-05-14 13:26:05 +0400 @@ -34,6 +34,7 @@ #include #include #include +#include /*}}}*/ // IsMounted - Returns true if the mount point is mounted /*{{{*/ @@ -100,6 +101,22 @@ bool UnmountCdrom(string Path) } else { + FILE *f; + if ((f = setmntent ("/proc/mounts", "r")) != NULL) + { + struct mntent *mnt; + while ((mnt = getmntent (f)) != NULL) + { + string MntDir(mnt->mnt_dir); + if (MntDir[MntDir.length() - 1] != '/') + MntDir += '/'; + if ( Path == MntDir ) + if ((strcmp ("subfs", mnt->mnt_type) == 0) || (strcmp ("supermount", mnt->mnt_type) == 0)) + _exit(0); + } + endmntent (f); + } + const char *Args[10]; Args[0] = "umount"; Args[1] = Path.c_str();