// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cdrom.cc,v 1.14 1999/08/08 03:34:08 jgg Exp $
+// $Id: cdrom.cc,v 1.17 2000/01/17 07:11:49 jgg Exp $
/* ######################################################################
CDROM URI method for APT
bool DatabaseLoaded;
::Configuration Database;
string CurrentID;
+ string CDROM;
+ bool Mounted;
virtual bool Fetch(FetchItem *Itm);
string GetID(string Name);
+ virtual void Exit();
public:
// CDROMMethod::CDROMethod - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
-CDROMMethod::CDROMMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly |
- SendConfig), DatabaseLoaded(false)
+CDROMMethod::CDROMMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly |
+ SendConfig | NeedsCleanup |
+ Removable),
+ DatabaseLoaded(false),
+ Mounted(false)
{
};
/*}}}*/
+// CDROMMethod::Exit - Unmount the disc if necessary /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void CDROMMethod::Exit()
+{
+ if (Mounted == true)
+ UnmountCdrom(CDROM);
+}
+ /*}}}*/
// CDROMMethod::GetID - Search the database for a matching string /*{{{*/
// ---------------------------------------------------------------------
/* */
{
Res.LastModified = Itm->LastModified;
Res.IMSHit = true;
+ Res.Filename = File;
URIDone(Res);
return true;
}
return true;
}
- string CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/");
+ CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/");
if (CDROM[0] == '.')
CDROM= SafeGetCWD() + '/' + CDROM;
string NewID;
}
MountCdrom(CDROM);
+ Mounted = true;
}
// Found a CD
if (NewID.empty() == false)
CurrentID = NewID;
Res.LastModified = Buf.st_mtime;
- Res.IMSHit = true;
Res.Size = Buf.st_size;
URIDone(Res);
return true;