[python-ldap] Adding msgid to LDAPError
michael at stroeder.com
Sat Sep 12 12:15:36 CEST 2015
Stephen J. Butler wrote:
> On Sat, Sep 12, 2015 at 4:51 AM, Michael Ströder <michael at stroeder.com
> <mailto:michael at stroeder.com>> wrote:
> But just a quick question: Why not attach the msgid to also LDAPError
> instances caused by write operations? Note that LDAP allows pipe-lining of
> requests. You can send several write operations and deal with the result code
> later. Your patch would be handy for those situations either.
> Should work there too. It doesn't make sense to attach msgid inside stuff
> like l_ldap_add_ext() because if it fails at that point there's no valid msgid
> to track. So I did it all in l_ldap_result4(), which should be generic enough
> to track any type of request, read or write.
Ah ok. Will test this.
> While you're at it you could also attach the response controls (plural!)
> returned by the server in the LDAPResult messages to the LDAPError instance.
> This would e.g. solve the case of a simple bind failing because of an expired
> password. Up to now the response control saying "password expired" cannot be
> Also OpenLDAP's experimental "What failed?" control would require this for
> determining what went wrong when using slapo-constraint, slapo-unique...
> That's an interesting thought. Certainly useful, but I might want to rework
> the patch into an LDAPerror and LDAPerrorExt
No, please not a different error class.
> so that we're constantly
> specifying parameters that aren't used. Or is the project OK with default
> parameters in the header file?
The following options would be ok for me:
1. Set LDAPError's response control class attribute to None (not 0 or '').
2. Don't set response control class attribute at all so the application has to
properly deal with AttributeError/KeyError exception.
I have to admin the LDAPError class stuff is quite hackish and error-prone.
Since I'm not a C programmer I could not really fix it.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4245 bytes
Desc: S/MIME Cryptographic Signature
More information about the python-ldap