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

Diff for /pegasus/src/Pegasus/IndicationService/IndicationService.cpp between version 1.197 and 1.198

version 1.197, 2006/02/10 22:20:43 version 1.198, 2006/05/09 19:09:36
Line 110 
Line 110 
       _cimRepository(repository)       _cimRepository(repository)
 { {
     _enableSubscriptionsForNonprivilegedUsers = false;     _enableSubscriptionsForNonprivilegedUsers = false;
       _authenticationEnabled = true;
  
     try     try
     {     {
Line 126 
Line 127 
         }         }
         else         else
         {         {
               _authenticationEnabled = false;
             // Authentication needs to be enabled to perform authorization             // Authentication needs to be enabled to perform authorization
             // tests.             // tests.
             _enableSubscriptionsForNonprivilegedUsers = true;             _enableSubscriptionsForNonprivilegedUsers = true;
Line 357 
Line 359 
          }          }
          break;          break;
  
         case CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE:
            try
            {
                _handleNotifyProviderFailRequest (message);
            }
            catch (...)
            {
                ;
            }
            break;
   
       default:       default:
         //         //
         //  A message type not supported by the Indication Service         //  A message type not supported by the Indication Service
Line 1410 
Line 1423 
     (const Message* message)     (const Message* message)
 { {
     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,     PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,
         "IndicationService::_handleEnumerateInstancesNamesRequest");          "IndicationService::_handleEnumerateInstanceNamesRequest");
  
     CIMEnumerateInstanceNamesRequestMessage* request =     CIMEnumerateInstanceNamesRequestMessage* request =
         (CIMEnumerateInstanceNamesRequestMessage*) message;         (CIMEnumerateInstanceNamesRequestMessage*) message;
Line 2879 
Line 2892 
         //         //
         //  Get list of affected subscriptions         //  Get list of affected subscriptions
         //         //
         //  _subscriptionTable->getAndUpdateProviderSubscriptions also updates the          //  _subscriptionTable->reflectProviderDisable also updates the
         //  Active Subscriptions hash table, and implements each subscription's         //  Active Subscriptions hash table, and implements each subscription's
         //  On Fatal Error policy, if necessary         //  On Fatal Error policy, if necessary
         //         //
         providerSubscriptions.clear ();         providerSubscriptions.clear ();
         providerSubscriptions = _subscriptionTable->getAndUpdateProviderSubscriptions          providerSubscriptions = _subscriptionTable->reflectProviderDisable
             (providers [i]);             (providers [i]);
  
         if (providerSubscriptions.size () > 0)         if (providerSubscriptions.size () > 0)
Line 3240 
Line 3253 
     PEG_METHOD_EXIT ();     PEG_METHOD_EXIT ();
 } }
  
   void IndicationService::_handleNotifyProviderFailRequest
       (Message * message)
   {
       PEG_METHOD_ENTER (TRC_INDICATION_SERVICE,
           "IndicationService::_handleNotifyProviderFailRequest");
   
       CIMNotifyProviderFailRequestMessage * request =
           dynamic_cast <CIMNotifyProviderFailRequestMessage *> (message);
   
       String moduleName = request->moduleName;
       String userName = request->userName;
   
       //
       //  Determine providers in module that were serving active subscriptions
       //  and update the Active Subscriptions Table
       //
       Array <ActiveSubscriptionsTableEntry> providerModuleSubscriptions =
           _subscriptionTable->reflectProviderModuleFailure
               (moduleName, userName, _authenticationEnabled);
   
       //
       //  FUTURE: Attempt to recreate the subscription state
       //
   
       //
       //  Send response
       //
       CIMResponseMessage * response = request->buildResponse ();
       CIMNotifyProviderFailResponseMessage * failResponse =
           (CIMNotifyProviderFailResponseMessage *) response;
       failResponse->numSubscriptionsAffected =
           providerModuleSubscriptions.size ();
       _enqueueResponse (request, response);
   }
   
 Boolean IndicationService::_canCreate ( Boolean IndicationService::_canCreate (
     CIMInstance & instance,     CIMInstance & instance,
     const CIMNamespaceName & nameSpace)     const CIMNamespaceName & nameSpace)
Line 6366 
Line 6414 
         return;         return;
     }     }
  
       //
       //  Update subscription hash tables
       //
       _subscriptionTable->removeSubscription
           (subscription,
           indicationSubclasses,
           nameSpace,
           indicationProviders);
   
     CIMRequestMessage * aggRequest = 0;     CIMRequestMessage * aggRequest = 0;
  
     if (origRequest == 0)     if (origRequest == 0)
Line 6856 
Line 6913 
     }     }
  
     //     //
     //  Update subscription hash tables  
     //  Delete Instance, Modify Instance, or Delete Referencing or Expired  
     //  Subscription  
     //  
     CIMDeleteSubscriptionRequestMessage * request =  
         (CIMDeleteSubscriptionRequestMessage *)  
             operationAggregate->getRequest (0);  
   
     _subscriptionTable->removeSubscription  
         (request->subscriptionInstance,  
         operationAggregate->getIndicationSubclasses (),  
         request->nameSpace,  
         checkProviders);  
   
     //  
     //  For Delete Instance or Modify Instance request, send response     //  For Delete Instance or Modify Instance request, send response
     //     //
     if (operationAggregate->requiresResponse ())     if (operationAggregate->requiresResponse ())


Legend:
Removed from v.1.197  
changed lines
  Added in v.1.198

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2