7.6.3.1 Processing Network Errors

This event is triggered, as described in sections 7.4 and 7.5, when a network read or write returns an error code indicating an underlying network failure such as media disconnection, host unreachable, route unavailable, or the TCP keepalive failed, or when there is no response to too many consecutive ICMP echo requests.

The parameters for this task are as follows:

Name

Type

Description

Optional

TaskInputConnectionInfo

ConnectionInfo

The ConnectionInfo on which the error occurred.

No

This task does not return any results.

The task performs the following actions:

  1. Let containingADConnection be the ADConnection instance contained in ADCList for which containingADConnection.primaryConnection is set to TaskInputConnectionInfo or for which the containingADConnection.referralConnections list contains TaskInputConnectionInfo.

  2. Close the TCP connection represented by TaskInputConnectionInfo.networkConnection.

  3. If containingADConnection.LDAP_OPT_AUTO_RECONNECT is FALSE, then for each LDAPRequest lrq in TaskInputConnectionInfo.pendingRequestList that is awaiting a response:

    • Construct an LDAPMessage, lm, containing an LDAPResult, lr, representing a response for lrq.requestMessage, indicating that the directory server was unreachable:

      • Set lm.messageID to lrq.requestMessage.messageID.

      • Set lr.resultCode to a local implementation-specific error code indicating that the directory server was unreachable, using an error code value reserved for APIs as specified in [RFC2251] section 4.1.10, Result Message.

        Note The Microsoft implementation of LDAP client sets the resultCode of LDAPResult to LDAP_SERVER_DOWN (0x51) when the directory server is unreachable ([MS-ERREF] section 2.4, LDAP error to Win32 mapping).

      • Set lr.errorMessage and lr.matchedDN to a zero-length string.

      • Insert the LDAPMessage lm into lrq.resultMessages.

  4. If containingADConnection.LDAP_OPT_AUTO_RECONNECT is TRUE, then invoke the Autoreconnecting to a Directory Server (section 7.6.2.7) task on TaskInputConnectionInfo.