CHANGES 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843
  1. ----------------------------------------------------------------
  2. Released 2.3.13 2011-02-19
  3. Changes since 2.3.12:
  4. Modules/
  5. * Correct #ifdef-statement for LDAP_OPT_X_TLS_CRLFILE in
  6. constants.c fixes build with older OpenLDAP libs
  7. * Support for LDAP_OPT_DEFBASE (see SF#3072016, thanks to Johannes)
  8. ----------------------------------------------------------------
  9. Released 2.3.12 2010-08-05
  10. Changes since 2.3.11:
  11. Lib/
  12. * Removed tabs from various modules to make things work with python -tt.
  13. * Quick fix to ldif.is_dn() to let multi-valued RDNs pass as valid.
  14. Is too liberal in some corner-cases though...
  15. * Fix to ldif.is_dn() to allow dashes in attribute type (see SF#3020292)
  16. * ldap.open() now outputs a deprecation warning
  17. * module-wide locking is now limited to calling _ldap.initialize().
  18. Still ldap.functions._ldap_function_call() is used to wrap all
  19. calls for writing debug log.
  20. Modules/
  21. * New LDAP options available in OpenLDAP 2.4.18+ supported in
  22. LDAPObject.get/set_option():
  23. ldap.OPT_X_KEEPALIVE_IDLE, ldap.OPT_X_KEEPALIVE_PROBES,
  24. ldap.OPT_X_KEEPALIVE_INTERVAL,
  25. ldap.OPT_X_TLS_CRLCHECK, ldap.OPT_X_TLS_CRLFILE
  26. Doc/
  27. * Various small updates/improvements
  28. ----------------------------------------------------------------
  29. Released 2.3.11 2010-02-26
  30. Changes since 2.3.10:
  31. Lib/
  32. * Fixed LDAP URL parsing with four ? but no real extensions
  33. * ldap.ldapobject.LDAPObject.rename_s() now also accepts arguments
  34. serverctrls and clientctrls
  35. * Removed untested and undocumented class ldap.ldapobject.SmartLDAPObject
  36. * Removed broken method ldap.ldapobject.LDAPObject.manage_dsa_it()
  37. Modules/
  38. * Make use of LDAP_OPT_X_TLS_NEWCTX only if available in
  39. OpenLDAP libs used for the build
  40. * Fixed #ifdef-statements for OPT_X_TLS_PROTOCOL_MIN
  41. Doc/
  42. * Some updates and corrections regarding description of use of
  43. LDAPv3 controls
  44. * Some more descriptions for constants
  45. * Removed comments related to old LaTeX-based documentation system
  46. ----------------------------------------------------------------
  47. Released 2.3.10 2009-10-30
  48. Changes since 2.3.9:
  49. Lib/
  50. * The diagnosticMessage returned by a server is written to the trace
  51. output also for successful operations.
  52. * Fixed handling of LDAP URL extensions with implicit value None which are
  53. mapped to class attributes of LDAPUrl.
  54. * Fixed handling of LDAP URLs with ? being part of extensions.
  55. * Fixed exceptions raised by get_option/set_option (SF#1964993)
  56. * ldap.functions: Fixed import trace-related variables from base-module ldap
  57. * Fixed ldap.resiter missing in RPMs built with python setup.py bdist_rpm
  58. * Fix in class ldap.schema.models.SchemaElement:
  59. repr() was liberally used in methods key_attr() and key_list() to enclose
  60. values in quotes.
  61. Modules/
  62. * Changed internal API List_to_LDAPControls() to LDAPControls_from_object()
  63. * Supported was added for retrieving the SASL username during SASL bind with
  64. ldap_get_option(LDAP_OPT_X_SASL_USERNAME) if available in libldap.
  65. * New LDAP option constant ldap.OPT_X_TLS_NEWCTX supported
  66. in LDAPObject.set_option()
  67. * New LDAP option constants supported in LDAPObject.get/set_option():
  68. ldap.OPT_X_TLS_PROTOCOL_MIN, ldap.OPT_CONNECT_ASYNC, ldap.OPT_X_TLS_DHFILE
  69. * Fixed setting _ldap.OPT_ON and _ldap.OPT_OFF
  70. * l_ldap_result3(): controls are now parsed for all response types (SF#2829057)
  71. Doc/
  72. * Added example for ldap.resiter
  73. ----------------------------------------------------------------
  74. Released 2.3.9 2009-07-26
  75. Changes since 2.3.8:
  76. Lib/
  77. * All modules (ldap, ldif, dsml and ldapurl) have common version number now
  78. * Non-exported function ldif.needs_base64() was abandoned and is now
  79. implemented as method LDIFWriter._needs_base64_encoding().
  80. This allows sub-classes of LDIFWriter to implement determining whether
  81. attribute values have to be base64-encoded in a different manner and is
  82. the same approach like in class dsml.DSMLWriter.
  83. * LDAPUrlExtension._parse() now gracefully handles LDAP URL extensions
  84. without explicit exvalue as being set with implicit value None.
  85. Modules/
  86. * New LDAP option constant ldap.OPT_X_SASL_NOCANON supported
  87. in LDAPObject.get/set_option()
  88. ----------------------------------------------------------------
  89. Released 2.3.8 2009-04-30
  90. Changes since 2.3.7:
  91. Lib/
  92. * ldap.schema.models: More fault-tolerant parsing of SYNTAX in
  93. AttributeTypeDescription
  94. * ldap.schema.tokenizer.split_tokens():
  95. More tolerant parsing of items separated only with a DOLLAR without
  96. surrounding white-spaces (because WSP is declared as zero or more spaces
  97. in RFC 4512)
  98. ----------------------------------------------------------------
  99. Released 2.3.7 2009-04-09
  100. Changes since 2.3.6:
  101. Lib/
  102. * urllib.quote() is now used in LDAPUrlExtension.unparse() to quote
  103. all special URL characters in extension values
  104. Modules/
  105. * Fixed ldapcontrol.c not to raise ldap.ENCODING_ERROR in
  106. function encode_rfc2696() on 64-bit systems
  107. * Fixed seg fault if error code in a LDAP response was outside
  108. the known error codes and could not be mapped to a specific
  109. exception class (thanks to Sean)
  110. * errors.c: LDAP_ERROR_MAX set to LDAP_PROXIED_AUTHORIZATION_DENIED
  111. if available in OpenLDAP header
  112. * new exception class ldap.PROXIED_AUTHORIZATION_DENIED
  113. if available in OpenLDAP header
  114. * Fixed functions.c not to raise ldap.ENCODING_ERROR in
  115. function l_ldap_str2dn() on 64-bit systems (see SF#2725356)
  116. ----------------------------------------------------------------
  117. Released 2.3.6 2009-02-22
  118. Changes since 2.3.5:
  119. Lib/
  120. * Importing ldap.str2dn() which directly imported _ldap.str2dn()
  121. is prohibited now (see SF#2181141)
  122. Modules/
  123. * get_option(): Added support for reading more SASL options.
  124. (OPT_X_SASL_MECH, OPT_X_SASL_REALM, OPT_X_SASL_AUTHCID and
  125. OPT_X_SASL_AUTHZID)
  126. * Added some explicit type casts to fix issues while building
  127. with SunStudio
  128. * Fixed compiling issue with GCC 4.4
  129. (see SF#2555793, thanks to Matej and Martin)
  130. Doc/
  131. * Clarified not to use ldap_get_dn() directly
  132. * Fixed description of ldap.SASL_AVAIL and ldap.TLS_AVAIL
  133. (see SF#2555804, thanks to Matej and Martin)
  134. ----------------------------------------------------------------
  135. Released 2.3.5 2008-07-06
  136. Changes since 2.3.4:
  137. Lib/
  138. * Fixed methods ldap.cidict.__contains__() and
  139. ldap.schema.models.Entry.__contains__()
  140. * FWIW method LDAPObject.cancel_s() returns a result now
  141. * Fixed ldap.schema.models.NameForm: Class attribute oc is now
  142. of type string, not tuple to be compliant with RFC 4512
  143. ----------------------------------------------------------------
  144. Released 2.3.4 2008-03-29
  145. Changes since 2.3.3:
  146. Modules/
  147. * Fixed seg fault when calling LDAPObject.get_option()
  148. (see SF#1926507, thanks to Matej)
  149. ----------------------------------------------------------------
  150. Released 2.3.3 2008-03-26
  151. Changes since 2.3.2:
  152. Fixed backward-compability when building with OpenLDAP 2.3.x libs.
  153. ----------------------------------------------------------------
  154. Released 2.3.2 2008-03-26
  155. Changes since 2.3.1:
  156. Lib/
  157. * ldap.dn.escape_dn_chars() now really adheres to
  158. RFC 4514 section 2.4 by escaping null characters and a
  159. space occurring at the beginning of the string
  160. * New method ldap.cidict.cidict.__contains__()
  161. * ldap.dn.explode_dn() and ldap.dn.explode_rdn()
  162. have a new optional key-word argument flags which is
  163. passed to ldap.dn.str2dn().
  164. Modules/
  165. * Removed unused OPT_PRIVATE_EXTENSION_BASE from constants.c
  166. Doc/
  167. * Various additions, updates, polishing (thanks to James).
  168. ----------------------------------------------------------------
  169. Released 2.3.1 2007-07-25
  170. Changes since 2.3.0:
  171. * Support for setuptools (building .egg, thanks to Torsten)
  172. * Support for matched values control (RFC 3876, thanks to Andreas)
  173. Lib/
  174. * Fixed ldif (see SF#1709111, thanks to Dmitry)
  175. * ldap.schema.models:
  176. SUP now separated by $ (method __str__() of classes
  177. AttributeType, ObjectClass and DITStructureRule, thanks to Stefan)
  178. Modules/
  179. * Added constant MOD_INCREMENT to support
  180. modify+increment extension (see RFC 4525, thanks to Andreas)
  181. ----------------------------------------------------------------
  182. Released 2.3.0 2007-03-27
  183. Changes since 2.2.1:
  184. * OpenLDAP 2.3+ required now to build.
  185. * Added support for Cancel operation ext. op. if supported
  186. in OpenLDAP API of the libs used for the build.
  187. Modules/
  188. * Removed deprecated code for setting options by name
  189. * Added l_ldap_cancel()
  190. * Some modifications related to PEP 353 for
  191. Python 2.5 on 64-bit platforms (see SF#1467529, thanks to Matej)
  192. * Added new function l_ldap_str2dn(), removed functions
  193. l_ldap_explode_dn() and l_ldap_explode_rdn()
  194. (see SF#1657848, thanks to David)
  195. Lib/
  196. * Added method ldapobject.LDAPObject.cancel()
  197. * ldap.schema.subentry.urlfetch() now can do non-anonymous
  198. simple bind if the LDAP URL provided contains extensions
  199. 'bindname' and 'X-BINDPW'. (see SF#1589206)
  200. * ldap.filter.escape_filter_chars() has new a key-word argument
  201. escape_mode now which defines which chars to be escaped
  202. (see SF#1193271).
  203. * Various important fixes to ldapobject.ReconnectLDAPObject
  204. * Moved all DN-related functions to sub-module ldap.dn,
  205. import them in ldap.functions for backward compability
  206. * ldap.dn.explode_dn() and ldap.dn.explode_rdn() use the new
  207. wrapper function ldap.dn.str2dn() (related to SF#1657848)
  208. * changetype issue partially fixed (see SF#1683746)
  209. ----------------------------------------------------------------
  210. Released 2.2.1 2006-11-15
  211. Changes since 2.2.0:
  212. Modules/
  213. * Fix for Python 2.5 free(): invalid pointer (see SF#1575329)
  214. * passwd() accepts None for arguments user, oldpw, newpw
  215. (see SF#1440151)
  216. Lib/
  217. * ldif.LDIFWriter.unparse() now accepts instances of
  218. derived dict and list classes (see SF#1489898)
  219. ----------------------------------------------------------------
  220. Released 2.2.0 2006-04-10
  221. Changes since 2.0.11:
  222. * OpenLDAP 2.2+ required now to build.
  223. Modules/
  224. * Dropped all occurences of '#ifdef #LDAP_VENDOR_VERSION'.
  225. * Fixed wrong tuple size in l_ldap_result3() (see SF#1368108)
  226. * Fixed get_option(ldap.OPT_API_INFO) (see SF#1440165)
  227. * Fixed memory leak in l_ldap_result3() when all=0
  228. (see SF#1457325)
  229. * Fixed memory leak in l_ldap_result3() in error cases
  230. (see SF#1464085)
  231. Lib/
  232. * Fixed ldap.schema.models.DITStructureRule.__str__() to
  233. separate SUP rule-ids with a single space instead of ' $ '
  234. * Fixed ldap.async.Dict
  235. * Added ldap.async.IndexedDict
  236. * ldap.schema.subentry.SubSchema.attribute_types() has new
  237. key-word argument ignore_dit_content_rule
  238. ----------------------------------------------------------------
  239. Released 2.0.11 2005-11-07
  240. Changes since 2.0.10:
  241. Lib/
  242. * Class ldap.ldapobject.LDAPObject:
  243. Each method returns a result now
  244. * Class ldap.ldapobject.ReconnectLDAPObject:
  245. Some methods called the wrong methods of LDAPObject. Fixed.
  246. * Added new class ldap.async.Dict
  247. * Slightly cleaned up ldap.schema.subentry.attribute_types()
  248. * New sub-module ldap.resiter which simply provides a mix-in
  249. class for ldap.ldapobject.LDAPObject with a generator method
  250. allresults().
  251. Obviously this only works with Python 2.3+. And
  252. it's still experimental.
  253. ----------------------------------------------------------------
  254. Released 2.0.10 2005-09-23
  255. Changes since 2.0.9:
  256. Lib/
  257. * Switched back to old implementation of
  258. ldap.schema.tokenizer.split_tokens() since the new one
  259. had a bug which deletes the spaces from DESC
  260. * ldap.INSUFFICIENT_ACCESS is now ignored in
  261. ldap.ldapobject.LDAPObject.search_subschemasubentry_s()
  262. ----------------------------------------------------------------
  263. Released 2.0.9 2005-07-28
  264. Changes since 2.0.8:
  265. Modules/
  266. * Removed __doc__ strings from ldapcontrol.c to "fix"
  267. build problems with Python versions 2.2 and earlier.
  268. ----------------------------------------------------------------
  269. Released 2.0.8 2005-06-22 at Linuxtag 2005, Karlsruhe, Germany
  270. Changes since 2.0.7:
  271. * Preliminary support for receiving LDAP controls added.
  272. Contributor:
  273. - Andreas Ames
  274. Lib/
  275. - Added classes in module ldif to ldif.__all__ to fix
  276. from ldif import *
  277. - Removed BitString syntax from
  278. ldap.schema.models.NOT_HUMAN_READABLE_LDAP_SYNTAXES
  279. since the LDAP encoding is in fact human-readable
  280. - ldapurl.LDAPUrlExtension.unparse() outputs empty string
  281. if LDAPUrlExtension.exvalue is None
  282. - Added ldap.controls.SimplePagedResultsControl
  283. ----------------------------------------------------------------
  284. Released 2.0.7 2005-04-29
  285. Changes since 2.0.6:
  286. * Added preliminary support for sending LDAP controls
  287. with a request.
  288. Contributors:
  289. - Deepak Giridharagopal
  290. - Ingo Steuwer
  291. (Receiving controls in LDAP results still not supported.)
  292. Modules:
  293. * LDAPObject.c: removed l_ldap_manage_dsa_it()
  294. * LDAPObject.c: Added missing #ifdef around l_ldap_passwd()
  295. for compability with older OpenLDAP libs.
  296. Lib/
  297. * New algorithm in ldap.schema.tokenizer.split_tokens()
  298. contributed by Wido Depping which is more robust
  299. when parsing very broken schema elements
  300. (e.g. Oracle's OID).
  301. * Fixed argument list (position of timeout) when calling
  302. LDAPObject.search_ext_s() from search_st() and search_s().
  303. * LDAPObject.search_ext_s() correctly calls search_ext_s() now.
  304. * Re-implemented LDAPObject.manage_dsa_it() without calling _ldap.
  305. ----------------------------------------------------------------
  306. Released 2.0.6 2004-12-03
  307. Changes since 2.0.5:
  308. Lib/
  309. * Added sub-module ldap.dn
  310. * Added function ldap.dn.escape_dn_chars()
  311. * Special check when implicitly setting SUP 'top' to
  312. structural object classes without SUP defined to avoid
  313. a loop in the super class chain.
  314. ----------------------------------------------------------------
  315. Released 2.0.5 2004-11-11
  316. Changes since 2.0.4:
  317. Some small improvements for SASL:
  318. The noisy output during SASL bind is avoided now. Interaction
  319. with output on stderr can be enabled by the calling application
  320. by explicitly defining SASL flags.
  321. Removed obsolete directory Win32/.
  322. Lib/
  323. * Make sure that ldap.sasl.sasl.cb_value_dict is a dictionary
  324. even when the caller passes in None to argument cb_value_dict
  325. * Added new key-word arg sasl_flags to method
  326. LDAPObject.sasl_interactive_bind_s()
  327. Modules/
  328. * l_ldap_sasl_interactive_bind_s():
  329. New key-word arg sasl_flags passed to
  330. ldap_sasl_interactive_bind_s()
  331. ----------------------------------------------------------------
  332. Released 2.0.4 2004-10-27
  333. Changes since 2.0.3:
  334. Modules/
  335. * Applied some fixes for 64-bit platforms to LDAPObject.c
  336. * Constants ldap.TLS_AVAIL and ldap.SASL_AVAIL will indicate
  337. whether python-ldap was built with support for SSL/TLS
  338. and/or SASL
  339. setup.py and Modules/
  340. * Applied some fixes for building under Win32
  341. ----------------------------------------------------------------
  342. Released 2.0.3 2004-10-06
  343. Changes since 2.0.2:
  344. * Added support for LDAP Password Modify Extended Operation
  345. (see RFC 3062)
  346. Demo/:
  347. * Added passwd_ext_op.py
  348. Modules/
  349. * Added l_ldap_passwd() in LDAPObject.c
  350. Lib/
  351. * Added methods passwd() and passwd_s() to
  352. ldap.ldapobject.LDAPObject
  353. ----------------------------------------------------------------
  354. Released 2.0.2 2004-07-29
  355. Changes since 2.0.1:
  356. Modules/
  357. * Fixed detecting appropriate OpenLDAP libs version for
  358. determining whether ldap_whoami_s() is available or not.
  359. This fixes build problems with OpenLDAP libs 2.1.0 up
  360. to 2.1.12.
  361. ----------------------------------------------------------------
  362. Released 2.0.1 2004-06-29
  363. Changes since 2.0.0:
  364. dsml:
  365. * Fixed wrong exception message format string
  366. ldap.schema.models:
  367. * Fixed Entry.__delitem__() to delete really everything
  368. when deleting an attribute dictionary item.
  369. ----------------------------------------------------------------
  370. Released 2.0.0 2004-05-18
  371. Changes since 2.0.0pre21:
  372. ldif:
  373. * Empty records are simply ignored in ldif.LDIFWriter.unparse()
  374. Modules/
  375. * New method result2() returns 3-tuple containing the msgid
  376. of the outstanding operation.
  377. ldap.ldapobject:
  378. * New _ldap wrapper method LDAPObject.result2() (see above)
  379. which is now used by LDAPObject.result().
  380. ----------------------------------------------------------------
  381. Released 2.0.0pre21 2004-03-29
  382. Changes since 2.0.0pre20:
  383. setup.py:
  384. * runtime_library_dirs is set
  385. Modules/
  386. * (Hopefully) fixed building with OpenLDAP 2.2 libs in errors.c
  387. * Removed meaningless repr() function from LDAPObject.c
  388. * Removed setting LDAP_OPT_PROTOCOL_VERSION in l_ldap_sasl_bind_s()
  389. * Modified string handling via berval instead of *char
  390. in l_ldap_compare_ext() makes it possible to compare attribute
  391. values with null chars.
  392. * Wrapped ldap_sasl_bind() for simple binds instead of ldap_bind()
  393. since 1. the latter is marked deprecated and 2. ldap_sasl_bind()
  394. allows password credentials with null chars.
  395. * Removed unused sources linkedlist.c and linkedlist.h
  396. * Function l_ldap_whoami_s() only added if built against
  397. OpenLDAP 2.1.x+ libs (should preserve compability with 2.0 libs)
  398. ldap.ldapobject:
  399. * LDAPObject.bind() only allows simple binds since Kerberos V4
  400. binds of LDAPv2 are not supported anymore. An assert statement
  401. was added to make the coder aware of that.
  402. * Renamed former LDAPObject.sasl_bind_s() to
  403. LDAPObject.sasl_interactive_bind_s() since it wraps OpenLDAP's
  404. ldap_sasl_interactive_bind_s()
  405. ----------------------------------------------------------------
  406. Released 2.0.0pre20 2004-03-19
  407. Changes since 2.0.0pre19:
  408. Modules/
  409. * Removed doc strings from functions.c
  410. * Removed probably unused wrapper function l_ldap_dn2ufn() since
  411. ldap_dn2ufn() is deprecated in OpenLDAP 2.1+
  412. * Removed wrapper function l_ldap_is_ldap_url().
  413. * Removed macro add_int_r() from constants.c since it caused
  414. incompability issues with OpenLDAP 2.2 libs
  415. (Warning: all result types are Integers now! Use the constants!)
  416. * New wrapper function l_ldap_whoami_s()
  417. ldap.ldapobject:
  418. * New wrapper method LDAPObject.whoami_s()
  419. ldap.functions:
  420. * Removed is_ldap_url(). The more general function
  421. ldapurl.isLDAPUrl() should be used instead.
  422. ldap.sasl:
  423. * Added class cram_md5 (for SASL mech CRAM-MD5)
  424. ldap.async:
  425. * Use constants for search result types (see note about
  426. add_int_r() above).
  427. ----------------------------------------------------------------
  428. Released 2.0.0pre19 2004-01-22
  429. Changes since 2.0.0pre18:
  430. Modules/
  431. * LDAPObject.c:
  432. Most deprecated functions of OpenLDAP C API are not used anymore.
  433. * functions.c:
  434. Removed unused default_ldap_port().
  435. * constants.c:
  436. Removed unused or silly constants
  437. AUTH_KRBV4, AUTH_KRBV41, AUTH_KRBV42, URL_ERR_BADSCOPE, URL_ERR_MEM
  438. * errors.c:
  439. Fixed building with OpenLDAP 2.2.x
  440. (errors caused by negative error constants in ldap.h)
  441. ldap.ldapobject.LDAPObject:
  442. * Removed unused wrapper methods uncache_entry(), uncache_request(),
  443. url_search(), url_search_st() and url_search_s()
  444. * New wrapper methods for all the _ext() methods in _ldap.LDAPObject.
  445. ldap.modlist:
  446. * Some performance optimizations and simplifications
  447. in function modifyModlist()
  448. ----------------------------------------------------------------
  449. Released 2.0.0pre18 2003-12-09
  450. Changes since 2.0.0pre17:
  451. ldap.ldapobject:
  452. * Fixed missing ldap._ldap_function_call() in
  453. ReconnectLDAPObject.reconnect()
  454. ----------------------------------------------------------------
  455. Released 2.0.0pre17 2003-12-03
  456. Changes since 2.0.0pre16:
  457. ldap.functions:
  458. * Fixed ImportError when running python -O
  459. ----------------------------------------------------------------
  460. Released 2.0.0pre16 2003-12-02
  461. Changes since 2.0.0pre15:
  462. Modules/
  463. * Removed definition of unused constant RES_EXTENDED_PARTIAL since
  464. the corresponding symbol LDAP_RES_EXTENDED_PARTIAL seems to not
  465. be available in OpenLDAP-HEAD (pre 2.2) anymore.
  466. All in Lib/
  467. * Fixed some subtle bugs/oddities mentioned by pychecker.
  468. dsml:
  469. * Renamed DSMLWriter._f to DSMLWriter._output_file
  470. * Added wrapper method DSMLWriter.unparse() which simply
  471. calls DSMLWriter.writeRecord()
  472. ldap.ldapobject:
  473. * Simplified LDAPObject.search_subschemasubentry_s()
  474. ldap.functions:
  475. * Moved ldap._ldap_function_call() into ldap.functions.
  476. * apply() is not used anymore since it seems deprecated
  477. ldap.async:
  478. * Added class DSMLWriter
  479. ldap.schema:
  480. * Removed unused key-word argument strict from
  481. ldap.schema.subentry.SubSchema.attribute_types()
  482. * Fixed backward compability issue (for Python prior to 2.2) in
  483. ldap.schema.subentry.SubSchema.listall()
  484. ----------------------------------------------------------------
  485. Released 2.0.0pre15 2003-11-11
  486. Changes since 2.0.0pre14:
  487. Modules/
  488. Follow rule "Always include Python.h first"
  489. ldap.schema.subentry:
  490. * Added new method SubSchema.get_structural_oc()
  491. * Added new method SubSchema.get_applicable_aux_classes()
  492. * Methods SubSchema.listall() and SubSchema.tree() have
  493. new key-word argument schema_element_filters
  494. * Support for DIT content rules in SubSchema.attribute_types()
  495. ----------------------------------------------------------------
  496. Released 2.0.0pre14 2003-10-03
  497. Changes since 2.0.0pre13:
  498. setup.py:
  499. * Some modifications to ease building for Win32
  500. * Added directory Build/ mainly intended for platform-specific
  501. examples of setup.cfg
  502. * Fixed installing ldap.filter
  503. ldap.ldapobject:
  504. * Added class attribute LDAPObject.network_timeout mapped to
  505. set_option(ldap.OPT_NETWORK_TIMEOUT,..)
  506. * LDAPObject.search_ext(): Pass arguments serverctrls,clientctrls
  507. to _ldap.search_ext()
  508. ldap.sasl:
  509. * Added class ldap.sasl.external for handling
  510. the SASL mechanism EXTERNAL
  511. * Dictionary ldap.sasl.saslmech_handler_class built during import
  512. for all the known SASL mechanisms derived from class definitions
  513. ldap.schema:
  514. * More graceful handling of KeyError in SubSchema.attribute_types()
  515. * New method SubSchema.get_inheritedattr() for retrieving inherited
  516. class attributes
  517. * New method SubSchema.get_inheritedobj() for retrieving a
  518. schema element instance including all inherited class attributes
  519. ----------------------------------------------------------------
  520. Released 2.0.0pre13 2003-06-02
  521. Changes since 2.0.0pre12:
  522. ldap.async:
  523. * Checking type of argument writer_obj relaxed in
  524. LDIFWriter.__init__() since file-like objects are
  525. not necessarily an instance of file.
  526. ldap.schema:
  527. * ldap.schema.subentry.SubSchema.attribute_types() now correctly
  528. handles attribute types without NAME set
  529. * If SUP is not defined for a structural object class 'top' is
  530. assumed to be the only super-class by default
  531. * '_' is now the abstract top node in SubSchema.tree() for all
  532. schema element classes since ABSTRACT and AUXILIARY object
  533. classes are not derived from 'top' by default
  534. ----------------------------------------------------------------
  535. Released 2.0.0pre12 2003-05-27
  536. Changes since 2.0.0pre11:
  537. New sub-module ldap.filter:
  538. * Added functions escape_filter_chars() and filter_format()
  539. ldap.ldapobject:
  540. * Trace log writes LDAP URI of connection instead of module name
  541. * search_s() passes self.timeout as argument timeout when
  542. calling search_ext_s()
  543. * Key-word arguments for simple_bind() and simple_bind_s()
  544. with defaults for anonymous bind.
  545. * LDAPObject.protocol_version is set to LDAPv3 as default
  546. (this might make code changes necessary in a real LDAPv2
  547. environment)
  548. * Default for key-word argument trace_stack_limit passed to
  549. __init__() is 5
  550. * Updated __doc__ strings
  551. * Aligned and tested ReconnectLDAPObject and SmartLDAPObject
  552. ldap.async:
  553. * LDIFWriter uses ldif.LDIFWriter instead of calling
  554. function ldif.CreateLDIF
  555. * LDIFWriter accepts either file-like object or ldif.LDIFWriter
  556. instance as argument for specifying the output
  557. ldif:
  558. * Abandoned argument all_records of LDIFRecordList.__init__()
  559. ldapurl:
  560. * urllib.unquote() used instead of urllib.unquote_plus()
  561. ----------------------------------------------------------------
  562. Released 2.0.0pre11 2003-05-02
  563. Changes since 2.0.0pre10:
  564. ldap.ldapobject:
  565. * Cosmetic change: Named argument list for LDAPObject.compare()
  566. instead of *args,**kwargs.
  567. * Fixed bug in ReconnectLDAPObject._apply_method_s() affecting
  568. compability with Python 2.0. The bug was introduced with
  569. 2.0.0pre09 by dropping use of apply().
  570. ldap.modlist:
  571. * modifyModlist(): Only None is filtered from attribute value lists,
  572. '' is preserved as valid attribute value. But filtering applies
  573. to old_value and new_value now.
  574. ldap.schema:
  575. * Zero-length attribute values for schema elements are ignored
  576. (needed on e.g. Active Directory)
  577. dsml:
  578. Added support for parsing and generating DSMLv1.
  579. Still experimental though.
  580. ----------------------------------------------------------------
  581. Released 2.0.0pre10 2003-04-19
  582. Changes since 2.0.0pre09:
  583. ldap.schema:
  584. * Emulate BooleanType for compability with Python2.3 in assert
  585. statements
  586. ----------------------------------------------------------------
  587. Released 2.0.0pre09 2003-04-19
  588. Changes since 2.0.0pre08:
  589. Modified setup.py to support Cyrus-SASL 2.x.
  590. ldap.ldapobject:
  591. * apply() is not used anymore since it seems deprecated
  592. * Fixed __setstate__() and __getstate__() of ReconnectLDAPObject
  593. ldap.schema:
  594. * Completed classes for nameForms, dITStructureRules and
  595. dITContentRules
  596. ----------------------------------------------------------------
  597. Released 2.0.0pre08 2003-04-11
  598. Changes since 2.0.0pre07:
  599. ldap.schema:
  600. * For backward compability with Python versions prior to 2.2
  601. Lib/ldap/schema/tokenizer.py and Lib/ldap/schema/models.py use
  602. (()) instead of tuple() for creating empty tuples.
  603. ----------------------------------------------------------------
  604. Released 2.0.0pre07 2003-04-03
  605. Changes since 2.0.0pre06:
  606. LDAPObject.c:
  607. * Wrapped OpenLDAP's ldap_search_ext()
  608. * Removed empty __doc__ strings
  609. * Removed fileno
  610. * Removed all stuff related to caching in OpenLDAP libs
  611. ldap.ldapobject:
  612. * Fixed SASL rebind in ldap.ldapobject.ReconnectLDAPObject
  613. * use search_ext() instead ldap_search()
  614. * new class attribute timeout for setting a global time-out
  615. value for all synchronous operations
  616. ldap.schema:
  617. * Fixed two typos in ldap.schema.models
  618. * Some attempts to improve performance of parser/tokenizer
  619. * Completely reworked to have separate OID dictionaries for
  620. the different schema element classes
  621. * Fixed the Demo/schema*.py to reflect changes to ldap.schema
  622. Documentation updates and various __doc__ string modifications.
  623. ldapurl:
  624. * Removed all Unicode stuff from module ldapurl
  625. * Consistent URL encoding in module ldapurl
  626. ldif:
  627. * Removed ldif.FileWriter
  628. * Proper handling of FILL (see RFC 2849)
  629. ----------------------------------------------------------------
  630. Released 2.0.0pre06 2002-09-23
  631. Changes since 2.0.0pre05:
  632. - Fine-grained locking when linking against libldap_r
  633. - New wrapper class ldap.ReconnectLDAPObject
  634. - Security fix to module ldapurl
  635. - Other fixes and improvements to whole package
  636. - LDAPv3 schema support
  637. (still somewhat premature and undocumented)
  638. ----------------------------------------------------------------
  639. Released 2.0.0pre05 2002-07-20
  640. ----------------------------------------------------------------
  641. Released 2.0.0pre04 2002-02-09
  642. ----------------------------------------------------------------
  643. Released 2.0.0pre02 2002-02-01
  644. ----------------------------------------------------------------
  645. Released 1.10alpha3 2000-09-19
  646. $Id: CHANGES,v 1.242 2011/02/19 14:35:17 stroeder Exp $