- Fixed bug for auto_range used in paged search
- Added dual IP stack mode parameter in Server object, values are: IP_SYSTEM_DEFAULT, IP_V4_ONLY, IP_V4_PREFERRED, IP_V6_ONLY, IP_V6_PREFERRED
- Added read_server_info parameter to bind() and start_tls() to avoid multiple schema and info read operations with auto_bind
- Redesigned Reusable (pooled) strategy
- Added LDAPResponseTimeoutError exception raised when get_response() doesn't receive any response in the allowed timeout period
- Added shortened authentication parameters in ldap3 namespace: ANONYMOUS, SIMPLE, SASL
- Added shortened scope parameters in ldap3 namespace: BASE, LEVEL, SUBTREE
- Added shortened get_info parameters in ldap3 namespace: NONE, DSA, SCHEMA, ALL
- Added shortened alias dereferencing parameters in ldap3 namespace: DEREF_NONE, DEREF_SEARCH, DEREF_BASE, DEREF_ALWAYS
- Added shortened connection strategy parameters in ldap3 namespace: SYNC, ASYNC, LDIF, RESTARTABLE, REUSABLE
- Added shortened pooling strategy parameters in ldap3 namespace: FIRST, ROUND_ROBIN, RANDOM
- Added reentrant lock to avoid race conditions in the Connection object
- When runs in Python 2.7.9 uses SSLContext
- Tested against Python 2.7.9, PyPy 2.4.0 and PyPy3 2.4.0
- setuptools updated to 8.2.1