Hi I have a need for searching several LDAP servers in parallel. I've started to write the necessary code. Let me try to explain what I'm doing. If I want to search two LDAP servers, say ldap.compa.com and ldap.compb.com with bases dc=compa,dc=com and dc=compb,dc=com and retrieve the results I can do it sequentially like this: $ds = ldap_connect("ldap.compa.com"); ldap_bind($ds); $sr = ldap_search($ds,"dc=compa, dc=com", "sn=S*"); $info = ldap_get_entries($ds, $sr); print_entries($info); ldap_close($ds); $ds = ldap_connect("ldap.compb.com"); ldap_bind($ds); $sr = ldap_search($ds,"dc=compb, dc=com", "sn=S*"); $info = ldap_get_entries($ds, $sr); print_entries($info); ldap_close($ds); What I'm writing is a parallel ldap_search where this can be written as: $dsa = ldap_connect("ldap.compa.com"); ldap_bind($dsa); $dsb = ldap_connect("ldap.compb.com"); ldap_bind($dsb); $dses = array($dsa, $dsb); $bases = array("dc=compa, dc=com", "dc=compb, dc=com"); $sr = ldap_search($dses, $bases, "sn=S*"); $info = ldap_get_entries($dses[0], $sr[0]); print_entries($info); ldap_close($dses[0]); $info = ldap_get_entries($dses[1], $sr[1]); print_entries($info); ldap_close($dses[1]); What I'm saying is that ldap_search() should be exactly like it is now, unless the link parameter is an array. If it is, it expects each element to be a link identifier. The base parameter can be as it is, in which case it is the same for all links (same as the other parameters). Or it can be an array of the same size as the link array, where each base is used with the corresponding link. A future extension could be to allow other parameters to be arrays of the same size as the link array as well, similar to the bases. For instance, I'm writing it now so that the filter is the same for all, but I could later allow it to be an array with the different filters for the different links. What do you think? Anyone mind that I extend ldap_search() like this? Suggestions for better ways of doing the same? One way would be to have an asynchronous version of ldap_search() where one can repeatedly call a new function ldap_result() to retrieve all the results that has arrived until then, or something similar. This would be more like the C API, but more complicated to use. Stig -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]