void CTcpClientTestUPnP1::ReceivedL ( const TRuntimeCtxId& /*aSender*/, const TNodeId& /*aRecipient*/, TSignatureBase& aMessage ) { if ( aMessage.IsMessage<TCFFactory::TPeerFoundOrCreated> () ) { const TCFFactory::TPeerFoundOrCreated& msg = message_cast < const TCFFactory::TPeerFoundOrCreated > ( aMessage ); iClientId = msg.iNodeId; CompleteSelf ( KErrNone ); } else if ( aMessage.IsMessage<TUpnpMessage::TResponse > () ) { TUpnpMessage::TResponse& msg = message_cast< TUpnpMessage::TResponse >(aMessage); RBuf8 responseBodyData; responseBodyData.CreateMax ( msg.iBodyData.Length () ); responseBodyData.FillZ ( msg.iBodyData.Length () ); msg.iBodyData.CopyOut ( responseBodyData ); responseBodyData.Close (); msg.iBodyData.Free (); CompleteSelf(EPass); } else if ( aMessage.IsMessage<TEBase::TError > () ) { iLogger.WriteFormat(_L("<i>TEBase::TError..... </i>")); CompleteSelf(EFail); } }
void CAsn1PerOctetString::DecodeL(const TDesC8& aBuf, const TInt aStartBit, const TBool aLengthIsVariable, const TBool aLengthIsConstrained, const TInt aMinLength, const TInt aMaxLength, const TBool aIsExtensible, const TBool /*aIsPadded*/, TBool& aIsExtended, TInt& aBitsDecoded, RBuf8& aDecodedBuf) { TInt currentBitPos=aStartBit; TInt bitDecoded=0; aBitsDecoded=0; aIsExtended=EFalse; TInt stringLen=0; CAsn1PerUtil::DecodeStringEBitAndLengthL(aBuf, currentBitPos, aLengthIsVariable, aLengthIsConstrained, aMinLength, aMaxLength, aIsExtensible, aIsExtended, bitDecoded, stringLen); currentBitPos+=bitDecoded; aBitsDecoded+=bitDecoded; bitDecoded=0; //check if the input buffer is long enough if (currentBitPos+stringLen*8>aBuf.Length()*8) { User::Leave(KErrUnderflow); } //Finally, decode the string content for cases aDecodedBuf.ReAllocL(stringLen); aDecodedBuf.SetLength(stringLen); aDecodedBuf.FillZ(); TInt stringBitLength=stringLen*8; //Copy the String to the Dest Buffer . TInt destBitNum=8; TInt destOctetNum=0; //Copy ... CAsn1PerUtil::CopyDataTrunkL(aBuf, currentBitPos, stringBitLength, aDecodedBuf, destOctetNum, destBitNum); aBitsDecoded+=stringBitLength; }
TVerdict CBigSendRecvRtp::doTestStepL() /** * @return - TVerdict code */ { SetTestStepResult(EFail); if(KErrNone == InitSocketsL()) { iIpAddrDest1.SetPort(9000); RBuf8 sendBuf; sendBuf.CreateMax(KBufferSize1); sendBuf.CleanupClosePushL(); RBuf8 recvBuf; recvBuf.CreateMax(KBufferSize1); recvBuf.CleanupClosePushL(); /* Fill the buffer with given character upto its length */ sendBuf.Fill('Q'); TRequestStatus status; /* do a Send of the data */ iRtpSocket.SendTo(sendBuf, iIpAddrDest1, NULL, status); User::WaitForRequest(status); User::LeaveIfError(status.Int()); /* Now do a Receive */ recvBuf.FillZ(); iRtpSocket.RecvFrom(recvBuf,iIpAddrDest1,NULL,status); User::WaitForRequest(status); User::LeaveIfError(status.Int()); /* Obtain a TPtr of the data excluding the RTP header */ TPtr8 sendBufPtr = sendBuf.MidTPtr(KRtpHeaderSize); TPtr8 recvBufPtr = recvBuf.MidTPtr(KRtpHeaderSize); /* Check if the data received is the same as the data sent */ TInt ret = sendBufPtr.Compare(recvBufPtr); if(ret == 0) { /* Increase the buffer size and fill it up with given data */ sendBuf.ReAlloc(KBufferSize2); recvBuf.ReAlloc(KBufferSize2); sendBuf.Fill('Q', KBufferSize2); /* Send the larger data */ iRtpSocket.SendTo(sendBuf, iIpAddrDest1, NULL, status); User::WaitForRequest(status); User::LeaveIfError(status.Int()); /* Now do a Receive */ recvBuf.FillZ(KBufferSize2); iRtpSocket.RecvFrom(recvBuf,iIpAddrDest1,NULL,status); User::WaitForRequest(status); User::LeaveIfError(status.Int()); /* Get pointer to data and compare both of them */ TPtr8 sendBufPtr = sendBuf.MidTPtr(KRtpHeaderSize); TPtr8 recvBufPtr = recvBuf.MidTPtr(KRtpHeaderSize); TInt ret = sendBufPtr.Compare(recvBufPtr); if(ret == 0) { SetTestStepResult(EPass); } } CleanupStack::PopAndDestroy(2); } return TestStepResult(); }