The man page for ldap_search_ext doesn't specify how the timeout value
is used. There are external sources that say it defines a timeout
both for the client and the server. Is that accurate?
No. ldap_search_ext() only sends a query without waiting for the
response. The seconds component of its timeout argument is passed to the
server as the 'timeLimit' value (c.f. RFC 4511, section 4.5.1). So, its
timeout is only for the server.
Those 'external sources' were probably intending to describe
ldap_search_ext_s(), for which the 'timeout' argument is used both for the
'timeLimit' sent to the server and as a timeout on the individual client
network read operations.
(NOTE: the timeout to ldap_result() and most (all?) the ldap_*_s() calls
is *NOT* a timeout on the full operation but rather on the individual
recv() operations!)