diff -r 773449708c84 -r 4ad59aaee882 javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp --- a/javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp Thu Sep 02 20:20:40 2010 +0300 +++ b/javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp Fri Sep 17 08:28:21 2010 +0300 @@ -66,4 +66,29 @@ return def; } - +void ApnSettings::removeDefaultApn() +{ + #ifdef RD_JAVA_OPENC_BETA_PATCH + setdefaultif(0); + ILOG(ESOCKET, "sedefaultif called"); + ILOG1(ESOCKET, "remove default apn returned %d",setdefaultif(NULL)); + #endif +} +int ApnSettings::retryConnection(int aErrCode, int aType, int aApn) +{ + if ( aErrCode > __EMAXERRNO ) + { + // errno out of range, check for KErrNotReady + int errCode = -(aErrCode - __EMAXERRNO); + ELOG1(ESOCKET,"ApnSettings:: retryConnection symbian error : %d" , errCode); + if( (errCode == KErrNotReady) && (aType == 2) ) + { + // call reset and setDefaultif() again to make a new conn and use + ApnSettings::removeDefaultApn(); + int ret = ApnSettings::setDefaultApn(aType,aApn); + return ret; + } + } + return -(aErrCode); + +}