summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-01-22 21:34:29 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2010-01-22 21:34:29 +0100
commit391149ba7f664924a5d2f1cfc5756896ca4ef3a1 (patch)
treede61500eb65059cabae77c37606ecf962840ecfc /methods
parent0d2e73c7aadad2b84ef19f2a37914c829a465573 (diff)
* methods/cdrom.cc:
- fixes in multi cdrom setup code
Diffstat (limited to 'methods')
-rw-r--r--methods/cdrom.cc20
1 files changed, 9 insertions, 11 deletions
diff --git a/methods/cdrom.cc b/methods/cdrom.cc
index 9802eb46c..763547013 100644
--- a/methods/cdrom.cc
+++ b/methods/cdrom.cc
@@ -37,8 +37,8 @@ class CDROMMethod : public pkgAcqMethod
bool MountedByApt;
pkgUdevCdromDevices UdevCdroms;
- bool IsCorrectCD(URI want, string MountPath);
- bool AutoDetectAndMount(URI);
+ bool IsCorrectCD(URI want, string MountPath, string& NewID);
+ bool AutoDetectAndMount(URI, string &NewID);
virtual bool Fetch(FetchItem *Itm);
string GetID(string Name);
virtual void Exit();
@@ -92,7 +92,7 @@ string CDROMMethod::GetID(string Name)
// CDROMMethod::AutoDetectAndMount /*{{{*/
// ---------------------------------------------------------------------
/* Modifies class varaiable CDROM to the mountpoint */
-bool CDROMMethod::AutoDetectAndMount(URI Get)
+bool CDROMMethod::AutoDetectAndMount(URI Get, string NewID)
{
vector<struct CdromDevice> v = UdevCdroms.Scan();
@@ -103,7 +103,7 @@ bool CDROMMethod::AutoDetectAndMount(URI Get)
{
if (Debug)
clog << "Checking mounted cdrom device " << v[i].DeviceName << endl;
- if (IsCorrectCD(Get, v[i].MountPath))
+ if (IsCorrectCD(Get, v[i].MountPath, NewID))
{
CDROM = v[i].MountPath;
return true;
@@ -126,7 +126,7 @@ bool CDROMMethod::AutoDetectAndMount(URI Get)
{
if(MountCdrom("/media/apt", v[i].DeviceName))
{
- if (IsCorrectCD(Get, "/media/apt"))
+ if (IsCorrectCD(Get, "/media/apt", NewID))
{
MountedByApt = true;
CDROM = "/media/apt";
@@ -144,10 +144,8 @@ bool CDROMMethod::AutoDetectAndMount(URI Get)
// CDROMMethod::IsCorrectCD /*{{{*/
// ---------------------------------------------------------------------
/* */
-bool CDROMMethod::IsCorrectCD(URI want, string MountPath)
+bool CDROMMethod::IsCorrectCD(URI want, string MountPath, string& NewID)
{
- string NewID;
-
for (unsigned int Version = 2; Version != 0; Version--)
{
if (IdentCdrom(MountPath,NewID,Version) == false)
@@ -226,17 +224,17 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
if (CDROM[0] == '.')
CDROM= SafeGetCWD() + '/' + CDROM;
- string NewID;
+ string NewID;
while (CurrentID.empty() == true)
{
if (CDROM == "apt-udev-auto/")
- AutoDetectAndMount(Get);
+ AutoDetectAndMount(Get, NewID);
if(!IsMounted(CDROM))
MountedByApt = MountCdrom(CDROM);
- if (IsCorrectCD(Get, CDROM))
+ if (IsCorrectCD(Get, CDROM, NewID))
break;
// I suppose this should prompt somehow?