|
|
@@ -567,7 +567,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
|
|
|
string DFile = _config->FindFile("Dir::State::cdroms");
|
|
|
if (FileExists(DFile) == true)
|
|
|
{
|
|
|
- if (ReadConfigFile(Database,DFile) == false)
|
|
|
+ if (ReadConfigFile(Database,DFile) == false)
|
|
|
return _error->Error("Unable to read the cdrom database %s",
|
|
|
DFile.c_str());
|
|
|
}
|
|
|
@@ -650,8 +650,11 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
|
|
|
log->Update(msg.str(), STEP_SCAN);
|
|
|
}
|
|
|
|
|
|
- if (List.size() == 0 && SourceList.size() == 0)
|
|
|
+ if (List.size() == 0 && SourceList.size() == 0)
|
|
|
+ {
|
|
|
+ UnmountCdrom(CDROM);
|
|
|
return _error->Error("Unable to locate any package files, perhaps this is not a Debian Disc");
|
|
|
+ }
|
|
|
|
|
|
// Check if the CD is in the database
|
|
|
string Name;
|
|
|
@@ -687,7 +690,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
|
|
|
Name.empty() == true)
|
|
|
{
|
|
|
if(!log)
|
|
|
+ {
|
|
|
+ UnmountCdrom(CDROM);
|
|
|
return _error->Error("No disc name found and no way to ask for it");
|
|
|
+ }
|
|
|
|
|
|
while(true) {
|
|
|
if(!log->AskCdromName(Name)) {
|
|
|
@@ -760,7 +766,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
|
|
|
{
|
|
|
string::size_type Space = (*I).find(' ');
|
|
|
if (Space == string::npos)
|
|
|
+ {
|
|
|
+ UnmountCdrom(CDROM);
|
|
|
return _error->Error("Internal error");
|
|
|
+ }
|
|
|
|
|
|
if(log) {
|
|
|
msg.str("");
|
|
|
@@ -774,7 +783,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
|
|
|
{
|
|
|
string::size_type Space = (*I).find(' ');
|
|
|
if (Space == string::npos)
|
|
|
+ {
|
|
|
+ UnmountCdrom(CDROM);
|
|
|
return _error->Error("Internal error");
|
|
|
+ }
|
|
|
|
|
|
if(log) {
|
|
|
msg.str("");
|