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

Re: (ITS#6548) Many "connection_read(): no connection!" warnings when using ldapi:/// and a bind DN (no external authentication)



--0050450171a831aa7e0488f30c72
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Jun 13, 2010 at 5:20 PM, Howard Chu <hyc@symas.com> wrote:

> Mark A. Ziesemer wrote:
>
>> On Wed, May 12, 2010 at 10:05 AM, Howard Chu <hyc@symas.com
>> <mailto:hyc@symas.com>> wrote:
>>
>>
>>    online@mark.ziesemer.com <mailto:online@mark.ziesemer.com> wrote:
>>
>>        Full_Name: Mark A. Ziesemer
>>        Version: 2.4.21
>>        OS: Ubuntu Linux 10.04
>>        URL: ftp://ftp.openldap.org/incoming/
>>        Submission from: (NULL) (2001:470:1f11:3ae:4d6d:3d3e:faa6:ee3d)
>>
>>
>>        Many "connection_read(): no connection!" warnings are written to
>>        /var/log/debug
>>        and /var/log/syslog by slapd.  As stated at
>>
>> http://www.openldap.org/lists/openldap-software/200811/msg00079.html ,
>>        this is
>>        apparently not a problem with slapd, but a client that is
>>        disconnecting without
>>        first unbinding.
>>
>>
>>    This also happens when the connection manager queues up a thread to
>> handle
>>    a "socket is readable" event on a socket that's in the process of
>> closing.
>>    Pretty much unavoidable, when a lot of threads are active. I don't see
>>    this as a high enough priority to warrant fixing.
>>
>>
>> This was not happening under a high load, but with only 1-2 connections
>> active.
>>
>> I might not have focused on it enough in the original report, but isn't
>> this
>> looking like it is probably an issue with the libldap client library
>> (provided
>> by OpenLDAP), rather than the slapd daemon?  Looking at the provided logs,
>> it
>> appears that no do_unbind request is received (not sent by the client)
>> when
>> using ldapi:/// with a bind DN.
>>
>> If it can't / won't be fixed, can the logging of the "connection_read():
>> no
>> connection!" event in slapd at least be demoted to a lower level so that
>> it
>> doesn't fill the default logging output, without having to change the
>> overall
>> configured logging level and potentially missing other logged events that
>> do
>> require attention?
>>
>
> "Fixing" libldap, if there's even a bug there, obviously won't help with
> other clients using non-OpenLDAP libraries. At any rate, there's nothing
> that requires an Unbind request to be sent, so there's no bug here.
>

As stated by one of the other OpenLDAP engineers in the above link, the
recommendation was to "fix whatever client is disconnecting without
unbinding".  In this case, the client is the OpenLDAP libraries.  Please at
least re-consider for fixing, even in a "help wanted" or "pending" status,
rather than just closing.  Either the client library should be fixed to send
an unbind before disconnecting in all circumstances (i.e. ldapi:/// as well
as ldap:///), or it should be confirmed and documented that the unbind is
not necessary, in which case the server should be fixed to not output the
"connection_read(): no connection!" events at the default logging level.

I don't see messages filling the log. I don't see any issue here at all.
>

I'm not the only one seeing this.  My link to the OpenLDAP mailing list
above, as well as Gergely's inquiry into this ITS are 2 directly related
occurrences observed by others.

I was only able to reproduce this by performing a Bind with invalid
> credentials. In the case with correct credentials, there were no extraneous
> messages. If you're seeing a lot of these cases, then you should think about
> why you're getting a lot of Binds with invalid passwords. Fix the problem,
> not the symptom. This ITS will be closed.


While this may be true, in any production environment, you can almost be
guaranteed that there will be login attempts with invalid credentials - even
just due to users mistyping their password on occasion, using CAPS lock,
etc.  Again, the log entry should either be suppressed at the default
logging level (preferred), or at least re-worded to something more
meaningful, e.g. "Received invalid login attempt; disconnecting client".
However, even then, this should be made to work the same regardless of
protocol used for consistency.

This may not be a high priority or interesting issue to fix, but please
don't simply ignore what seems to be a very reasonable request.  If this
issue is not addressed, the effect becomes training other users and admins
to ignore the logs if they regularly contain trivial updates at the default
level - which I hope we can agree is not a good practice.

        This appears to be an issue with the libldap client library provided
>        by OpenLDAP
>        itself (2.4.21), and not the slapd daemon.
>
>        Issue is reproducible even by just using "ldapsearch -H ldapi:///",
>        but only if
>        a bind DN is specified (-D) and external authentication is not used.
>
>        Running slapd with logging enabled (-d 8) shows the following 3
>        sequences -
>        ldapsearch command followed by the slapd logs.  Note that the
>        "connection_read(): no connection!" is only visible on the middle
> pair.
>
>
>        $ ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b ""
>        SASL/EXTERNAL authentication started
>        SASL username:
> gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
>        SASL SSF: 0
>        No such object (32)
>
>        slap_listener_activate(9):
>
>                    slap_listener(ldapi:///)
>
>        connection_get(14): got connid=1000
>        connection_read(14): checking for input on id=1000
>        ber_get_next
>        ber_get_next: tag 0x30 len 24 contents:
>        op tag 0x60, time 1273546410
>        ber_get_next
>        conn=1000 op=0 do_bind
>        ber_scanf fmt ({imt) ber:
>        ber_scanf fmt ({m) ber:
>        ber_scanf fmt (m) ber:
>        ber_scanf fmt (}}) ber:
>
>                    dnPrettyNormal:<>
>
>        <<<  dnPrettyNormal:<>,<>
>        do_bind: dn () SASL mech EXTERNAL
>        ==>slap_sasl2dn: converting SASL name
>        gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth to a DN
>        <==slap_sasl2dn: Converted SASL name to<nothing>
>        SASL Authorize [conn=1000]:  proxy authorization allowed authzDN=""
>        send_ldap_sasl: err=0 len=-1
>        do_bind: SASL/EXTERNAL bind:
>        dn="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
> sasl_ssf=0
>        send_ldap_response: msgid=1 tag=97 err=0
>        ber_flush2: 14 bytes to sd 14
>        <== slap_sasl_bind: rc=0
>        connection_get(14): got connid=1000
>        connection_read(14): checking for input on id=1000
>        ber_get_next
>        ber_get_next: tag 0x30 len 37 contents:
>        op tag 0x63, time 1273546410
>        ber_get_next
>        conn=1000 op=1 do_search
>        ber_scanf fmt ({miiiib) ber:
>
>                    dnPrettyNormal:<>
>
>        <<<  dnPrettyNormal:<>,<>
>        ber_scanf fmt (m) ber:
>        ber_scanf fmt ({M}}) ber:
>        send_ldap_result: conn=1000 op=1 p=3
>        send_ldap_response: msgid=2 tag=101 err=32
>        ber_flush2: 14 bytes to sd 14
>        connection_get(14): got connid=1000
>        connection_read(14): checking for input on id=1000
>        ber_get_next
>        ber_get_next: tag 0x30 len 5 contents:
>        op tag 0x42, time 1273546410
>        ber_get_next
>        conn=1000 op=2 do_unbind
>        connection_close: conn=1000 sd=14
>
>        $ ldapsearch -H ldapi:/// -D "cn=admin,dc=example,dc=com" -b "" -W
>        Enter LDAP Password:
>        ldap_bind: Invalid credentials (49)
>
>        slap_listener_activate(9):
>
>                    slap_listener(ldapi:///)
>
>        connection_get(14): got connid=1001
>        connection_read(14): checking for input on id=1001
>        ber_get_next
>        ber_get_next: tag 0x30 len 44 contents:
>        op tag 0x60, time 1273546420
>        ber_get_next
>        conn=1001 op=0 do_bind
>        ber_scanf fmt ({imt) ber:
>        ber_scanf fmt (m}) ber:
>
>                    dnPrettyNormal:<cn=admin,dc=example,dc=com>
>
>        <<<
>
>  dnPrettyNormal:<cn=admin,dc=example,dc=com>,<cn=admin,dc=example,dc=com>
>        do_bind: version=3 dn="cn=admin,dc=example,dc=com" method=128
>        send_ldap_result: conn=1001 op=0 p=3
>        send_ldap_response: msgid=1 tag=97 err=49
>        ber_flush2: 14 bytes to sd 14
>        connection_get(14): got connid=1001
>        connection_read(14): checking for input on id=1001
>        ber_get_next
>        ber_get_next on fd 14 failed errno=0 (Success)
>        connection_close: conn=1001 sd=14
>        connection_read(14): no connection!
>        connection_read(14): no connection!
>
>        $ ldapsearch -H ldap:/// -D "cn=admin,dc=example,dc=com" -b "" -W
>        Enter LDAP Password:
>        ldap_bind: Invalid credentials (49)
>
>        slap_listener_activate(8):
>
>                    slap_listener(ldap:///)
>
>        connection_get(14): got connid=1002
>        connection_read(14): checking for input on id=1002
>        ber_get_next
>        ber_get_next: tag 0x30 len 44 contents:
>        op tag 0x60, time 1273546425
>        ber_get_next
>        conn=1002 op=0 do_bind
>        ber_scanf fmt ({imt) ber:
>        ber_scanf fmt (m}) ber:
>
>                    dnPrettyNormal:<cn=admin,dc=example,dc=com>
>
>        <<<
>
>  dnPrettyNormal:<cn=admin,dc=example,dc=com>,<cn=admin,dc=example,dc=com>
>        do_bind: version=3 dn="cn=admin,dc=example,dc=com" method=128
>        send_ldap_result: conn=1002 op=0 p=3
>        send_ldap_response: msgid=1 tag=97 err=49
>        ber_flush2: 14 bytes to sd 14
>        connection_get(14): got connid=1002
>        connection_read(14): checking for input on id=1002
>        ber_get_next
>        ber_get_next on fd 14 failed errno=0 (Success)
>        connection_close: conn=1002 sd=14
>

-- 
 -- Howard Chu
 CTO, Symas Corp.           http://www.symas.com
 Director, Highland Sun     http://highlandsun.com/hyc/
 Chief Architect, OpenLDAP  http://www.openldap.org/project/

--
Mark A. Ziesemer
www.ziesemer.com

--0050450171a831aa7e0488f30c72
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><div class=3D"gmail_quote">On Sun, Jun 13, 2010 at 5:20 PM, Howard Chu =
<span dir=3D"ltr">&lt;<a href=3D"mailto:hyc@symas.com";>hyc@symas.com</a>&gt=
;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0=
pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;=
">
Mark A. Ziesemer wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; borde=
r-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class=3D"im"=
>
On Wed, May 12, 2010 at 10:05 AM, Howard Chu &lt;<a href=3D"mailto:hyc@syma=
s.com" target=3D"_blank">hyc@symas.com</a><br></div>
&lt;mailto:<a href=3D"mailto:hyc@symas.com"; target=3D"_blank">hyc@symas.com=
</a>&gt;&gt; wrote:<div><div></div><div class=3D"h5"><br>
<br>
 =A0 =A0<a href=3D"mailto:online@mark.ziesemer.com"; target=3D"_blank">onlin=
e@mark.ziesemer.com</a> &lt;mailto:<a href=3D"mailto:online@mark.ziesemer.c=
om" target=3D"_blank">online@mark.ziesemer.com</a>&gt; wrote:<br>
<br>
 =A0 =A0 =A0 =A0Full_Name: Mark A. Ziesemer<br>
 =A0 =A0 =A0 =A0Version: 2.4.21<br>
 =A0 =A0 =A0 =A0OS: Ubuntu Linux 10.04<br>
 =A0 =A0 =A0 =A0URL: <a href=3D"ftp://ftp.openldap.org/incoming/"; target=3D=
"_blank">ftp://ftp.openldap.org/incoming/</a><br>
 =A0 =A0 =A0 =A0Submission from: (NULL) (2001:470:1f11:3ae:4d6d:3d3e:faa6:e=
e3d)<br>
<br>
<br>
 =A0 =A0 =A0 =A0Many &quot;connection_read(): no connection!&quot; warnings=
 are written to<br>
 =A0 =A0 =A0 =A0/var/log/debug<br>
 =A0 =A0 =A0 =A0and /var/log/syslog by slapd. =A0As stated at<br>
 =A0 =A0 =A0 =A0<a href=3D"http://www.openldap.org/lists/openldap-software/=
200811/msg00079.html" target=3D"_blank">http://www.openldap.org/lists/openl=
dap-software/200811/msg00079.html</a> ,<br>
 =A0 =A0 =A0 =A0this is<br>
 =A0 =A0 =A0 =A0apparently not a problem with slapd, but a client that is<b=
r>
 =A0 =A0 =A0 =A0disconnecting without<br>
 =A0 =A0 =A0 =A0first unbinding.<br>
<br>
<br>
 =A0 =A0This also happens when the connection manager queues up a thread to=
 handle<br>
 =A0 =A0a &quot;socket is readable&quot; event on a socket that&#39;s in th=
e process of closing.<br>
 =A0 =A0Pretty much unavoidable, when a lot of threads are active. I don&#3=
9;t see<br>
 =A0 =A0this as a high enough priority to warrant fixing.<br>
<br>
<br>
This was not happening under a high load, but with only 1-2 connections act=
ive.<br>
<br>
I might not have focused on it enough in the original report, but isn&#39;t=
 this<br>
looking like it is probably an issue with the libldap client library (provi=
ded<br>
by OpenLDAP), rather than the slapd daemon? =A0Looking at the provided logs=
, it<br>
appears that no do_unbind request is received (not sent by the client) when=
<br>
using ldapi:/// with a bind DN.<br>
<br>
If it can&#39;t / won&#39;t be fixed, can the logging of the &quot;connecti=
on_read(): no<br>
connection!&quot; event in slapd at least be demoted to a lower level so th=
at it<br>
doesn&#39;t fill the default logging output, without having to change the o=
verall<br>
configured logging level and potentially missing other logged events that d=
o<br>
require attention?<br>
</div></div></blockquote>
<br>
&quot;Fixing&quot; libldap, if there&#39;s even a bug there, obviously won&=
#39;t help with other clients using non-OpenLDAP libraries. At any rate, th=
ere&#39;s nothing that requires an Unbind request to be sent, so there&#39;=
s no bug here.<br>
</blockquote><div><br>As stated by one of the other OpenLDAP engineers in t=
he above link, the recommendation was to &quot;fix whatever client is disco=
nnecting without unbinding&quot;.=A0 In this case, the client is the OpenLD=
AP libraries.=A0 Please at least re-consider for fixing, even in a &quot;he=
lp wanted&quot; or &quot;pending&quot; status, rather than just closing.=A0=
 Either the client library should be fixed to send an unbind before disconn=
ecting in all circumstances (i.e. ldapi:/// as well as ldap:///), or it sho=
uld be confirmed and documented that the unbind is not necessary, in which =
case the server should be fixed to not output the &quot;connection_read(): =
no connection!&quot; events at the default logging level. <br>
<br></div><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.=
8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I don&#39;t see messages filling the log. I don&#39;t see any issue here at=
 all.<br></blockquote><div><br>I&#39;m not the only one seeing this.=A0 My =
link to the OpenLDAP mailing list above, as well as Gergely&#39;s inquiry i=
nto this ITS are 2 directly related occurrences observed by others. <br>
<br></div><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.=
8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I was only able to reproduce this by performing a Bind with invalid credent=
ials. In the case with correct credentials, there were no extraneous messag=
es. If you&#39;re seeing a lot of these cases, then you should think about =
why you&#39;re getting a lot of Binds with invalid passwords. Fix the probl=
em, not the symptom. This ITS will be closed.</blockquote>
<div class=3D"h5">=A0<br>While this may be true, in any production environm=
ent, you can almost be guaranteed that there will be login attempts with in=
valid credentials - even just due to users mistyping their password on occa=
sion, using CAPS lock, etc.=A0 Again, the log entry should either be suppre=
ssed at the default logging level (preferred), or at least re-worded to som=
ething more meaningful, e.g. &quot;Received invalid login attempt; disconne=
cting client&quot;.=A0 However, even then, this should be made to work the =
same regardless of protocol used for consistency.<br>
<br>This may not be a high priority or interesting issue to fix, but please=
 don&#39;t simply ignore what seems to be a very reasonable request.=A0 If =
this issue is not addressed, the effect becomes training other users and ad=
mins to ignore the logs if they regularly contain trivial updates at the de=
fault level - which I hope we can agree is not a good practice.<br>

<br>
<blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0.8ex; borde=
r-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
 =A0 =A0 =A0 =A0This appears to be an issue with the libldap client library=
 provided<br>
 =A0 =A0 =A0 =A0by OpenLDAP<br>
 =A0 =A0 =A0 =A0itself (2.4.21), and not the slapd daemon.<br>
<br>
 =A0 =A0 =A0 =A0Issue is reproducible even by just using &quot;ldapsearch -=
H ldapi:///&quot;,<br>
 =A0 =A0 =A0 =A0but only if<br>
 =A0 =A0 =A0 =A0a bind DN is specified (-D) and external authentication is =
not used.<br>
<br>
 =A0 =A0 =A0 =A0Running slapd with logging enabled (-d 8) shows the followi=
ng 3<br>
 =A0 =A0 =A0 =A0sequences -<br>
 =A0 =A0 =A0 =A0ldapsearch command followed by the slapd logs. =A0Note that=
 the<br>
 =A0 =A0 =A0 =A0&quot;connection_read(): no connection!&quot; is only visib=
le on the middle pair.<br>
<br>
<br>
 =A0 =A0 =A0 =A0$ ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b &quot;&quot;<=
br>
 =A0 =A0 =A0 =A0SASL/EXTERNAL authentication started<br>
 =A0 =A0 =A0 =A0SASL username: gidNumber=3D0+uidNumber=3D0,cn=3Dpeercred,cn=
=3Dexternal,cn=3Dauth<br>
 =A0 =A0 =A0 =A0SASL SSF: 0<br>
 =A0 =A0 =A0 =A0No such object (32)<br>
<br>
 =A0 =A0 =A0 =A0slap_listener_activate(9):<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0slap_listener(ldapi:///)<br>
<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1000<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1000<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next: tag 0x30 len 24 contents:<br>
 =A0 =A0 =A0 =A0op tag 0x60, time 1273546410<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0conn=3D1000 op=3D0 do_bind<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({imt) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({m) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt (m) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt (}}) ber:<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;&gt;<br>
<br>
 =A0 =A0 =A0 =A0&lt;&lt;&lt; =A0dnPrettyNormal:&lt;&gt;,&lt;&gt;<br>
 =A0 =A0 =A0 =A0do_bind: dn () SASL mech EXTERNAL<br>
 =A0 =A0 =A0 =A0=3D=3D&gt;slap_sasl2dn: converting SASL name<br>
 =A0 =A0 =A0 =A0gidNumber=3D0+uidNumber=3D0,cn=3Dpeercred,cn=3Dexternal,cn=
=3Dauth to a DN<br>
 =A0 =A0 =A0 =A0&lt;=3D=3Dslap_sasl2dn: Converted SASL name to&lt;nothing&g=
t;<br>
 =A0 =A0 =A0 =A0SASL Authorize [conn=3D1000]: =A0proxy authorization allowe=
d authzDN=3D&quot;&quot;<br>
 =A0 =A0 =A0 =A0send_ldap_sasl: err=3D0 len=3D-1<br>
 =A0 =A0 =A0 =A0do_bind: SASL/EXTERNAL bind:<br>
 =A0 =A0 =A0 =A0dn=3D&quot;gidNumber=3D0+uidNumber=3D0,cn=3Dpeercred,cn=3De=
xternal,cn=3Dauth&quot; sasl_ssf=3D0<br>
 =A0 =A0 =A0 =A0send_ldap_response: msgid=3D1 tag=3D97 err=3D0<br>
 =A0 =A0 =A0 =A0ber_flush2: 14 bytes to sd 14<br>
 =A0 =A0 =A0 =A0&lt;=3D=3D slap_sasl_bind: rc=3D0<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1000<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1000<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next: tag 0x30 len 37 contents:<br>
 =A0 =A0 =A0 =A0op tag 0x63, time 1273546410<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0conn=3D1000 op=3D1 do_search<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({miiiib) ber:<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;&gt;<br>
<br>
 =A0 =A0 =A0 =A0&lt;&lt;&lt; =A0dnPrettyNormal:&lt;&gt;,&lt;&gt;<br>
 =A0 =A0 =A0 =A0ber_scanf fmt (m) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({M}}) ber:<br>
 =A0 =A0 =A0 =A0send_ldap_result: conn=3D1000 op=3D1 p=3D3<br>
 =A0 =A0 =A0 =A0send_ldap_response: msgid=3D2 tag=3D101 err=3D32<br>
 =A0 =A0 =A0 =A0ber_flush2: 14 bytes to sd 14<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1000<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1000<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next: tag 0x30 len 5 contents:<br>
 =A0 =A0 =A0 =A0op tag 0x42, time 1273546410<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0conn=3D1000 op=3D2 do_unbind<br>
 =A0 =A0 =A0 =A0connection_close: conn=3D1000 sd=3D14<br>
<br>
 =A0 =A0 =A0 =A0$ ldapsearch -H ldapi:/// -D &quot;cn=3Dadmin,dc=3Dexample,=
dc=3Dcom&quot; -b &quot;&quot; -W<br>
 =A0 =A0 =A0 =A0Enter LDAP Password:<br>
 =A0 =A0 =A0 =A0ldap_bind: Invalid credentials (49)<br>
<br>
 =A0 =A0 =A0 =A0slap_listener_activate(9):<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0slap_listener(ldapi:///)<br>
<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1001<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1001<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next: tag 0x30 len 44 contents:<br>
 =A0 =A0 =A0 =A0op tag 0x60, time 1273546420<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0conn=3D1001 op=3D0 do_bind<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({imt) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt (m}) ber:<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;cn=3Dadmin,dc=3D=
example,dc=3Dcom&gt;<br>
<br>
 =A0 =A0 =A0 =A0&lt;&lt;&lt;<br>
 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;cn=3Dadmin,dc=3Dexample,dc=3Dcom&gt;=
,&lt;cn=3Dadmin,dc=3Dexample,dc=3Dcom&gt;<br>
 =A0 =A0 =A0 =A0do_bind: version=3D3 dn=3D&quot;cn=3Dadmin,dc=3Dexample,dc=
=3Dcom&quot; method=3D128<br>
 =A0 =A0 =A0 =A0send_ldap_result: conn=3D1001 op=3D0 p=3D3<br>
 =A0 =A0 =A0 =A0send_ldap_response: msgid=3D1 tag=3D97 err=3D49<br>
 =A0 =A0 =A0 =A0ber_flush2: 14 bytes to sd 14<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1001<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1001<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next on fd 14 failed errno=3D0 (Success)<br>
 =A0 =A0 =A0 =A0connection_close: conn=3D1001 sd=3D14<br>
 =A0 =A0 =A0 =A0connection_read(14): no connection!<br>
 =A0 =A0 =A0 =A0connection_read(14): no connection!<br>
<br>
 =A0 =A0 =A0 =A0$ ldapsearch -H ldap:/// -D &quot;cn=3Dadmin,dc=3Dexample,d=
c=3Dcom&quot; -b &quot;&quot; -W<br>
 =A0 =A0 =A0 =A0Enter LDAP Password:<br>
 =A0 =A0 =A0 =A0ldap_bind: Invalid credentials (49)<br>
<br>
 =A0 =A0 =A0 =A0slap_listener_activate(8):<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0slap_listener(ldap:///)<br>
<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1002<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1002<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next: tag 0x30 len 44 contents:<br>
 =A0 =A0 =A0 =A0op tag 0x60, time 1273546425<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0conn=3D1002 op=3D0 do_bind<br>
 =A0 =A0 =A0 =A0ber_scanf fmt ({imt) ber:<br>
 =A0 =A0 =A0 =A0ber_scanf fmt (m}) ber:<br>
<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;cn=3Dadmin,dc=3D=
example,dc=3Dcom&gt;<br>
<br>
 =A0 =A0 =A0 =A0&lt;&lt;&lt;<br>
 =A0 =A0 =A0 =A0 =A0dnPrettyNormal:&lt;cn=3Dadmin,dc=3Dexample,dc=3Dcom&gt;=
,&lt;cn=3Dadmin,dc=3Dexample,dc=3Dcom&gt;<br>
 =A0 =A0 =A0 =A0do_bind: version=3D3 dn=3D&quot;cn=3Dadmin,dc=3Dexample,dc=
=3Dcom&quot; method=3D128<br>
 =A0 =A0 =A0 =A0send_ldap_result: conn=3D1002 op=3D0 p=3D3<br>
 =A0 =A0 =A0 =A0send_ldap_response: msgid=3D1 tag=3D97 err=3D49<br>
 =A0 =A0 =A0 =A0ber_flush2: 14 bytes to sd 14<br>
 =A0 =A0 =A0 =A0connection_get(14): got connid=3D1002<br>
 =A0 =A0 =A0 =A0connection_read(14): checking for input on id=3D1002<br>
 =A0 =A0 =A0 =A0ber_get_next<br>
 =A0 =A0 =A0 =A0ber_get_next on fd 14 failed errno=3D0 (Success)<br>
 =A0 =A0 =A0 =A0connection_close: conn=3D1002 sd=3D14<br>
</blockquote>
<br>
-- <br>
 =A0-- Howard Chu<br>
 =A0CTO, Symas Corp. =A0 =A0 =A0 =A0 =A0 <a href=3D"http://www.symas.com"; t=
arget=3D"_blank">http://www.symas.com</a><br>
 =A0Director, Highland Sun =A0 =A0 <a href=3D"http://highlandsun.com/hyc/"; =
target=3D"_blank">http://highlandsun.com/hyc/</a><br>
 =A0Chief Architect, OpenLDAP =A0<a href=3D"http://www.openldap.org/project=
/" target=3D"_blank">http://www.openldap.org/project/</a><br>
</div></div><br>--<br>Mark A. Ziesemer<br><a href=3D"http://www.ziesemer.co=
m">www.ziesemer.com</a><br>
<br>

--0050450171a831aa7e0488f30c72--