[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