(file) Return to cimserver.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Server

Diff for /pegasus/src/Server/cimserver.cpp between version 1.180 and 1.192

version 1.180, 2006/02/08 21:29:13 version 1.192, 2007/02/23 18:56:32
Line 29 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author: Mike Brasher (mbrasher@bmc.com)  
 //  
 // Modified By: Mike Day (mdday@us.ibm.com)  
 //              Karl Schopmeyer (k.schopmeyer@opengroup.org)  
 //              Nag Boranna (nagaraja_boranna@hp.com)  
 //              Jenny Yu (jenny_yu@hp.com)  
 //              Sushma Fernandes (sushma_fernandes@hp.com)  
 //              Carol Ann Krug Graves, Hewlett-Packard Company  
 //                  (carolann_graves@hp.com)  
 //              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)  
 //              Dave Rosckes (rosckes@us.ibm.com)  
 //              Humberto Rivero (hurivero@us.ibm.com)  
 //              Steve Hills (steve.hills@ncr.com)  
 //              Sean Keenan, Hewlett-Packard Company (sean.keenan@hp.com)  
 //              Amit K Arora, IBM (amitarora@in.ibm.com) - pep 167  
 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) - Bug#2555  
 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) - Bug#2032  
 //              Heather Sterling, IBM (hsterl@us.ibm.com) - PEP#222  
 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) - Bug#3452  
 //              David Dillard, VERITAS Software Corp.  
 //                  (david.dillard@veritas.com)  
 //              Aruran, IBM (ashanmug@in.ibm.com) for Bug# 4183  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
  
Line 126 
Line 103 
 #  include "OS400ConvertChar.h" #  include "OS400ConvertChar.h"
 #endif #endif
  
   #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
   #include <Service/ARM_zOS.h>
   # ifdef PEGASUS_ZOS_SECURITY
   // This include file will not be provided in the OpenGroup CVS for now.
   // Do NOT try to include it in your compile
   #  include <Pegasus/Common/safCheckzOS_inline.h>
   # endif
   #endif
   
 #if defined(PEGASUS_OS_TYPE_UNIX) #if defined(PEGASUS_OS_TYPE_UNIX)
 # if defined(PEGASUS_OS_OS400) # if defined(PEGASUS_OS_OS400)
 #  include <unistd.cleinc> #  include <unistd.cleinc>
Line 183 
Line 169 
     //defined in PegasusVersion.h     //defined in PegasusVersion.h
     virtual const char* getCompleteVersion() const     virtual const char* getCompleteVersion() const
     {     {
       if (PEGASUS_PRODUCT_STATUS == "" )        if (*PEGASUS_PRODUCT_STATUS == '\0' )
         return PEGASUS_PRODUCT_VERSION;         return PEGASUS_PRODUCT_VERSION;
       else       else
         return PEGASUS_PRODUCT_VERSION " " PEGASUS_PRODUCT_STATUS;         return PEGASUS_PRODUCT_VERSION " " PEGASUS_PRODUCT_STATUS;
Line 200 
Line 186 
         return PEGASUS_PROCESS_NAME;         return PEGASUS_PROCESS_NAME;
     }     }
  
     //defined in ConfigFileDir.h      //defined in Constants.h
     virtual const char* getPIDFileName() const     virtual const char* getPIDFileName() const
     {     {
         return CIMSERVER_START_FILE;          return PEGASUS_CIMSERVER_START_FILE;
     }     }
  
     int cimserver_run(     int cimserver_run(
Line 314 
Line 300 
     usage.append ("    -install [name] - installs pegasus as a Windows Service\n");     usage.append ("    -install [name] - installs pegasus as a Windows Service\n");
     usage.append ("                      [name] is optional and overrides the\n");     usage.append ("                      [name] is optional and overrides the\n");
     usage.append ("                      default CIM Server Service Name\n");     usage.append ("                      default CIM Server Service Name\n");
       usage.append ("                      by appending [name]\n");
     usage.append ("    -remove [name]  - removes pegasus as a Windows Service\n");     usage.append ("    -remove [name]  - removes pegasus as a Windows Service\n");
     usage.append ("                      [name] is optional and overrides the\n");     usage.append ("                      [name] is optional and overrides the\n");
     usage.append ("                      default CIM Server Service Name\n");     usage.append ("                      default CIM Server Service Name\n");
       usage.append ("                      by appending [name]\n");
     usage.append ("    -start [name]   - starts pegasus as a Windows Service\n");     usage.append ("    -start [name]   - starts pegasus as a Windows Service\n");
     usage.append ("                      [name] is optional and overrides the\n");     usage.append ("                      [name] is optional and overrides the\n");
     usage.append ("                      default CIM Server Service Name\n");     usage.append ("                      default CIM Server Service Name\n");
       usage.append ("                      by appending [name]\n");
     usage.append ("    -stop [name]    - stops pegasus as a Windows Service\n");     usage.append ("    -stop [name]    - stops pegasus as a Windows Service\n");
     usage.append ("                      [name] is optional and overrides the\n");     usage.append ("                      [name] is optional and overrides the\n");
     usage.append ("                      default CIM Server Service Name\n\n");      usage.append ("                      default CIM Server Service Name\n");
       usage.append ("                      by appending [name]\n\n");
 #endif #endif
     usage.append ("  configProperty=value\n");     usage.append ("  configProperty=value\n");
     usage.append ("                    - sets CIM Server configuration property\n");     usage.append ("                    - sets CIM Server configuration property\n");
Line 359 
Line 349 
         FileSystem::removeFile(_cimServerProcess->getPIDFileName());         FileSystem::removeFile(_cimServerProcess->getPIDFileName());
 #endif #endif
     }     }
    if (_monitor)  
    {  
         delete _monitor;         delete _monitor;
    }  
    if (dummyInitialThread)    if (dummyInitialThread)
    {    {
         Thread::clearLanguages();         Thread::clearLanguages();
Line 377 
Line 364 
 // needed to localize the exceptions thrown during CIM request processing. // needed to localize the exceptions thrown during CIM request processing.
 // Note: This function should never be called! // Note: This function should never be called!
 // //
 PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL dummyThreadFunc(void *parm)  ThreadReturnType PEGASUS_THREAD_CDECL dummyThreadFunc(void *parm)
 { {
    return((PEGASUS_THREAD_RETURN)0);     return((ThreadReturnType)0);
 } }
  
 // //
Line 928 
Line 915 
     // one of the variables is true.     // one of the variables is true.
     Boolean enableHttpConnection = false;     Boolean enableHttpConnection = false;
     Boolean enableHttpsConnection = false;     Boolean enableHttpsConnection = false;
     Boolean enableSSLExportClientVerification = false;  
  
     if (os400StartupOption == false)     if (os400StartupOption == false)
     {     {
       enableHttpConnection = String::equal(        enableHttpConnection = ConfigManager::parseBooleanValue(
           configManager->getCurrentValue("enableHttpConnection"), "true");            configManager->getCurrentValue("enableHttpConnection"));
       enableHttpsConnection = String::equal(        enableHttpsConnection = ConfigManager::parseBooleanValue(
           configManager->getCurrentValue("enableHttpsConnection"), "true");            configManager->getCurrentValue("enableHttpsConnection"));
       enableSSLExportClientVerification = String::equal(  
           configManager->getCurrentValue("enableSSLExportClientVerification"), "true");  
     }     }
 #else #else
     Boolean enableHttpConnection = String::equal(      Boolean enableHttpConnection = ConfigManager::parseBooleanValue(
         configManager->getCurrentValue("enableHttpConnection"), "true");          configManager->getCurrentValue("enableHttpConnection"));
     Boolean enableHttpsConnection = String::equal(      Boolean enableHttpsConnection = ConfigManager::parseBooleanValue(
         configManager->getCurrentValue("enableHttpsConnection"), "true");          configManager->getCurrentValue("enableHttpsConnection"));
     Boolean enableSSLExportClientVerification = String::equal(  
         configManager->getCurrentValue("enableSSLExportClientVerification"), "true");  
 #endif #endif
  
     // Make sure at least one connection is enabled     // Make sure at least one connection is enabled
Line 971 
Line 953 
     try     try
     {     {
         //         //
         // Check to see if we should Pegasus as a daemon          // Check to see if we should start Pegasus as a daemon
         //         //
  
         if (String::equal(configManager->getCurrentValue("daemon"), "true"))          daemonOption = ConfigManager::parseBooleanValue(
         {              configManager->getCurrentValue("daemon"));
             daemonOption = true;  
         }  
  
 #ifdef PEGASUS_OS_OS400 #ifdef PEGASUS_OS_OS400
     if (os400StartupOption == false)     if (os400StartupOption == false)
Line 1014 
Line 994 
             String configTimeout =             String configTimeout =
                 configManager->getCurrentValue("shutdownTimeout");                 configManager->getCurrentValue("shutdownTimeout");
             Uint32 timeoutValue = strtol(configTimeout.getCString(), (char **)0, 10);             Uint32 timeoutValue = strtol(configTimeout.getCString(), (char **)0, 10);
   // To deregister Pegasus with SLP
   #ifdef PEGASUS_SLP_REG_TIMEOUT
               unregisterPegasusFromSLP();
   #endif
  
             shutdownCIMOM(timeoutValue);             shutdownCIMOM(timeoutValue);
  
Line 1049 
Line 1033 
     }     }
     catch (UnrecognizedConfigProperty& e)     catch (UnrecognizedConfigProperty& e)
     {     {
           // UnrecognizedConfigProperty is already translated
 #ifdef PEGASUS_OS_OS400          // thus, just output the message
     //l10n          Logger::put(Logger::ERROR_LOG,
     //Logger::put(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,                      System::CIMSERVER,
             //"Error: $0",e.getMessage());                      Logger::SEVERE,
     Logger::put_l(Logger::ERROR_LOG, System::CIMSERVER, Logger::SEVERE,  
             "src.Server.cimserver.ERROR",  
             "Error: $0",e.getMessage());  
 #else  
     //l10n  
     //cout << "Error: " << e.getMessage() << endl;  
     MessageLoaderParms parms("src.Server.cimserver.ERROR",  
                              "Error: $0",  
                              e.getMessage());                              e.getMessage());
     cout << MessageLoader::getMessage(parms) << endl;  #ifndef PEGASUS_OS_OS400
           cout << e.getMessage() << endl;
 #endif #endif
     }     }
       catch (Exception& ex)
       {
           Logger::put(Logger::ERROR_LOG,
                         System::CIMSERVER,
                         Logger::SEVERE,
                         ex.getMessage());
   #ifndef PEGASUS_OS_OS400
           cout << ex.getMessage() << endl;
   #endif
           exit(1);
       }
   
   #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) && defined(PEGASUS_ZOS_SECURITY)
       startupCheckBPXServer(true);
       startupCheckProfileCIMSERVclassWBEM();
       startupEnableMSC();
   #endif
  
     // Bug 2148 - Here is the order of operations for determining the server HTTP and HTTPS ports.     // Bug 2148 - Here is the order of operations for determining the server HTTP and HTTPS ports.
     // 1) If the user explicitly specified a port, use it.     // 1) If the user explicitly specified a port, use it.
Line 1147 
Line 1141 
             }             }
         }         }
     }     }
   
   
     if (enableSSLExportClientVerification)  
     {  
         //  
         // No config property is looked up to get the default port number.  
         // Lookup the port defined in /etc/services for the service name  
         // wbem-exp-https and bind to that port. If the service is  not defined  
         // then log a warning message and do not start the cimserver.  
         //  
         Uint32 port = 0;  
   
         portNumberExportHttps = System::lookupPort(WBEM_EXPORT_HTTPS_SERVICE_NAME, port);  
   
         if (portNumberExportHttps == 0)  
         {  
             Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::WARNING,  
                 "src.Server.cimserver.EXPORT_HTTPS_PORT_NOT_DEFINED",  
                 "Port not defined for the service wbem-exp-https. CIMServer will not be started.");  
   
             MessageLoaderParms parms("src.Server.cimserver.EXPORT_HTTPS_PORT_NOT_DEFINED",  
                 "Port not defined for the service wbem-exp-https. CIMServer will not be started.");  
   
             cerr << MessageLoader::getMessage(parms) << endl;  
   
             return(1);  
         }  
     }  
 #if defined(PEGASUS_DEBUG) #if defined(PEGASUS_DEBUG)
     // Put out startup up message.     // Put out startup up message.
     cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getCompleteVersion() << endl;     cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getCompleteVersion() << endl;
Line 1293 
Line 1259 
         //cout << "Unable to start CIMServer." << endl;         //cout << "Unable to start CIMServer." << endl;
         //cout << "CIMServer is already running." << endl;         //cout << "CIMServer is already running." << endl;
         MessageLoaderParms parms("src.Server.cimserver.UNABLE_TO_START_SERVER_ALREADY_RUNNING",         MessageLoaderParms parms("src.Server.cimserver.UNABLE_TO_START_SERVER_ALREADY_RUNNING",
                      "Unable to start CIMServer.\nCIMServer is already running.");                       "Unable to start CIMServer. CIMServer is already running.");
     PEGASUS_STD(cerr) << MessageLoader::getMessage(parms) << PEGASUS_STD(endl);     PEGASUS_STD(cerr) << MessageLoader::getMessage(parms) << PEGASUS_STD(endl);
           Logger::put(Logger::ERROR_LOG,System::CIMSERVER,Logger::INFORMATION,
                       MessageLoader::getMessage(parms));
  
     //     //
         // notify parent process (if there is a parent process) to terminate         // notify parent process (if there is a parent process) to terminate
Line 1320 
Line 1288 
  
         if (enableHttpConnection)         if (enableHttpConnection)
         {         {
             _cimServer->addAcceptor(false, portNumberHttp, false, false);              _cimServer->addAcceptor(false, portNumberHttp, false);
             //l10n             //l10n
             //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,             //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                         //"Listening on HTTP port $0.", portNumberHttp);                         //"Listening on HTTP port $0.", portNumberHttp);
Line 1331 
Line 1299 
         }         }
         if (enableHttpsConnection)         if (enableHttpsConnection)
         {         {
             _cimServer->addAcceptor(false, portNumberHttps, true, false);              _cimServer->addAcceptor(false, portNumberHttps, true);
             //l10n             //l10n
             //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,             //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                         //"Listening on HTTPS port $0.", portNumberHttps);                         //"Listening on HTTPS port $0.", portNumberHttps);
Line 1339 
Line 1307 
                             "src.Server.cimserver.LISTENING_ON_HTTPS_PORT",                             "src.Server.cimserver.LISTENING_ON_HTTPS_PORT",
                             "Listening on HTTPS port $0.", portNumberHttps);                             "Listening on HTTPS port $0.", portNumberHttps);
         }         }
         if (enableSSLExportClientVerification)  
         {  
             _cimServer->addAcceptor(false, portNumberExportHttps, true, true);  
   
             Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,  
                 "src.Server.cimserver.LISTENING_ON_EXPORT_HTTPS_PORT",  
                 "Listening on Export HTTPS port $0.", portNumberExportHttps);  
         }  
  
 #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
         _cimServer->addAcceptor(true, 0, false, false);          _cimServer->addAcceptor(true, 0, false);
         //l10n         //l10n
         //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,         //Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::INFORMATION,
                     //"Listening on local connection socket.");                     //"Listening on local connection socket.");
Line 1375 
Line 1335 
                      "Listening on HTTPS port $0.", portNumberHttps);                      "Listening on HTTPS port $0.", portNumberHttps);
             cout << MessageLoader::getMessage(parms) << endl;             cout << MessageLoader::getMessage(parms) << endl;
         }         }
         if (enableSSLExportClientVerification)  
         {  
             MessageLoaderParms parms("src.Server.cimserver.LISTENING_ON_EXPORT_HTTPS_PORT",  
                 "Listening on Export HTTPS port $0.", portNumberExportHttps);  
   
             cout << MessageLoader::getMessage(parms) << endl;  
         }  
  
 # ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET # ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
         //l10n         //l10n
Line 1465 
Line 1418 
             "Started $0 version $1.",             "Started $0 version $1.",
                       _cimServerProcess->getProductName(), _cimServerProcess->getCompleteVersion());                       _cimServerProcess->getProductName(), _cimServerProcess->getCompleteVersion());
  
 #if defined(PEGASUS_OS_TYPE_UNIX)  #if defined(PEGASUS_OS_TYPE_UNIX) && !defined(PEGASUS_OS_ZOS)
         if (daemonOption && !debugOutputOption)         if (daemonOption && !debugOutputOption)
         {         {
             // Direct standard input, output, and error to /dev/null,             // Direct standard input, output, and error to /dev/null,
Line 1479 
Line 1432 
         }         }
 #endif #endif
  
   #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
   
           // ARM is a z/OS internal restart facility.
           // This is a z/OS specific change.
   
           // Instatiating the automatic restart manager for zOS
           ARM_zOS automaticRestartManager;
   
           // register to zOS ARM
           automaticRestartManager.Register();
   
   #endif
   
   
   
         //         //
         // Loop to call CIMServer's runForever() method until CIMServer         // Loop to call CIMServer's runForever() method until CIMServer
         // has been shutdown         // has been shutdown
Line 1493 
Line 1461 
         //         //
         // normal termination         // normal termination
         //         //
   #if defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
   
           // ARM is a z/OS internal restart facility.
           // This is a z/OS specific change.
   
           // register to zOS ARM
           automaticRestartManager.DeRegister();
   
   #endif
  
         // Put server shutdown message to the logger         // Put server shutdown message to the logger
         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,         Logger::put_l(Logger::STANDARD_LOG, System::CIMSERVER,


Legend:
Removed from v.1.180  
changed lines
  Added in v.1.192

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2