--- a/syncmlfw/common/sosserver_privateapi/src/NSmlPrivateAPI.cpp Tue Sep 28 17:53:08 2010 +0530
+++ b/syncmlfw/common/sosserver_privateapi/src/NSmlPrivateAPI.cpp Fri Oct 15 11:46:45 2010 +0530
@@ -94,10 +94,26 @@
if ( res != KErrNone )
{
res = LaunchServer();
- User::LeaveIfError( res );
- res = CreateSession( KSOSServerName, version, KDefaultMessageSlots );
+ if ( res == KErrNone )
+ {
+ res = CreateSession( KSOSServerName, version, KDefaultMessageSlots );
}
-
+ else if ( res == KErrAlreadyExists )
+ {
+ TInt retryCount = 3;
+
+ while ( res != KErrNone && retryCount )
+ {
+ res = CreateSession( KSOSServerName, version, KDefaultMessageSlots );
+ if( res != KErrNone )
+ {
+ // wait 1.5 seconds to give the server a chance to reach its serviceable state
+ User::After( 1500000 );
+ --retryCount;
+ }
+ }
+ }
+ }
User::LeaveIfError( res );
_DBG_FILE("RNSmlPrivateAPI::OpenL(): end");