[Date Prev][Date Next] [Chronological] [Thread] [Top]

C API draft 3: ldap_search_ext() timeout param



Referencing the paragraph on page 27

timeout      For the ldap_search_st() function, this specifies the local
             search timeout value (if it is NULL, the timeout is infin-
             ite).  For the ldap_search_ext() and ldap_search_ext_s()
             functions, this specifies both the local search timeout
             value and the operation time limit that is sent to the
             server within the search request.  For the
             ldap_search_ext() and ldap_search_ext_s() functions, pass-
             ing a NULL value for timeout causes the global default
             timeout stored in the LDAP session handle (set by using
             ldap_set_option() with the LDAP_OPT_TIMELIMIT parameter) to
             be sent to the server with the request but an infinite
             local search timeout to be used.

This indicates at the function ldap_search_ext_s() does not have a
local timeout. One of two situations comes to mind.

1) The server, for one of many reasons ( busy, infinite loop, race condition ),
may never respond to the search request or take a very long time.
2) The server crashes.

Q1: What is the guarantee that the client app will not hang for either of these
situations?
Q2: Are applications expected to use the asynchronous functions if they
wish/need to abort a search locally?
Q3: Will a blocked call into select() at the client return an error if the socket
is closed by the OS at the server due to the server crashing?

Thanks,
--
-
J. R. Heisey