--On Wednesday, June 01, 2011 12:33 AM +0200 Mark Martinec <[email protected]> wrote:

Quanah,

My one comment about this patch would be that the it doesn't support
using "ldapi", which is connecting to a local LDAP server over a unix
socket.

It doesn't? The patch added the 'scheme' attribute to the $default_ldap
hash just for this purpose - although I haven't tested it.

Something along these lines would probably work according to
the Net::LDAP documentation:

$default_ldap = {
  hostname      => '/socket/path/to/ldap',
  scheme        => 'ldapi',
  ...
};

Yeah, I was thinking about this part of the patch:

+  if (!defined $self->{scheme}) {
+    $self->{scheme} = $self->{hostname} =~ /^ldaps/i ? 'ldaps' : 'ldap';
+  }

since hostname could have "ldapi" in it, as per the Net::LDAP documentation. This would change the method to "ldap" instead, which would be wrong.

new ( HOST, OPTIONS )

   Creates a new Net::LDAP object and opens a connection to the named host.

HOST may be a host name or an IP number. TCP port may be specified after the host name followed by a colon (such as localhost:10389). The default TCP port for LDAP is 389.

You can also specify a URI, such as 'ldaps://127.0.0.1:666' or 'ldapi://%2fvar%2flib%2fldap_sock'. Note that '%2f's in the LDAPI socket path will be translated into '/'. This is to support LDAP query options like base, search etc. although the query part of the URI will be ignored in this context. If port was not specified in the URI, the default is either 389 or 636 for 'LDAP' and 'LDAPS' schemes respectively.

--Quanah

--

Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Reply via email to