Преглед изворни кода

Moved all processing in main.cpp into the try-block. Reason:

SNFMilterConfig.GetCommandLineInput() can now throw an exception.

Completed SENDMAIL-11 (test that integration with sendmail is not
supported on OpenBSD).


git-svn-id: https://svn.microneil.com/svn/SNFUtility/trunk@45 aa37657e-1934-4a5f-aa6d-2d8eab27ff7c
master
adeniz пре 12 година
родитељ
комит
8090dab554

+ 1
- 1
SNFMilterConfig/SNFMilterConfig.cpp Прегледај датотеку

@@ -134,7 +134,7 @@ SNFMilterConfig::GetCommandLineInput(int argc, char* argv[]) {
Temp = "Integration with sendmail is not supported on " + OsType;
Temp += ".\n";
throw runtime_error(Temp);
throw std::runtime_error(Temp);
}

+ 1
- 2
SNFMilterConfig/SNFMilterConfigTests.txt Прегледај датотеку

@@ -664,5 +664,4 @@ On OpenBSD:
SNFMilterConfig outputs a message that integration with sendmail
is not supported on OpenBSD.

Result:

Result: Pass.

+ 34
- 34
SNFMilterConfig/main.cpp Прегледај датотеку

@@ -45,19 +45,19 @@ void RestoreFiles(SNFMilterConfig *Config) {
try {
cerr << "Restoring all configuration files...";
cerr << "Restoring all configuration files...";
Config->SaveFile.RestoreAllFilesFromBackup();
Config->SaveFile.RestoreAllFilesFromBackup();
Config->SetOwnerPermissionsOfConfigFiles();
Config->SetOwnerPermissionsOfConfigFiles();
cerr << "done.\n\n"
<< "Configuration files that resulted in this error are saved with a suffix \""
<< Config->SaveFile.GetFailedFileName("") << "\".\n";
cerr << "done.\n\n"
<< "Configuration files that resulted in this error are saved with a suffix \""
<< Config->SaveFile.GetFailedFileName("") << "\".\n";
}
catch(exception& e) {
cerr << "SNFMilterConfig::SaveFile Exception: " << e.what() << endl;
cerr << "SNFMilterConfig::SaveFile Exception: " << e.what() << endl;
}
@@ -67,47 +67,47 @@ int main(int argc, char* argv[]) {
SNFMilterConfig SnfMilterConfig;
if (!SnfMilterConfig.GetCommandLineInput(argc, argv) || // If our command line arguments
SnfMilterConfig.Help()) { // don't look right, or if help is
// requested then display our help
SnfMilterConfig.DisplayHelp(SNF_MILTERCONFIG_VERSION); // screen.
return 0;
try { // Catch anything that breaks loose.
}
if (!SnfMilterConfig.GetCommandLineInput(argc, argv) || // If our command line arguments
SnfMilterConfig.Help()) { // don't look right, or if help is
// requested then display our help
SnfMilterConfig.DisplayHelp(SNF_MILTERCONFIG_VERSION); // screen.
return 0;
bool DebugMode = false; // This will be our debug mode.
string argv0(argv[0]); // Capture how we were called.
if(
string::npos != argv0.find("Debug") || // If we find "Debug" or
string::npos != argv0.find("debug") // "debug" in our command path
) { // then we are in DebugMode.
DebugMode = true; // Set the flag and tell the
cout << SNF_MILTERCONFIG_VERSION << endl; // watchers.
cout << "Debug Mode" << endl;
SnfMilterConfig.SetDebug(true);
}
}
try { // Catch anything that breaks loose.
bool DebugMode = false; // This will be our debug mode.
string argv0(argv[0]); // Capture how we were called.
if(
string::npos != argv0.find("Debug") || // If we find "Debug" or
string::npos != argv0.find("debug") // "debug" in our command path
) { // then we are in DebugMode.
DebugMode = true; // Set the flag and tell the
cout << SNF_MILTERCONFIG_VERSION << endl; // watchers.
cout << "Debug Mode" << endl;
SnfMilterConfig.SetDebug(true);
}
SnfMilterConfig.ExecuteCommand();
SnfMilterConfig.ExecuteCommand();
} // That's all folks.
catch(exception& e) { // Report any normal exceptions.
cerr << "\n\nSNFMilterConfig Exception: " << e.what() << endl << endl;
RestoreFiles(&SnfMilterConfig);
return(-1);
RestoreFiles(&SnfMilterConfig);
return(-1);
}
catch (snfCFGmgr::LoadFailure) { // Error loading configuration file.
cerr << "\n\nsnfCFGmgr Exception: Unable to load the configuration file "
<< SnfMilterConfig.GetConfigFileName() << endl << endl;
RestoreFiles(&SnfMilterConfig);
return(-1);
cerr << "\n\nsnfCFGmgr Exception: Unable to load the configuration file "
<< SnfMilterConfig.GetConfigFileName() << endl << endl;
RestoreFiles(&SnfMilterConfig);
return(-1);
}
catch(...) { // Report any unexpected exceptions.
cerr << "\n\nSNFMilterConfig Panic! Unknown Exception!" << endl << endl;
RestoreFiles(&SnfMilterConfig);
return(-1);
RestoreFiles(&SnfMilterConfig);
return(-1);
}
return 0; // Normally we return zero.

Loading…
Откажи
Сачувај