<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    AttributeError is IMHO not good, please better raise
    ldap.SERVER_DOWN so that one can handle it.<br>
    <br>
    <div class="moz-cite-prefix">Am 26.01.2016 um 16:01 schrieb Michael
      Ströder:<br>
    </div>
    <blockquote cite="mid:56A78A2F.3030008@stroeder.com" type="cite">
      <pre wrap="">Petr Viktorin wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">On 01/26/2016 12:06 PM, Michael Ströder wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">Petr Viktorin wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">On 12/02/2015 04:29 PM, Space One wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="">how can I check if a connection is still valid? Is there some
no-operation which is really fast?
I tried to just use whoami_s() but this segfaults always:
</pre>
            </blockquote>
          </blockquote>
          <pre wrap="">
Thanks for the patch. Fix for Modules/LDAPObject.c will be released in 2.4.26.

I also wonder whether ldap.ldapobject.LDAPObject.unbind_ext() should simply
remove class attribute LDAPObject._l and a check be added to method
LDAPObject._ldap_call(). That would be an approach which protects any C method
implementation from being called for invalid LDAP connection.
</pre>
        </blockquote>
        <pre wrap="">
Right, that would make it safer.
</pre>
      </blockquote>
      <pre wrap="">
Done.

<a class="moz-txt-link-freetext" href="http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/python-ldap/Lib/ldap/ldapobject.py?r1=1.151&r2=1.152">http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/python-ldap/Lib/ldap/ldapobject.py?r1=1.151&r2=1.152</a>

I did not add raising a specific exception in LDAPObject._ldap_call() yet.
It will currently just raise AttributeError like this:

Traceback (most recent call last):
  File "/home/michael/tmp/test.py", line 6, in <module>
    l.whoami_s()
  File
"/home/michael/Proj/python-ldap/python-ldap/build/lib.linux-x86_64-2.7/ldap/ldapobject.py",
line 643, in whoami_s
    return self._ldap_call(self._l.whoami_s,serverctrls,clientctrls)
  File
"/home/michael/Proj/python-ldap/python-ldap/build/lib.linux-x86_64-2.7/ldap/ldapobject.py",
line 136, in __getattr__
    self.__class__.__name__,repr(name)
AttributeError: SimpleLDAPObject has no attribute '_l'

Let me know what you think. There might also be some corner-case within
ReconnectLDAPObject which I did not investigate yet.

</pre>
      <blockquote type="cite">
        <pre wrap="">To address the original question, perhaps LDAPObject should grow a
utility method/attribute for checking if the _l is still there?
</pre>
      </blockquote>
      <pre wrap="">
I'd prefer people to write correct application code. ;-)

Seriously: Such a utility method/attribute might lead people to believe it's
something which has to be checked regularly. IMHO it's not. The calling code has
to be fixed.

But of course python-ldap must *never* seg fault if the calling code is wrong.
So thanks again for pointing this out.

Ciao, Michael.


</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
python-ldap mailing list
<a class="moz-txt-link-abbreviated" href="mailto:python-ldap@python.org">python-ldap@python.org</a>
<a class="moz-txt-link-freetext" href="https://mail.python.org/mailman/listinfo/python-ldap">https://mail.python.org/mailman/listinfo/python-ldap</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>