]> git.saurik.com Git - apt.git/commitdiff
Fixed function return and moved cdrom stuff to lib
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:46 +0000 (16:51 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:46 +0000 (16:51 +0000)
Author: jgg
Date: 1998-11-29 01:19:20 GMT
Fixed function return and moved cdrom stuff to lib

cmdline/apt-cdrom.cc

index fc9eb50005ad442ea43d8e5b614a88562c8304eb..5a0ace8b693718ca172a63508305eed7dad9d049 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: apt-cdrom.cc,v 1.5 1998/11/28 08:39:46 jgg Exp $
+// $Id: apt-cdrom.cc,v 1.6 1998/11/29 01:19:20 jgg Exp $
 /* ######################################################################
    
    APT CDROM - Tool for handling APT's CDROM database.
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/init.h>
-#include <apt-pkg/md5.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/progress.h>
 #include <apt-pkg/tagfile.h>
+#include <apt-pkg/cdromutl.h>
 #include <strutl.h>
 #include <config.h>
 
@@ -25,9 +25,6 @@
 #include <fstream>
 #include <vector>
 #include <algorithm>
-#include <sys/wait.h>
-#include <sys/errno.h>
-#include <sys/vfs.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <dirent.h>
 #include <stdio.h>
                                                                        /*}}}*/
 
-// UnmountCdrom - Unmount a cdrom                                      /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool UnmountCdrom(string Path)
-{
-   int Child = fork();
-   if (Child < -1)
-      return _error->Errno("fork","Failed to fork");
-
-   // The child
-   if (Child == 0)
-   {
-      // Make all the fds /dev/null
-      for (int I = 0; I != 10; I++)
-        close(I);
-      for (int I = 0; I != 3; I++)
-        dup2(open("/dev/null",O_RDWR),I);
-
-      const char *Args[10];
-      Args[0] = "umount";
-      Args[1] = Path.c_str();
-      Args[2] = 0;
-      execvp(Args[0],(char **)Args);      
-      exit(100);
-   }
-
-   // Wait for mount
-   int Status = 0;
-   while (waitpid(Child,&Status,0) != Child)
-   {
-      if (errno == EINTR)
-        continue;
-      return _error->Errno("waitpid","Couldn't wait for subprocess");
-   }
-   
-   // Check for an error code.
-   if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0)
-      return false;
-   return true;
-}
-                                                                       /*}}}*/
-// MountCdrom - Mount a cdrom                                          /*{{{*/
-// ---------------------------------------------------------------------
-/* We fork mount.. */
-bool MountCdrom(string Path)
-{
-   int Child = fork();
-   if (Child < -1)
-      return _error->Errno("fork","Failed to fork");
-
-   // The child
-   if (Child == 0)
-   {
-      // Make all the fds /dev/null
-      for (int I = 0; I != 10; I++)
-        close(I);      
-      for (int I = 0; I != 3; I++)
-        dup2(open("/dev/null",O_RDWR),I);
-      
-      const char *Args[10];
-      Args[0] = "mount";
-      Args[1] = Path.c_str();
-      Args[2] = 0;
-      execvp(Args[0],(char **)Args);      
-      exit(100);
-   }
-
-   // Wait for mount
-   int Status = 0;
-   while (waitpid(Child,&Status,0) != Child)
-   {
-      if (errno == EINTR)
-        continue;
-      return _error->Errno("waitpid","Couldn't wait for subprocess");
-   }
-   
-   // Check for an error code.
-   if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0)
-      return false;
-   return true;
-}
-                                                                       /*}}}*/
-// IdentCdrom - Generate a unique string for this CD                   /*{{{*/
-// ---------------------------------------------------------------------
-/* We convert everything we hash into a string, this prevents byte size/order
-   from effecting the outcome. */
-bool IdentCdrom(string CD,string &Res)
-{
-   MD5Summation Hash;
-
-   string StartDir = SafeGetCWD();
-   if (chdir(CD.c_str()) != 0)
-      return _error->Errno("chdir","Unable to change to %s",CD.c_str());
-   
-   DIR *D = opendir(".");
-   if (D == 0)
-      return _error->Errno("opendir","Unable to read %s",CD.c_str());
-      
-   // Run over the directory
-   char S[300];
-   for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
-   {
-      // Skip some files..
-      if (strcmp(Dir->d_name,".") == 0 ||
-         strcmp(Dir->d_name,"..") == 0)
-        continue;
-   
-      sprintf(S,"%lu",Dir->d_ino);
-      Hash.Add(S);
-      Hash.Add(Dir->d_name);
-   };
-   
-   chdir(StartDir.c_str());
-   closedir(D);
-   
-   // Some stats from the fsys
-   struct statfs Buf;
-   if (statfs(CD.c_str(),&Buf) != 0)
-      return _error->Errno("statfs","Failed to stat the cdrom");
-   
-   sprintf(S,"%u %u",Buf.f_blocks,Buf.f_bfree);
-   Hash.Add(S);
-   
-   Res = Hash.Result().Value();
-   return true;   
-}
-                                                                       /*}}}*/
-
 // FindPackages - Find the package files on the CDROM                  /*{{{*/
 // ---------------------------------------------------------------------
 /* We look over the cdrom for package files. This is a recursive
@@ -689,6 +558,8 @@ bool CopyPackages(string CDROM,string Name,vector<string> &List)
    
    if (NotFound + WrongSize > 10)
       cout << "Alot of package entires were discarded, perhaps this CD is funny?" << endl;
+
+   return true;
 }
                                                                        /*}}}*/