#include <apt-pkg/configuration.h>
#include <apt-pkg/strutl.h>
-#include <sys/wait.h>
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include <string>
#include <sys/statvfs.h>
#include <dirent.h>
#include <fcntl.h>
{
if (Path.empty() == true)
return false;
-
+
// Need that trailing slash for directories
if (Path[Path.length() - 1] != '/')
Path += '/';
-
- /* First we check if the path is actualy mounted, we do this by
- stating the path and the previous directory (carefull of links!)
+
+ // if the path has a ".disk" directory we treat it as mounted
+ // this way even extracted copies of disks are recognized
+ if (DirectoryExists(Path + ".disk/") == true)
+ return true;
+
+ /* First we check if the path is actually mounted, we do this by
+ stating the path and the previous directory (careful of links!)
and comparing their device fields. */
struct stat Buf,Buf2;
if (stat(Path.c_str(),&Buf) != 0 ||
if (Child == 0)
{
// Make all the fds /dev/null
+ int null_fd = open("/dev/null",O_RDWR);
for (int I = 0; I != 3; I++)
- dup2(open("/dev/null",O_RDWR),I);
+ dup2(null_fd, I);
if (_config->Exists("Acquire::cdrom::"+Path+"::Mount") == true)
{