7.6.4.1 Timer Expiry on RequestTimer

This event occurs whenever the requestTimer on an instance of an LDAPRequest expires.

The parameters for this task are as follows:

Name

Type

Description

Optional

TaskInputLdapRequest

LDAPRequest

The LDAPRequest instance on which the requestTimer has expired.

No

This task does not return any results.

The task performs the following actions:

  1. For each containingADConnection in ADCList:

    1. If TaskInputLdapRequest is present in containingADConnection.primaryConnection.pendingRequestList, remove TaskInputLdapRequest from containingADConnection.primaryConnection.pendingRequestList.

    2. For each containingConnectionInfo in containingADConnection.referralConnections:

      • If TaskInputLdapRequest is present in containingConnectionInfo.pendingRequestList, remove TaskInputLdapRequest from containingConnectionInfo.pendingRequestList.

  2. Construct an LDAPMessage, lm, containing an LDAPResult, lr, representing a response for TaskInputLdapRequest.requestMessage, indicating that the request has timed out:

    • Set lm.messageID to TaskInputLdapRequest.requestMessage.messageID.

    • Set lr.resultCode to a local implementation-specific error code indicating a timeout has occurred, 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_TIMEOUT (0x55) on timer expiration ([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 TaskInputLdapRequest.resultMessages.

      Any tasks waiting on results for TaskInputLdapRequest receive the LDAPMessage lm in TaskInputLdapRequest.resultMessages, indicating that the request has timed out.