[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-common-cvs
Subject: [Common-cvs] netio/pub/platform/symbian hxsymbiansocket.h, 1.1,
From: anugrahk () helixcommunity ! org
Date: 2009-12-22 5:18:29
Message-ID: 200912220518.nBM5InPh017709 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/common/netio/pub/platform/symbian
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv28114
Modified Files:
Tag: hxclient_2_2_1_cayennes
hxsymbiansocket.h
Log Message:
"Nokia submits this code under the terms of a commercial contribution agreement with \
RealNetworks, and I am authorized to contribute this code under said agreement”
Modified By: ext-anugrah.2.kashari@nokia.com
Review By: Gupta Ashish.As (Nokia-D/Dallas)
Eric Hyche [ehyche@real.com]
TSW-ID: ESLM-7YEAVG
Date : 17 /12/2009
Project: SymbianMmf_wm
Synopsis: MCL_Fusion: Crash "Application closed: MMPControllerProxyServer" occurs \
when streaming a video only Real Media content (attached video_only.zip) via an \
excerpt link.
Overview : At present maximum size for UDP datagram is fixed at 4096 \
(UDP_READ_SIZE_READCONTINUATION) byte. In this case, some of the UDP datagram are \
more than 4096 bytes. Therefore, RTSP client was reading partial datagram with \
maximum buffer size of 4096 byte. After each read operation it assumes that it is \
complete packet and was send for further processing. As UDP datagram is read in \
continuation (KSockReadContinuation), next time RSocket::RecvFrom() is called it will \
return the remaining data (with limit of 4096 bytes and repeat if necessary). But \
RTSP client considers each read operation as a complete packet therefore offset \
calculation goes for a toss and it crashes with kern exec 3.
Fix: Added code to read UDP socket in loop.
Changes
1. API added to get remaining data in UDP socket \
CHXSymbianSocketReader::MoreDataAvailable() 2. \
CHXSymbianSocketReader::Read() use other socket.RecvFrom() 3. \
CHXSymbianSocket::OnRead() loop added for UDP socket. We are reusing the 4096 byte \
buffer allocated before for issuing subsequent read.
Files modified & changes for 223Cays, 221Cays, 210Cays , Brizo420 and Head :
/cvsroot/ common/netio/pub/platform/symbian/hxsymbiansocket.h
/cvsroot/ common /netio/platform/symbian/hxsymbiansocket.cpp
Image Size and Heap Use impact: No major impact
Module Release testing (STIF) : YES
Test case(s) Added : No
Memory leak check performed : Passed, No additional leaks introduced.
Platforms and Profiles Build Verified: helix-client-s60-50-mmf-mdf-dsp \
Platforms and Profiles Functionality verified: armv5
Branch : 210Cays, 221Cays , 223Cays , Brizo420 & Head :
Index: hxsymbiansocket.h
===================================================================
RCS file: /cvsroot/common/netio/pub/platform/symbian/hxsymbiansocket.h,v
retrieving revision 1.1
retrieving revision 1.1.16.1
diff -u -d -r1.1 -r1.1.16.1
--- hxsymbiansocket.h 29 Sep 2005 21:03:26 -0000 1.1
+++ hxsymbiansocket.h 22 Dec 2009 05:18:27 -0000 1.1.16.1
@@ -87,6 +87,7 @@
~CHXSymbianSocketReader();
HX_RESULT Read(RSocket& socket, IHXBuffer *pBuf, TInetAddr *inetAdr);
+ UINT32 MoreDataAvailable();
private:
void RunL();
@@ -292,6 +293,10 @@
TInetAddr* m_pUdpConnectAddr; // udp socket is connected to \
this address CHXSimpleList m_writeList;
HXBOOL m_bInitialized; // true if socket was opened
+ // Member variable to read UDP datagram > 4096 bytes \
(UDP_READ_SIZE_READCONTINUATION) + IHXBuffer* \
m_pPendingUDPReadBuf; //Buffer to hold the UDP datagram > \
UDP_READ_SIZE_READCONTINUATION + UINT32 \
m_uPendingUDPReadBufSize; // UDP data read so far + TBool \
m_bReadingPendingBytes; // flag that indicate UDP datagram > \
UDP_READ_SIZE_READCONTINUATION
};
_______________________________________________
Common-cvs mailing list
Common-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/common-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic