Location:
in_sock.h
class TSoInetLastErr;
Error information for TCP/IP protocols.
An object of this class is returned packaged as a TPckgBuf<TSoInetLastErr> in the option argument of RSocket::GetOpt()
, when this function is called with (KSolInetIp, KSoInetLastError). The data members of this object are updated whenever a
packet carrying an ICMP message is received.
Note: This class is originally defined only for the IPv4 environment, and there is no definite way of knowing whether the fields iErrType and iErrCode contain ICMPv4 or ICMPv6 codes. A solution that will give the correct answer in most normal cases, is
TSoInetLastErr p;
...
if (p.iErrAddr.Family() == KAfInet || p.iErrAddr.IsV4Mapped())
// assume ICMPv4 type and code
else
// assume ICMPv6 type and code
Alternatively, the error can be interpreted based on the member variable iStatus, if it contains one of the extended error codes. These are are common for both IPv4 and IPv6.
Defined in TSoInetLastErr
:
iDstAddr
, iErrAddr
, iErrCode
, iErrType
, iSrcAddr
, iStatus
TInetAddr iSrcAddr;
A TInetAddr
with the IP address and port set to the source address and port of the failed datagram.
TInetAddr iDstAddr;
A TInetAddr
with the IP address and port set to the destination address and port of the failed datagram.
TInetAddr iErrAddr;
A TInetAddr
with the IP address set to the address of the host that generated the error.