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

RE: Infinite chasing of cycled V3 referrals/references (ITS#2894)



Having tried the change you suggested, I found it not working. The
chasing of cycled references still causes an infinite loop.

As far as I understand, the suggested call (inside the
ldap_chase_v3referrals() function)

   ldap_send_server_request( ld, ber, id,
	sref ? origreq : lr, srv, NULL, &rinfo ); 

will mean for references (when sref==1):

   ldap_send_server_request( ld, ber, id,
	origreq, srv, NULL, &rinfo );

This is exactly the code already there. Again, the parent for the new
request will be the top original request instead of actual parent and
the number of parents for the new request will be calculated
incorrectly, so referral hop limit won't work.

Alexander.

-----Original Message-----
From: Howard Chu [mailto:hyc@highlandsun.com] 
Sent: Wednesday, December 24, 2003 4:36 PM
To: alex_dz@softhome.net; openldap-its@OpenLDAP.org
Subject: RE: Infinite chasing of cycled V3 referrals/references
(ITS#2894)


> -----Original Message-----
> From: owner-openldap-bugs@OpenLDAP.org 
> [mailto:owner-openldap-bugs@OpenLDAP.org]On Behalf Of 
> alex_dz@softhome.net

> I hoped that replacement of 'origreq' parameter by 'lr' in the
> ldap_send_server_request() function would help, but this change made 
> the library unable to chase a sequence of references,e.g.
> 'entry1-ref--->entry2-ref--->entry3', so I was wrong :(

I haven't looked at this in depth, but probably this should do something
like

   ldap_send_server_request( ld, ber, id,
	sref ? origreq : lr, srv, NULL, &rinfo );

Try that and see if it works any better...

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support