From: Mark H. <mha...@sk...> - 2005-05-09 13:16:15
|
Hi, I'm using python-ldap in conjunction with Zope and the LDAPUserFolder product to talk to a Windows Active Directory server. One of the objects I am trying to fetch via LDAP is objectGUID - a binary value. It seems to me that the current implementation of ldap.filters.escape_filter_chars is too conservative in choosing the characters to escape. For example, escape_filter_chars("\x01") currently returns "\x01" (ie, the value as passed in), where it would be better if it returned "\\01" (ie 3 characters in total). I believe this still conforms to RFC2254. I have provided a sample implementation at http://sourceforge.net/support/tracker.php?aid=1193271 - the patch there escapes all non-printable characters. Once this patch is in place, I can query this binary objectGUID attribute, and all other testing appears to work fine (as you would expect though - most of my testing involves printable characters ;). The existing tests all still pass (but I struggled to create a test-case that failed.) As a side-note, I did test extended characters (and saw this in your recent archives). An extended character entered in the Windows ADSI UI is reflected correctly in my browser via Zope. I'd say this is a good indication that the utf-8 escaping is working correctly. Thanks, Mark |