Пример #1
0
void ut_cstunbinding::UT_CSTUNBinding_HandleDataLL(  )
    {
    _LIT8( KPassword,"aaaabbbbccccdddd");
    TBufC8<16> password( KPassword );
    _LIT8( KTransactionId,"aaaabbbb");
    TNATFWUNSAFTransactionID transactionID;
    transactionID.Copy( KTransactionId );    
    
    CNATFWUNSAFBindingRequest* request = CNATFWUNSAFBindingRequest::NewLC( transactionID );
    CBufBase* msg = request->EncodeL( password );
    CleanupStack::PushL( msg );        
    TInt length = msg->Size();
    HBufC8* readBuf1 = HBufC8::NewLC( length );
    TPtr8 writable1( readBuf1->Des() );
    msg->Read( 0, writable1 );
    
    TInetAddr remoteAddr;
    TBool consumed = EFalse;    
    HBufC8* ptr = iBinding->HandleDataL( *readBuf1, consumed, remoteAddr );    
    EUNIT_ASSERT( NULL == ptr );             
    EUNIT_ASSERT( EFalse == consumed );
    
    delete ptr;
    CleanupStack::PopAndDestroy( readBuf1 );
    CleanupStack::PopAndDestroy( msg );
    CleanupStack::PopAndDestroy( request );  
    }
Пример #2
0
// ---------------------------------------------------------------------------
// CNSmlDmACLParser::GenerateL()
// Generates ACL data string from the kept data.
// ---------------------------------------------------------------------------
HBufC8* CNSmlDmACLParser::GenerateL()
	{
	CBufBase *acl = CBufFlat::NewL(32);
	CleanupStack::PushL(acl);

	CNSmlAclElement* aclElement=iCommandAcls;

	while(aclElement)
		{
		TBool anyServerIds=EFalse;
		if(aclElement->iAllServers||aclElement->iServerIds.Count())
			{
			anyServerIds = ETrue;
			switch(aclElement->iCommandType)
				{
				case EAclAdd:
					acl->InsertL(acl->Size(),KNSmlDmAclAddEqual);
					break;
				case EAclReplace:
					acl->InsertL(acl->Size(),KNSmlDmAclReplaceEqual);
					break;
				case EAclDelete:
					acl->InsertL(acl->Size(),KNSmlDmAclDeleteEqual);
					break;
				case EAclGet:
					acl->InsertL(acl->Size(),KNSmlDmAclGetEqual);
					break;
				case EAclExecute:
					acl->InsertL(acl->Size(),KNSmlDmAclExecEqual);
					break;
				default:
					User::Panic(KSmlDmTreeDbHandlerPanic,KErrArgument);
					break;
				}
			if(aclElement->iAllServers)
				{
				acl->InsertL(acl->Size(),KNSmlDmAclAll);
				}
			else
				{
				for(TInt i=0;i<aclElement->iServerIds.Count();i++)
					{
					acl->InsertL(acl->Size(),*aclElement->iServerIds[i]);
					if(i<aclElement->iServerIds.Count()-1)
						{
						acl->InsertL(acl->Size(),KNSmlDmAclServerIdSeparator);
						}
					}
				}
			}

		aclElement=aclElement->iNext;
		if(aclElement&&anyServerIds)
			{
			acl->InsertL(acl->Size(),KNSmlDmAclSeparator);
			}
		}
	
	HBufC8 *aclBuf = HBufC8::NewL(acl->Size());
	TPtr8 bufPtr = aclBuf->Des();
	acl->Read(0,bufPtr,acl->Size());
	CleanupStack::PopAndDestroy(); //acl
	return aclBuf;
	}