STATUS UserManager::UpdateWrongLoginCountCallback( void *pContext, STATUS status ){ UPDATE_INVALID_LOGIN_CELL *pCell = (UPDATE_INVALID_LOGIN_CELL *)pContext; User *pUser = (User *)GetManagedObject( &pCell->userId ); ValueSet *pRc = new ValueSet, *pReturnSet = new ValueSet; if( pUser ){ if( !pCell->numberOfWrongLogins ){ pUser->AddOpenSession( pCell->pResponder->GetSessionID() ); pUser->BuildYourValueSet(); pRc->AddInt( SSAPI_RC_SUCCESS, SSAPI_RETURN_STATUS ); pReturnSet->AddValue( pUser, SSAPI_USER_MANAGER_LOGIN_USER_OBJECT ); pReturnSet->AddValue( pRc, SSAPI_RETURN_STATUS_SET ); pCell->pResponder->Respond( pReturnSet, TRUE ); } else pCell->pResponder->RespondToRequest( SSAPI_EXCEPTION_SECURITY, CTS_SSAPI_USERNAME_PASSWORD_INVALID ); pUser->SetNumberOfWrongLogins( pCell->numberOfWrongLogins ); delete pRc; delete pReturnSet; } SetIsReadyToServiceRequests( true ); delete pCell; return OK; }