--- a/networkprotocols/tcpipv4v6prt/src/inet.cpp Thu Jul 15 20:25:02 2010 +0300
+++ b/networkprotocols/tcpipv4v6prt/src/inet.cpp Thu Aug 19 11:25:30 2010 +0300
@@ -360,9 +360,17 @@
if (aName == STATIC_CAST(TUint, KSoInetEnumInterfaces)) // See *NOTE* above!
{
iInterfaceIndex = 0;
+
LOG(Log::Printf(_L("SetOpt\t%S SAP[%u] KSoInetEnumInterfaces"), &ProtocolName(), (TInt)this));
return KErrNone;
}
+ if (aName == STATIC_CAST(TUint, KSoInetEnumDomainSuffix)) // See *NOTE* above!
+ {
+ iDomainSuffixIndex = 0;
+
+ LOG(Log::Printf(_L("SetOpt\t%S SAP[%u] KSoInetEnumDomainSuffix"), &ProtocolName(), (TInt)this));
+ return KErrNone;
+ }
}
else if (aLevel == KSolInetRtCtrl)
{
@@ -419,11 +427,27 @@
(void) new (&opt) TSoInetInterfaceInfo; // Make sure descriptors are correct.
aOption.SetLength(sizeof(TSoInetInterfaceInfo));
((CProviderInet6Base *)this)->iInterfaceIndex = iProtocol->Interfacer()->InterfaceInfo(iInterfaceIndex, opt);
+ ((CProviderInet6Base *)this)->iActiveEnumInterface.Copy(opt.iName);
+
if (iInterfaceIndex > 0)
return KErrNone;
else
return KErrNotFound;
}
+ else if (aLevel == KSolInetIfCtrl && aName == STATIC_CAST(TUint, KSoInetNextDomainSuffix))
+ {
+ TInetSuffix& opt = *(TInetSuffix*)aOption.Ptr();
+ if (STATIC_CAST(TUint, aOption.MaxLength()) < sizeof(TInetSuffix))
+ return KErrTooBig;
+ (void) new (&opt) TInetSuffix; // Make sure descriptors are correct.
+ aOption.SetLength(sizeof(TInetSuffix));
+ ((CProviderInet6Base *)this)->iDomainSuffixIndex = iProtocol->Interfacer()->DomainSuffixInfo(iActiveEnumInterface, iDomainSuffixIndex, opt);
+
+ if (iDomainSuffixIndex > 0)
+ return KErrNone;
+ else
+ return KErrNotFound;
+ }
else if (aLevel == KSolInetRtCtrl && aName == STATIC_CAST(TUint, KSoInetNextRoute)) // See *NOTE* above!
{
TSoInetRouteInfo& opt = *(TSoInetRouteInfo*)aOption.Ptr();