On 22/6/04 12:24 pm, Mike Jackson <[EMAIL PROTECTED]> wrote:

> Hi,
>  There is a bug in Net::LDAP::LDIF when parsing change records.
> 
>  Refer to RFC 2849, Pages 9 and 10:
> ---------------------------------------------------------------
> # Modify an entry's relative distinguished name
> dn: cn=Paul Jensen, ou=Product Development, dc=airius, dc=com
> changetype: modrdn
> newrdn: cn=Paula Jensen
> deleteoldrdn: 1
> ---------------------------------------------------------------
> 
>  The changetype attribute is listed in the LDIF before the attribute to
> be changed is listed. This is also the way OpenLDAP's ldapmodify tool
> parses the LDIF change records.
> 
>  Net::LDAP::LDIF fails to parse the records properly if the changetype
> attribute comes before the attribute to be changed. The result is that
> the $entry->attributes() method will return an empty list of attributes.
> 
> Net::LDAP::LDIF _should_ parse
> ---------------------------------------------------------------
> dn: cn=foo,o=bar
> changetype: modify
> add: newAttrib
> newAttrib: someValue
> ---------------------------------------------------------------
> 
> however
> 
> Net::LDAP::LDIF expects
> ---------------------------------------------------------------
> dn: cn=foo,o=bar
> add: newAttrib
> changetype: modify
> newAttrib: someValue
> ---------------------------------------------------------------
> 
> 
>  I wrote a parsing function that can take an LDIF file which has new
> records and change records, and call add or modify respectively. It uses
> logic like this:
> 
>  for my $attrib ( $entry->attributes() ) {
> if ( $attrib =~ /changetype/ ) {
> $record->{entrytype} = "change";
> last;
> } else {
> $record->{entrytype} = "new";
> }
>   }
>   push @entries, $record;
> 
> 
>  My parsing of the entrytype fails when the $entry->attributes() list is
> empty, unless I modify my LDIF change records to suit Net::LDAP::LDIF.
> And then they can't be used with OpenLDAP tools...
> 
>  Comments?
> 
> Thanks!

Mike,

Do you still get this with the version of LDIF.pm from subversion, ie
$VERSION="0.14_03"?

<URL:http://svn.mutatus.co.uk/browse/perl-ldap/trunk/>

Cheers,

Chris


Reply via email to