Commit Graph

396 Commits

Author SHA1 Message Date
Côme Chilliet
6ac7d313c8 Added support for SORT controls
On an openldap server you need the sssvlv overlay for these to work
2017-09-21 10:05:42 +02:00
Côme Chilliet
def30dbde2 Avoid memory leak when creating paged control value 2017-09-21 10:05:42 +02:00
Côme Chilliet
d76d57b887 Fixed ifdef for VLV controls (copy/paste error) 2017-09-21 10:05:42 +02:00
Côme Chilliet
c112b53a60 Added ldap_rename_ext and its test 2017-09-21 10:05:42 +02:00
Côme Chilliet
679442b1d1 Indexing controls by OID when parsing them 2017-09-21 10:05:42 +02:00
Côme Chilliet
9c7666d93a Avoid returning iscritical field when parsing response controls
As stated in RFC4511 Section 4.1.11, this field is always false in
 response controls and only makes sense in request controls
2017-09-21 10:05:42 +02:00
Côme Chilliet
d8a7214d8c Fixed ldap_parse_result comment 2017-09-21 10:05:42 +02:00
Côme Chilliet
ead53aba54 Added ldap_delete_ext and its test 2017-09-21 10:05:42 +02:00
Côme Chilliet
17e490a2e3 Added ldap_mod_*_ext methods for modification with controls 2017-09-21 10:05:42 +02:00
Côme Chilliet
32b51035be Added ldap_add_ext and preread/postread support and tests 2017-09-21 10:05:42 +02:00
Côme Chilliet
b36342453b Added ldap_bind_ext to pass controls and get result object
ldap_bind_ext allows to pass controls and get result object
 from bind operation
Also added a test for it, pretty basic as tests cannot depend upon
 ppolicy overlay
2017-09-21 10:05:41 +02:00
Côme Chilliet
9275e05d8e Improved a bit error handling to avoid passing commands with incomplete controls 2017-09-21 10:05:41 +02:00
Côme Chilliet
3a1ba93066 Added support and test for LDAP_CONTROL_VALUESRETURNFILTER 2017-09-21 10:05:41 +02:00
Côme Chilliet
b5ca0c1c78 Removed client controls alltogether
Client controls are ldap client lib specific and all the one
 I could find are ignoring client controls anyway.
2017-09-21 10:05:41 +02:00
Côme Chilliet
81b27abac0 Added support for controls in ldap_modify_batch 2017-09-21 10:05:41 +02:00
Côme Chilliet
2b52cb74da Added controls support to ldap_compare
Note: for functions like ldap_compare, ldap_delete, ldap_modify,
 a way to get the result object back will need to be added
 so that controls returned by the server may be analyzed.
2017-09-21 10:05:41 +02:00
Côme Chilliet
82cc72a3ba Added controls support to ldap_rename 2017-09-21 10:05:41 +02:00
Côme Chilliet
437c75abcb Fixed prototypes in comments 2017-09-21 10:05:41 +02:00
Côme Chilliet
93fbbbf5a6 Added controls support to ldap_delete 2017-09-21 10:05:40 +02:00
Côme Chilliet
5ee0fc9b56 Added support for controls in ldap_add, ldap_modify, ldap_mod_*
Also added workaround for a bug in ldap_create_assertion_control_value
Made sure failed control creation aborts the operation
And added test for assertion control on ldap_modify
2017-09-21 10:05:40 +02:00
Côme Chilliet
02bd89a552 Added support for assert control value encoding 2017-09-21 10:05:40 +02:00
Côme Chilliet
5691d8bf49 Added controls support to ldap_exop 2017-09-21 10:05:40 +02:00
Côme Chilliet
8de071e0f7 Added controls support to ldap_search, ldap_list and ldap_read. 2017-09-21 10:05:40 +02:00
Côme Chilliet
5ccb31e49e Added controls support to ldap_parse_result and ldap_exop_passwd
Known controls are parsed to and from associative arrays.
Only ppolicy and paged results are implemented for now.
2017-09-21 10:05:40 +02:00
Côme Chilliet
26ccaa39b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Removing client controls attribute from ldap_exop signature
2017-09-07 16:33:42 +02:00
Côme Chilliet
e67379399a Removing client controls attribute from ldap_exop signature
Client controls will not get implemented in php-ldap as
 they are specific to each client ldap lib and most of the
 time unused any way. (servers controls on the other end are used
 and will get implemented)
2017-09-07 16:31:03 +02:00
Côme Chilliet
28630f7920 Fixed an error in ldap_exop introduced by last commit 2017-09-06 15:05:27 +02:00
Côme Chilliet
3fdeb27739 Improving a bit code quality in ldap_exop function
Ideas from 5b3f4c2fb9
The same can be done for the rest of the code,
 and synchronous/asynchronous version should be merged when implementing
 controls.
2017-09-06 12:56:51 +02:00
Côme Chilliet
f3f25a8446 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added controls parameters to ldap_exop so that control support can be added later
2017-08-04 18:11:52 +02:00
Côme Chilliet
aa0e402acf Added controls parameters to ldap_exop so that control support can be added later 2017-08-04 18:10:49 +02:00
Anatol Belski
572429473d Fix datatypes and warnings
Needs more testing yet.

use size_t

add range check and fix warning

more size_t fixes
2017-07-25 19:03:33 +02:00
Côme Chilliet
5e56d050e5 Added ldap_exop_refresh helper for EXOP REFRESH operation on dds overlay
ldap_exop_refresh(resource link, string dn, int ttl)
Returns FALSE on failure, newttl on success
2017-07-20 16:16:59 +02:00
Côme Chilliet
a148ee8c7c Fixed removing all controls by passing an empty array to ldap_set_option 2017-07-11 16:18:33 +02:00
Côme Chilliet
ed8bfcc6ea Small fix in ext/ldap, Moved vars definitions to the beginning of the block using them 2017-07-10 11:33:08 +02:00
Côme Chilliet
274d84139b Added constants for known ldap controls OID and tests for ldap_get/set_option for controls
Also fixed existing tests which were expecting ldap_get_option to fail on controls
2017-07-05 16:41:52 +02:00
Côme Chilliet
3a09c1246c Added support for controls to ldap_get_option 2017-07-05 16:41:52 +02:00
Côme Chilliet
3207747b9e Changed API to avoid using passing result by reference
See discussion on internals ML
2017-07-04 10:03:27 +02:00
Côme Chilliet
13062efd02 Removed unused variables left over by LDAP EXOP patch 2017-07-03 12:23:34 +02:00
Côme Chilliet
e05d230e52 Removed TSRMLS_CC instances left over by LDAP EXOP patch 2017-07-03 12:08:24 +02:00
Côme Chilliet
bda80aa332 Swapped position of retoid and retdata as retoid is almost never used 2017-07-03 10:58:13 +02:00
Côme Chilliet
e9001cab46 Removed two step syntax for EXOP helpers, one call workflow is enough 2017-07-03 10:58:13 +02:00
Côme Chilliet
413e9c84f6 Removed TODOs regarding implementing passwd and whoami exops based on ldap_exop 2017-07-03 10:58:13 +02:00
Côme Chilliet
9aa99cc34c Added constants for standard EXOPs 2017-07-03 10:58:13 +02:00
Côme Chilliet
4652c46245 Removed ldap_refresh function as I’m not sure how to fix/use/test it 2017-07-03 10:58:13 +02:00
Côme Chilliet
e832ce4b22 Fixed ldap_exop and ldap_parse_exop. Only tested them for whoami exop. (see test file) 2017-07-03 10:58:13 +02:00
Côme Chilliet
28530b2f1c Fixed ldap_parse_exop_whoami and ldap_parse_exop_passwd and added test for them 2017-07-03 10:58:13 +02:00
Côme Chilliet
fdafd68419 Fixed ldap_exop_whoami and added a test for it 2017-07-03 10:58:12 +02:00
Côme Chilliet
ae76c8ba2c Fixed ldap_exop_passwd and added tests for it 2017-07-03 10:58:12 +02:00
Côme Chilliet
def09c7cab Fixed building errors in LDAP EXOP 2017-07-03 10:58:12 +02:00
Côme Chilliet
a0920f2822 Added EXOP features based on patch from http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/databases/php-ldap/files/ldap-ctrl-exop56.patch 2017-07-03 10:58:12 +02:00