When we changed to pw_verify, ADDN stopped working.
This is because the be_bind is looking at
(gdb) 239 sdn = operation_get_target_spec(pb->pb_op); (gdb) 240 if (sdn) { (gdb) 241 dns = slapi_ldap_explode_dn(slapi_sdn_get_dn(sdn), 0); (gdb) 242 if (dns) { (gdb) print sdn $1 = (Slapi_DN *) 0x60080011ad50 (gdb) print *sdn $2 = {flag = 7 '\a', udn = 0x0, dn = 0x600400475430 "user1", ndn = 0x600400471ed0 "user1", ndn_len = 5}
The target spec is from the operation.c, which is:
Slapi_DN* operation_get_target_spec (Slapi_Operation *op) { return op->o_target_spec; }
But the pblock is setting a different attribute.
case SLAPI_TARGET_SDN: if(pblock->pb_op!=NULL) { (*(Slapi_DN **)value) = pblock->pb_op->o_params.target_address.sdn; } else { return( -1 ); } break;
We probably need to clean this up, and make the target SDN consistent in our code, to weed out subtle issues like this.
Can be shown with test ds/dirsrvtests/tests/tickets/ticket48272_test.py
attachment 0001-Ticket-49086-public-api-compatability-test-for-SDN-c.patch
Can be built and tested with make check
{william@ldapkdc 13:13} ~/build/ds I0> ./test_slapd [==========] Running 7 test(s). [ RUN ] test_libslapd_hello [ OK ] test_libslapd_hello [ RUN ] test_libslapd_pblock_analytics [ OK ] test_libslapd_pblock_analytics [ RUN ] test_libslapd_pblock_v3c_target_dn [ OK ] test_libslapd_pblock_v3c_target_dn [ RUN ] test_libslapd_pblock_v3c_target_sdn [ OK ] test_libslapd_pblock_v3c_target_sdn [ RUN ] test_libslapd_pblock_v3c_original_target_dn [ OK ] test_libslapd_pblock_v3c_original_target_dn [ RUN ] test_libslapd_pblock_v3c_target_uniqueid [ OK ] test_libslapd_pblock_v3c_target_uniqueid [ RUN ] test_libslapd_operation_v3c_target_spec [ OK ] test_libslapd_operation_v3c_target_spec [==========] 7 test(s) run. [ PASSED ] 7 test(s).
This patch doesn't appear to "fix" anything, it just adds tests. The tests look fine so you get my ack, but it looks like there is a still an issue that is not addressed.
Metadata Update from @firstyear: - Issue assigned to firstyear - Issue set to the milestone: 1.3.6 backlog
commit 6df837c To ssh://git@pagure.io/389-ds-base.git 73f221a..6df837c master -> master
Adds compat api checker.
Metadata Update from @firstyear: - Issue close_status updated to: None
Metadata Update from @firstyear: - Custom field reviewstatus reset
<img alt="0001-Ticket-49086-SDN-premangaling-broken-after-SASL-chan.patch" src="/389-ds-base/issue/raw/files/5bac3f1381e0bb05f37ce59978a42805453ce8655c397230b4ef7ea25040f002-0001-Ticket-49086-SDN-premangaling-broken-after-SASL-chan.patch" />
I found trying to merge these values without breaking the API to be WAYYY too hard. Will re-tackle this with pblock v4 later.
Metadata Update from @firstyear: - Custom field reviewstatus adjusted to review
Looks good, ack
Metadata Update from @mreynolds: - Custom field reviewstatus adjusted to ack (was: review)
commit e9c5e2dd6d1154613db7af68d59ab2d9d75bc58e To ssh://git@pagure.io/389-ds-base.git ccfc3c3..1c790df master -> master
Metadata Update from @firstyear: - Custom field reviewstatus adjusted to review (was: ack)
Metadata Update from @firstyear: - Issue close_status updated to: fixed - Issue status updated to: Closed (was: Open)
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/2145
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: fixed)
Login to comment on this ticket.