--- a/secureswitools/swisistools/source/interpretsislib/configmanager.cpp Tue Sep 14 21:31:28 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/configmanager.cpp Wed Sep 15 12:20:42 2010 +0300
@@ -203,12 +203,27 @@
CheckAndAddDrive(aParamList.SystemDriveLetter(), aParamList.SystemDrivePath());
}
- if ( !IsTargetDrivePresent(aParamList.SystemDriveLetter()) )
+ if ((!IsTargetDrivePresent(aParamList.SystemDriveLetter())) && (!aParamList.IsFlagSet(CParameterList::EFlagsRomInstallSet)))
{
std::stringstream err;
err << "The directory representing the system drive is not defined";
throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
}
+
+ if (!((aParamList.IsFlagSet(CParameterList::EFlagsCDriveSet)) ^ (aParamList.IsFlagSet(CParameterList::EFlagsRomInstallSet))))
+ {
+ std::stringstream err;
+ err << "The System Drive should not be defined for Installation to Rom Drive";
+ throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
+ }
+
+ if ((!aParamList.IsFlagSet(CParameterList::EFlagsCDriveSet)) && (aParamList.IsFlagSet(CParameterList::EFlagsExtDriveSet)))
+ {
+ std::stringstream err;
+ err << "The Extended Drive cannot be specified without -c (System drive) option.";
+ throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
+ }
+
}