(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.176 and 1.188

version 1.176, 2006/01/10 19:41:21 version 1.188, 2006/08/09 21:13:10
Line 1 
Line 1 
 //%2005////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
Line 8 
Line 8 
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 // EMC Corporation; VERITAS Software Corporation; The Open Group. // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 48 
Line 50 
 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) - Bug#3452 //              Josephine Eskaline Joyce, IBM (jojustin@in.ibm.com) - Bug#3452
 //              David Dillard, VERITAS Software Corp. //              David Dillard, VERITAS Software Corp.
 //                  (david.dillard@veritas.com) //                  (david.dillard@veritas.com)
 //              Aruran, IBM (ashanmug@in.ibm.com) for Bug# 4183  //              Aruran, IBM (aruran.shanmug@in.ibm.com) for Bug# 4183, 4937
   //              Thilo Boehm, IBM (tboehm@de.ibm.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 124 
Line 127 
 #  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_OS400) #if defined(PEGASUS_OS_OS400)
 #  include <unistd.cleinc> #  include <unistd.cleinc>
 #elif defined(PEGASUS_OS_TYPE_UNIX)  # else
 #  include <unistd.h> #  include <unistd.h>
 #endif #endif
   # include <sys/types.h>
   # include <sys/stat.h>
   # include <fcntl.h>
   #endif
  
 PEGASUS_USING_PEGASUS; PEGASUS_USING_PEGASUS;
 PEGASUS_USING_STD; PEGASUS_USING_STD;
Line 175 
Line 191 
     }     }
  
     //defined in PegasusVersion.h     //defined in PegasusVersion.h
       virtual const char* getCompleteVersion() const
       {
         if (*PEGASUS_PRODUCT_STATUS == '\0' )
           return PEGASUS_PRODUCT_VERSION;
         else
           return PEGASUS_PRODUCT_VERSION " " PEGASUS_PRODUCT_STATUS;
       }
   
       //defined in PegasusVersion.h
     virtual const char* getVersion() const     virtual const char* getVersion() const
     {     {
         return PEGASUS_PRODUCT_VERSION;         return PEGASUS_PRODUCT_VERSION;
Line 185 
Line 210 
         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 argc, char** argv, bool shutdownOption);      int cimserver_run(
           int argc,
           char** argv,
           Boolean shutdownOption,
           Boolean debugOutputOption);
  
     void cimserver_stop(void);     void cimserver_stop(void);
 }; };
Line 225 
Line 254 
  
 static const char   LONG_VERSION []  = "version"; static const char   LONG_VERSION []  = "version";
  
 #if defined(PEGASUS_OS_HPUX)  static const char OPTION_DEBUGOUTPUT = 'X';
 static const char OPTION_BINDVERBOSE = 'X';  
 #endif  
  
 static const String PROPERTY_TIMEOUT = "shutdownTimeout"; static const String PROPERTY_TIMEOUT = "shutdownTimeout";
  
Line 297 
Line 324 
     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");
  
     cout << endl;     cout << endl;
     cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getVersion() << endl;      cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getCompleteVersion() << endl;
     cout << endl;     cout << endl;
  
 #if defined(PEGASUS_OS_TYPE_WINDOWS) #if defined(PEGASUS_OS_TYPE_WINDOWS)
Line 342 
Line 373 
         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 360 
Line 388 
 // 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 602 
Line 630 
 { {
     String pegasusHome  = String::EMPTY;     String pegasusHome  = String::EMPTY;
     Boolean shutdownOption = false;     Boolean shutdownOption = false;
       Boolean debugOutputOption = false;
  
 //l10n //l10n
 // Set Message loading to process locale // Set Message loading to process locale
Line 684 
Line 713 
             }             }
             else if(String::equal(arg,"--version"))             else if(String::equal(arg,"--version"))
             {             {
                 cout << _cimServerProcess->getVersion() << endl;                  cout << _cimServerProcess->getCompleteVersion() << endl;
                 exit(0);                 exit(0);
             }             }
             // Check for -option             // Check for -option
Line 699 
Line 728 
                 if (*option == OPTION_VERSION &&                 if (*option == OPTION_VERSION &&
                     strlen(option) == 1)                     strlen(option) == 1)
                 {                 {
                     cout << _cimServerProcess->getVersion() << endl;                      cout << _cimServerProcess->getCompleteVersion() << endl;
                     exit(0);                     exit(0);
                 }                 }
                 //                 //
Line 735 
Line 764 
                     argc -= 2;                     argc -= 2;
                 }                 }
 #endif #endif
 #if defined(PEGASUS_OS_HPUX)  
                 //                 //
                 // Check to see if user asked for the version (-X option):                  // Check to see if user asked for debug output (-X option):
                 //                 //
                 if (*option == OPTION_BINDVERBOSE &&                  else if (*option == OPTION_DEBUGOUTPUT &&
                         (strlen(option) == 1))                         (strlen(option) == 1))
                 {                 {
             System::bindVerbose = true;                      MessageLoaderParms parms(
                     //l10n                          "src.Server.cimserver.UNSUPPORTED_DEBUG_OPTION",
                     //cout << "Unsupported debug option, BIND_VERBOSE, enabled."                          "Unsupported debug output option is enabled.");
                          //<< endl;  
                     MessageLoaderParms parms("src.Server.cimserver.UNSUPPORTED_DEBUG_OPTION",  
                                          "Unsupported debug option, BIND_VERBOSE, enabled.");  
                     cout << MessageLoader::getMessage(parms) << endl;                     cout << MessageLoader::getMessage(parms) << endl;
   
                       debugOutputOption = true;
   
   #if defined(PEGASUS_OS_HPUX)
                       System::bindVerbose = true;
   #endif
   
                     // remove the option from the command line                     // remove the option from the command line
                     memmove(&argv[i], &argv[i + 1], (argc-i) * sizeof(char*));                     memmove(&argv[i], &argv[i + 1], (argc-i) * sizeof(char*));
                     argc--;                     argc--;
                 }                 }
 #endif  
                 //                 //
                 // Check to see if user asked for shutdown (-s option):                 // Check to see if user asked for shutdown (-s option):
                 //                 //
Line 796 
Line 827 
     // Do the platform specific run     // Do the platform specific run
     //     //
  
     return _cimServerProcess->platform_run( argc, argv, shutdownOption );      return _cimServerProcess->platform_run(
           argc, argv, shutdownOption, debugOutputOption);
 } }
  
 void CIMServerProcess::cimserver_stop() void CIMServerProcess::cimserver_stop()
Line 817 
Line 849 
 // specific runs may need to deal with better (instead of exit(), etc). // specific runs may need to deal with better (instead of exit(), etc).
 // //
  
 int CIMServerProcess::cimserver_run( int argc, char** argv, Boolean shutdownOption )  int CIMServerProcess::cimserver_run(
       int argc,
       char** argv,
       Boolean shutdownOption,
       Boolean debugOutputOption)
 { {
     String logsDirectory = String::EMPTY;     String logsDirectory = String::EMPTY;
     Boolean daemonOption = false;     Boolean daemonOption = false;
Line 907 
Line 943 
  
     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(        enableSSLExportClientVerification = ConfigManager::parseBooleanValue(
           configManager->getCurrentValue("enableSSLExportClientVerification"), "true");            configManager->getCurrentValue("enableSSLExportClientVerification"));
     }     }
 #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(      Boolean enableSSLExportClientVerification =
         configManager->getCurrentValue("enableSSLExportClientVerification"), "true");          ConfigManager::parseBooleanValue(configManager->getCurrentValue(
               "enableSSLExportClientVerification"));
 #endif #endif
  
     // Make sure at least one connection is enabled     // Make sure at least one connection is enabled
Line 946 
Line 983 
     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 1024 
Line 1059 
     }     }
     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
       }
       catch (Exception& ex)
       {
           Logger::put(Logger::ERROR_LOG,
                         System::CIMSERVER,
                         Logger::SEVERE,
                         ex.getMessage());
   #ifndef PEGASUS_OS_OS400
           cout << ex.getMessage() << endl;
 #endif #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.
     // 2) If the user did not specify a port, get the port from the services file.     // 2) If the user did not specify a port, get the port from the services file.
Line 1152 
Line 1197 
     }     }
 #if defined(PEGASUS_DEBUG) #if defined(PEGASUS_DEBUG)
     // Put out startup up message.     // Put out startup up message.
     cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getVersion() << endl;      cout << _cimServerProcess->getProductName() << " " << _cimServerProcess->getCompleteVersion() << endl;
     //l10n     //l10n
     //cout << "Built " << __DATE__ << " " << __TIME__ << endl;     //cout << "Built " << __DATE__ << " " << __TIME__ << endl;
     //cout <<"Starting..."     //cout <<"Starting..."
Line 1246 
Line 1291 
  
   FILE *startupLockFile;   FILE *startupLockFile;
  
   if (startupLockFile = fopen(ConfigManager::getHomedPath(CIMSERVER_LOCK_FILE).getCString(), "w"))    if ((startupLockFile = fopen(ConfigManager::getHomedPath(
             CIMSERVER_LOCK_FILE).getCString(), "w")) != 0)
   {   {
       lockf(fileno(startupLockFile), F_LOCK, 0);       lockf(fileno(startupLockFile), F_LOCK, 0);
   }   }
Line 1437 
Line 1483 
             Logger::INFORMATION,             Logger::INFORMATION,
             "src.Server.cimserver.STARTED_VERSION",             "src.Server.cimserver.STARTED_VERSION",
             "Started $0 version $1.",             "Started $0 version $1.",
             _cimServerProcess->getProductName(), _cimServerProcess->getVersion());                        _cimServerProcess->getProductName(), _cimServerProcess->getCompleteVersion());
   
   #if defined(PEGASUS_OS_TYPE_UNIX)
           if (daemonOption && !debugOutputOption)
           {
               // Direct standard input, output, and error to /dev/null,
               // since we are running as a daemon.
               close(0);
               open("/dev/null", O_RDONLY);
               close(1);
               open("/dev/null", O_RDWR);
               close(2);
               open("/dev/null", O_RDWR);
           }
   #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
Line 1453 
Line 1528 
         //         //
         // 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.176  
changed lines
  Added in v.1.188

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2