version 1.121, 2003/10/22 14:26:19
|
version 1.133, 2004/04/08 14:54:43
|
|
|
| |
cm->mergeCommandLine(argc, argv); | cm->mergeCommandLine(argc, argv); |
} | } |
catch (NoSuchFile nsf) |
catch (NoSuchFile&) |
{ | { |
throw nsf; |
throw; |
} | } |
catch (FileNotReadable fnr) |
catch (FileNotReadable&) |
{ | { |
throw fnr; |
throw; |
} | } |
catch (CannotRenameFile ftrf) |
catch (CannotRenameFile&) |
{ | { |
throw ftrf; |
throw; |
} | } |
catch (ConfigFileSyntaxError cfse) |
catch (ConfigFileSyntaxError&) |
{ | { |
throw cfse; |
throw; |
} | } |
catch(UnrecognizedConfigProperty ucp) |
catch(UnrecognizedConfigProperty&) |
{ | { |
throw ucp; |
throw; |
} | } |
catch(InvalidPropertyValue ipv) |
catch(InvalidPropertyValue&) |
{ | { |
throw ipv; |
throw; |
|
} |
|
catch (CannotOpenFile&) |
|
{ |
|
throw; |
} | } |
} | } |
| |
|
|
cimserver_exitRC(1); | cimserver_exitRC(1); |
#endif | #endif |
| |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) || defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) |
if (kill_rc != -1) | if (kill_rc != -1) |
{ | { |
//l10n - TODO | //l10n - TODO |
|
|
(strlen(option) == 1)) | (strlen(option) == 1)) |
{ | { |
// | // |
// check to see if user is root |
|
// |
|
#ifndef PEGASUS_OS_OS400 |
|
if (!System::isPrivilegedUser(System::getEffectiveUserName())) |
|
{ |
|
//l10n |
|
//cout << "You must have superuser privilege to run "; |
|
//cout << "cimserver." << endl; |
|
MessageLoaderParms parms("src.Server.cimserver.SUPERVISOR_PRIVILEGE_TO_RUN_SERVER", |
|
"You must have superuser privilege to run cimserver."); |
|
|
|
cout << MessageLoader::getMessage(parms) << endl; |
|
exit(0); |
|
} |
|
#endif |
|
|
|
// |
|
// Check to see if shutdown has already been specified: | // Check to see if shutdown has already been specified: |
// | // |
if (shutdownOption) | if (shutdownOption) |
|
|
// | // |
configManager = ConfigManager::getInstance(); | configManager = ConfigManager::getInstance(); |
| |
|
#ifdef PEGASUS_OS_OS400 |
|
// In a special startup case for IBM OS400, when the server is |
|
// automatically started when the machine starts up the config |
|
// file cannot be read because of access restrictions for the |
|
// user starting the server. In this case, we need to skip |
|
// reading the config options and therefore any use of the config |
|
// manager also. To make this determinations we will check to see |
|
// if the daemon flag is set to true. If so, then there will be a |
|
// series of checks to bracket all the calls to the configManager |
|
// which would otherwise fail. All this will only be done for |
|
// IBM OS400. |
|
|
|
Boolean os400StartupOption = false; |
|
// loop through args to check for daemon=true |
|
for (int i=1; i < argc; i++) |
|
if (strcmp(argv[i], "daemon=true") == 0) |
|
{ |
|
os400StartupOption = true; |
|
daemonOption = true; |
|
} |
|
#endif |
|
|
// | // |
// Get options (from command line and from configuration file); this | // Get options (from command line and from configuration file); this |
// removes corresponding options and their arguments from the command | // removes corresponding options and their arguments from the command |
|
|
// | // |
try | try |
{ | { |
|
#ifdef PEGASUS_OS_OS400 |
|
if (os400StartupOption == false) |
|
#endif |
GetOptions(configManager, argc, argv); | GetOptions(configManager, argc, argv); |
} | } |
catch (Exception& e) | catch (Exception& e) |
{ | { |
#ifdef PEGASUS_OS_OS400 |
Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE, |
Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE, |
"src.Server.cimserver.SERVER_NOT_STARTED", |
"$0: $1",argv[0] ,e.getMessage()); |
"cimserver not started: $0", e.getMessage()); |
#else |
|
cerr << argv[0] << ": " << e.getMessage() << endl; |
#if !defined(PEGASUS_OS_OS400) |
|
MessageLoaderParms parms("src.Server.cimserver.SERVER_NOT_STARTED", |
|
"cimserver not started: $0", e.getMessage()); |
|
|
|
PEGASUS_STD(cerr) << argv[0] << ": " << MessageLoader::getMessage(parms) |
|
<< PEGASUS_STD(endl); |
#endif | #endif |
|
|
return(1); | return(1); |
} | } |
| |
|
|
// Set the home directory, msg sub-dir, into the MessageLoader. | // Set the home directory, msg sub-dir, into the MessageLoader. |
// This will be the default directory where the resource bundles | // This will be the default directory where the resource bundles |
// are found. | // are found. |
String messagesDir = String::EMPTY; |
MessageLoader::setPegasusMsgHome(ConfigManager::getHomedPath( |
#ifdef PEGASUS_PLATFORM_OS400_ISERIES_IBM |
ConfigManager::getInstance()->getCurrentValue("messageDir"))); |
messagesDir = OS400_DEFAULT_MESSAGE_SOURCE; |
|
#else |
|
messagesDir = ConfigManager::getHomedPath("msg"); |
|
#endif |
|
MessageLoader::setPegasusMsgHome(messagesDir); |
|
| |
|
#ifdef PEGASUS_OS_OS400 |
|
// Still need to declare and set the connection variables. |
|
// Will initialize to false since they are fixed at false for OS400. |
|
|
|
// NOTE: OS400 is a LOCAL_DOMAIN_SOCKET, so a few lines down |
|
// the test will not be compiled in. If OS400 ever turns off that |
|
// define, then we will need to change this code path to insure that |
|
// one of the variables is true. |
|
Boolean enableHttpConnection = false; |
|
Boolean enableHttpsConnection = false; |
|
|
|
if (os400StartupOption == false) |
|
{ |
|
enableHttpConnection = String::equal( |
|
configManager->getCurrentValue("enableHttpConnection"), "true"); |
|
enableHttpsConnection = String::equal( |
|
configManager->getCurrentValue("enableHttpsConnection"), "true"); |
|
} |
|
#else |
Boolean enableHttpConnection = String::equal( | Boolean enableHttpConnection = String::equal( |
configManager->getCurrentValue("enableHttpConnection"), "true"); | configManager->getCurrentValue("enableHttpConnection"), "true"); |
Boolean enableHttpsConnection = String::equal( | Boolean enableHttpsConnection = String::equal( |
configManager->getCurrentValue("enableHttpsConnection"), "true"); | configManager->getCurrentValue("enableHttpsConnection"), "true"); |
|
#endif |
| |
// Make sure at least one connection is enabled | // Make sure at least one connection is enabled |
#ifndef PEGASUS_LOCAL_DOMAIN_SOCKET | #ifndef PEGASUS_LOCAL_DOMAIN_SOCKET |
|
|
daemonOption = true; | daemonOption = true; |
} | } |
| |
|
#ifdef PEGASUS_OS_OS400 |
|
if (os400StartupOption == false) |
|
{ |
|
#endif |
// Get the log file directory definition. | // Get the log file directory definition. |
// We put String into Cstring because | // We put String into Cstring because |
// Directory functions only handle Cstring. | // Directory functions only handle Cstring. |
|
|
logsDirectory = configManager->getCurrentValue("logdir"); | logsDirectory = configManager->getCurrentValue("logdir"); |
logsDirectory = | logsDirectory = |
ConfigManager::getHomedPath(configManager->getCurrentValue("logdir")); | ConfigManager::getHomedPath(configManager->getCurrentValue("logdir")); |
|
#ifdef PEGASUS_OS_OS400 |
|
} // end if (os400StartupOption == false) |
|
#endif |
| |
// Set up the Logger. This does not open the logs | // Set up the Logger. This does not open the logs |
// Might be more logical to clean before set. | // Might be more logical to clean before set. |
|
|
| |
| |
} | } |
catch (UnrecognizedConfigProperty e) |
catch (UnrecognizedConfigProperty& e) |
{ | { |
| |
#ifdef PEGASUS_OS_OS400 | #ifdef PEGASUS_OS_OS400 |
|
|
try{ | try{ |
default_al = AcceptLanguages::getDefaultAcceptLanguages(); | default_al = AcceptLanguages::getDefaultAcceptLanguages(); |
Thread::setLanguages(new AcceptLanguages(default_al)); | Thread::setLanguages(new AcceptLanguages(default_al)); |
}catch(InvalidAcceptLanguageHeader e){ |
}catch(InvalidAcceptLanguageHeader& e){ |
Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE, | Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE, |
"src.Server.cimserver.FAILED_TO_SET_PROCESS_LOCALE", | "src.Server.cimserver.FAILED_TO_SET_PROCESS_LOCALE", |
"Could not convert the system process locale into a valid AcceptLanguage format."); | "Could not convert the system process locale into a valid AcceptLanguage format."); |
|
|
#endif | #endif |
| |
| |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) || defined(PEGASUS_OS_AIX) || defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) |
umask(S_IWGRP|S_IWOTH); | umask(S_IWGRP|S_IWOTH); |
| |
// | // |
|
|
| |
| |
| |
#if defined(PEGASUS_MONITOR2) |
#if defined(PEGASUS_USE_23HTTPMONITOR_SERVER) |
monitor_2 monitor; |
Monitor monitor(true); |
CIMServer server(&monitor); | CIMServer server(&monitor); |
#else | #else |
|
monitor_2 monitor; |
Monitor monitor(true); |
|
CIMServer server(&monitor); | CIMServer server(&monitor); |
#endif | #endif |
| |
|
|
| |
time_t last = 0; | time_t last = 0; |
| |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) || defined(PEGASUS_OS_AIX) || defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) |
// | // |
// create a file to indicate that the cimserver has started and | // create a file to indicate that the cimserver has started and |
// save the process id of the cimserver process in the file | // save the process id of the cimserver process in the file |
|
|
"$0 stopped.", PEGASUS_NAME); | "$0 stopped.", PEGASUS_NAME); |
#endif | #endif |
| |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) |
#if defined(PEGASUS_OS_HPUX) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU) || defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) || defined(PEGASUS_OS_AIX) || defined(PEGASUS_PLATFORM_SOLARIS_SPARC_CC) |
// | // |
// close the file created at startup time to indicate that the | // close the file created at startup time to indicate that the |
// cimserver has terminated normally. | // cimserver has terminated normally. |
|
|
| |
return 0; | return 0; |
} | } |
|
|
|
|
|
|
|
|