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

Diff for /pegasus/src/WMIMapper/WMIServer/cimserver.cpp between version 1.3 and 1.11

version 1.3, 2003/09/11 18:50:28 version 1.11, 2004/10/17 20:40:42
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2004////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software 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 42 
Line 46 
 // //
 // Modified By: Jair Santos, Hewlett-Packard Company (jair.santos@hp.com) // Modified By: Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
 // //
   // Modified By: Dan Gorey (djgorey@us.ibm.com)
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
  
Line 106 
Line 111 
 #include <Pegasus/Config/ConfigManager.h> #include <Pegasus/Config/ConfigManager.h>
 #include <Pegasus/Client/CIMClient.h> #include <Pegasus/Client/CIMClient.h>
 #include <Pegasus/Server/ShutdownService.h> #include <Pegasus/Server/ShutdownService.h>
 #include <Pegasus/Common/Destroyer.h>  
 #if !defined(PEGASUS_OS_ZOS) && ! defined(PEGASUS_OS_HPUX) && ! defined(PEGASUS_NO_SLP)  
 #include <slp/slp.h>  
 #endif  
  
  
 #if defined(PEGASUS_OS_TYPE_WINDOWS) #if defined(PEGASUS_OS_TYPE_WINDOWS)
Line 179 
Line 180 
  
         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;
     }     }
 } }
  
Line 657 
Line 658 
     // Get an instance of the Config Manager.     // Get an instance of the Config Manager.
     //     //
     configManager = ConfigManager::getInstance();     configManager = ConfigManager::getInstance();
       configManager->useConfigFiles = true;
  
     //     //
     // Get options (from command line and from configuration file); this     // Get options (from command line and from configuration file); this
Line 694 
Line 696 
         configManager->getCurrentValue("enableHttpConnection"), "true");         configManager->getCurrentValue("enableHttpConnection"), "true");
     Boolean enableHttpsConnection = String::equal(     Boolean enableHttpsConnection = String::equal(
         configManager->getCurrentValue("enableHttpsConnection"), "true");         configManager->getCurrentValue("enableHttpsConnection"), "true");
       Boolean enableSSLExportClientVerification  = String::equal(
           configManager->getCurrentValue("enableSSLExportClientVerification"), "true");
  
     // 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
Line 768 
Line 772 
             useSLP =  true;             useSLP =  true;
         }         }
     }     }
     catch (UnrecognizedConfigProperty e)      catch (UnrecognizedConfigProperty& e)
     {     {
  
 #ifdef PEGASUS_OS_OS400 #ifdef PEGASUS_OS_OS400
Line 781 
Line 785 
  
     Uint32 portNumberHttps;     Uint32 portNumberHttps;
     Uint32 portNumberHttp;     Uint32 portNumberHttp;
       Uint32 portNumberExportHttps;
  
     if (enableHttpsConnection)     if (enableHttpsConnection)
     {     {
Line 810 
Line 815 
         portNumberHttp = System::lookupPort(WBEM_HTTP_SERVICE_NAME, port);         portNumberHttp = System::lookupPort(WBEM_HTTP_SERVICE_NAME, port);
     }     }
  
       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);
          }
       }
   
     // Put out startup up message.     // Put out startup up message.
 #if !defined(PEGASUS_OS_HPUX) && !defined(PEGASUS_PLATFORM_LINUX_IA64_GNU) && \ #if !defined(PEGASUS_OS_HPUX) && !defined(PEGASUS_PLATFORM_LINUX_IA64_GNU) && \
 !defined(PEGASUS_OS_OS400) !defined(PEGASUS_OS_OS400)
Line 878 
Line 910 
     // try loop to bind the address, and run the server     // try loop to bind the address, and run the server
     try     try
     {     {
 #if !defined(PEGASUS_OS_ZOS) && ! defined(PEGASUS_OS_HPUX) && ! defined(PEGASUS_NO_SLP)          #ifdef PEGASUS_USE_23HTTPMONITOR_CLIENT
         char slp_address[32];  
         slp_client *discovery = new slp_client() ;;  
         String serviceURL;  
         serviceURL.assign("service:cim.pegasus://");  
         String host_name = slp_get_host_name();  
         serviceURL.append(host_name);  
         serviceURL.append(":");  
         // ATTN: Fix this to work for multiple connections  
         sprintf(slp_address, "%u",  
                 enableHttpConnection ? portNumberHttp : portNumberHttps);  
         serviceURL.append(slp_address);  
 #endif  
   
         Monitor monitor(true);         Monitor monitor(true);
           #else
           monitor_2 monitor();
           #endif
         CIMServer server(&monitor);         CIMServer server(&monitor);
  
         if (enableHttpConnection)         if (enableHttpConnection)
         {         {
             server.addAcceptor(false, portNumberHttp, false);              server.addAcceptor(false, portNumberHttp, false, false);
             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);
         }         }
         if (enableHttpsConnection)         if (enableHttpsConnection)
         {         {
             server.addAcceptor(false, portNumberHttps, true);              server.addAcceptor(false, portNumberHttps, true, false);
             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);
         }         }
           if (enableSSLExportClientVerification)
           {
               server.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);
           }
   
 #ifdef PEGASUS_LOCAL_DOMAIN_SOCKET #ifdef PEGASUS_LOCAL_DOMAIN_SOCKET
         server.addAcceptor(true, 0, false);          server.addAcceptor(true, 0, false, false);
         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.");
 #endif #endif
Line 922 
Line 953 
         {         {
             cout << "Listening on HTTPS port " << portNumberHttps << endl;             cout << "Listening on HTTPS port " << portNumberHttps << 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;
           }
   
   
 # ifdef PEGASUS_LOCAL_DOMAIN_SOCKET # ifdef PEGASUS_LOCAL_DOMAIN_SOCKET
         cout << "Listening on local connection socket" << endl;         cout << "Listening on local connection socket" << endl;
 # endif # endif
Line 979 
Line 1019 
         //         //
         while( !server.terminated() )         while( !server.terminated() )
         {         {
 #if !defined(PEGASUS_OS_ZOS) && ! defined(PEGASUS_OS_HPUX) && ! defined(PEGASUS_NO_SLP)  
           if(useSLP  )  
           {  
             if(  (time(NULL) - last ) > 60 )  
             {  
               if( discovery != NULL && serviceURL.size() )  
                 discovery->srv_reg_all(serviceURL.getCString(),  
                                        "(namespace=root/cimv2)",  
                                        "service:cim.pegasus",  
                                        "DEFAULT",  
                                        70) ;  
               time(&last);  
             }  
   
             discovery->service_listener();  
           }  
 #endif  
           server.runForever();           server.runForever();
         }         }
  


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.11

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2