[Date Prev][Date Next] [Chronological] [Thread] [Top]

ldapdelete / referrals (ITS#553)



Full_Name: Dave Gress
Version: 1.2.9
OS: sun
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (161.44.224.244)


ldapdelete always returns "removed" if a entry is referred to a consumer
database.
Entry however is not removed.

ex:
ldapdelete -v -D "cn=Directory Manager" -p389 -hsystem1 -wmypass
"billingnumber=1234567890,uniqueidentifier=Test#0000001234567890,o=Test,c=US"


ldap_send_initial_request
open_ldap_connection
ldap_connect_to_host: sgi-supptm1:389
sd 5 connected to: 1.2.3.4
ldap_delayed_open successful, ld_host is (null)
ldap_send_server_request
ber_flush: 45 bytes to sd 5
         0  + 02 01 01  `  & 02 01 02 04 14  c  n  =  D
         i  r  e  c  t  o  r  y 20  M  a  n  a  g  e  r
        80 0b  m y p a s s
ldap_result
wait4msg (infinite timeout)
** Connections:
* host: system1  port: 389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun  1 09:15:42 2000

** Outstanding Requests:
 * msgid 1,  origid 1, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
do_ldap_select
read1msg
ber_get_next
ber_get_next: tag 0x30 len 12 contents:
ber_dump: buf 0x2c960, ptr 0x2c960, end 0x2c96c
          current len 12, contents:
        02 01 01  a 07 0a 01 00 04 00 04 00
got result msgid 1, original id 1
new result:  res_errno: 0, res_error: <>, res_matched: <>
read1msg:  0 new referrals
request 1 done
res_errno: 0, res_error: <>, res_matched: <>
ldap_free_request (origid 1, msgid 1)      
ldap_result2error
ldap_msgfree
ldap_delete
ldap_send_initial_request
ldap_send_server_request
ber_flush: 86 bytes to sd 5
         0  T 02 01 02  J  O  b  i  l  l  i  n  g  n  u
         m  b  e  r  =  1  2  3  4  5  6  7  8  9  0  ,
         u  n  i  q  u  e  i  d  e  n  t  i  f  i  e  r
         =  T  e  s  t  #  0  1  2  3  4  5  6  7  8  9
         0  ,  o  =  T  e  s  t  ,  c  =  U  S
ldap_result
wait4msg (infinite timeout)
** Connections:
* host: system1   port: 389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun  1 09:15:42 2000

** Outstanding Requests:
 * msgid 2,  origid 2, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
do_ldap_select
read1msg
ber_get_next
ber_get_next: tag 0x30 len 53 contents:
ber_dump: buf 0x32b68, ptr 0x32b68, end 0x32b9d
          current len 53, contents:
        02 01 02  k  0 0a 01 09 04 00 04  )  R  e  f  e
         r  r  a  l  : 0a  l  d  a  p  :  /  /  s  g  i
         -  s  y  s  t  s  t  .  d  a  v  e  g  .  c  o
         m  :  3  8  9
got result msgid 2, original id 2
re_encode_request: new msgid 3, new dn <NONE>
new result:  res_errno: 9, res_error: <>, res_matched: <>
read1msg:  -1 new referrals
ldap_unbind
ldap_free_request (origid 2, msgid 2)
ldap_free_connection
ldap_send_unbind
ber_flush: 7 bytes to sd 5
         0 05 02 01 04  B 00
ldap_free_connection: actually freed
deleting entry "billingnumber=1234567890,uniqueidentifier=Test#0000001234567890
6,o=Test,c=US"
        removed




+

Additional info:   ber_get_stringa returns LBER_DEFAULT at 240

(gdb) bt
#0  ber_get_stringa (ber=0xefffdf08, buf=0xefffdefc) at decode.c:239
#1  0x13ddc in re_encode_request (ld=0x2ce88, origber=0x2d1c0, msgid=3,
dnp=0xefffdfb0)
    at request.c:844
#2  0x13a44 in ldap_chase_referrals (ld=0x2ce88, lr=0x2e550, errstrp=0x2e56c,
    hadrefp=0xefffe028) at request.c:715
#3  0x15094 in read1msg (ld=0x2ce88, msgid=2, all=1, sb=0x2e550, lc=0x2d608,
    result=0xefffe1f4) at result.c:338
#4  0x14db4 in wait4msg (ld=0x2ce88, msgid=2, all=1, timeout=0x2d608,
result=0xefffe1f4)
    at result.c:232
#5  0x14af4 in ldap_result (ld=0x2ce88, msgid=2, all=1, timeout=0x0,
result=0xefffe1f4)
    at result.c:117
#6  0x120e8 in ldap_delete_s (ld=0x2ce88,
    dn=0xeffff52d
"billingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US
")
at delete.c:71
#7  0x116c4 in dodelete (ld=0x2ce88,
    dn=0xeffff52d
"billingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US
")
at ldapdelete.c:170
#8  0x115b4 in main (argc=10, argv=0xeffff34c) at ldapdelete.c:136         




234             if ( (*buf = (char *) malloc( (size_t)datalen + 1 )) == NULL )
235                     return( LBER_DEFAULT );
236
237             if ( (unsigned long) ber_read( ber, *buf, datalen ) != datalen
) {
238                     free( *buf );
239                     *buf = NULL;
240                     return( LBER_DEFAULT );
241             }



(gdb) p *buf
$1 = 0x2e648
"llingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US\"
services\".
The \"-\" may be replaced"


(gdb) p *ber
$2 = {
  ber_buf = 0x2d1f8
"0T\002\001\002JObillingnumber=8035550096,uniqueidentifier=Amteva#00000000055500
96,o=Amteva,c=USc=US",
ber_ptr = 0x2d24e "c=US", ber_end = 0x2d24e "c=US",  
  ber_sos = 0x0, ber_tag = 4294967295, ber_len = 0, ber_usertag = 0,
ber_options = 1 '\001',
  ber_rwptr = 0x2d24e "c=US", ber_encode_translate_proc = 0,
ber_decode_translate_proc = 0}
(gdb)


(gdb) p datalen
$3 = 105
~~      

(gdb) p datalen
$3 = 105
~~