Subject: [PATCH] LDAP Content synchronisation fixes - Fixed parsing of SyncState: avoid emptying the value - Fill in default values in Intermediate::SyncInfo
--- lib/Net/LDAP/Control/SyncState.pm | 10 +++++----- lib/Net/LDAP/Intermediate/SyncInfo.pm | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/Net/LDAP/Control/SyncState.pm b/lib/Net/LDAP/Control/SyncState.pm index e47c78a..569553b 100644 --- a/lib/Net/LDAP/Control/SyncState.pm +++ b/lib/Net/LDAP/Control/SyncState.pm @@ -8,7 +8,7 @@ use vars qw(@ISA $VERSION); use Net::LDAP::Control; @ISA = qw(Net::LDAP::Control); -$VERSION = "0.01"; +$VERSION = "0.02"; use Net::LDAP::ASN qw(syncStateValue); use strict; @@ -16,13 +16,13 @@ use strict; sub init { my($self) = @_; - delete $self->{asn}; - - unless (exists $self->{value}) { + if (exists $self->{value}) { + $self->{asn} = $syncStateValue->decode(delete $self->{value}); + } else { $self->{asn} = { state => $self->{state} || '', entryUUID => $self->{entryUUID} || '', - cookie => $self->{cookie} || '', + cookie => defined($self->{cookie}) ? $self->{cookie} : '', }; } diff --git a/lib/Net/LDAP/Intermediate/SyncInfo.pm b/lib/Net/LDAP/Intermediate/SyncInfo.pm index 73d1604..38e6109 100644 --- a/lib/Net/LDAP/Intermediate/SyncInfo.pm +++ b/lib/Net/LDAP/Intermediate/SyncInfo.pm @@ -29,6 +29,27 @@ sub init { $self->{asn}{syncIdSet} = delete $self->{syncIdSet} if exists $self->{syncIdSet}; } + #$self->{asn}{refreshDelete}{refreshDone} defaults to TRUE + if(defined($self->{asn}{refreshDelete})) { + $self->{asn}{refreshDelete}{refreshDone} = + defined($self->{asn}{refreshDelete}{refreshDone}) + ? $self->{asn}{refreshDelete}{refreshDone} + : 1; + } + #$self->{asn}{refreshPresent}{refreshDone} defaults to TRUE + if(defined($self->{asn}{refreshPresent})) { + $self->{asn}{refreshPresent}{refreshDone} = + defined($self->{asn}{refreshPresent}{refreshDone}) + ? $self->{asn}{refreshPresent}{refreshDone} + : 1; + } + #$self->{asn}{syncIdSet}{refreshDeletes} defaults to FALSE + if(defined($self->{asn}{syncIdSet})) { + $self->{asn}{syncIdSet}{refreshDeletes} = + defined($self->{asn}{syncIdSet}{refreshDeletes}) + ? $self->{asn}{syncIdSet}{refreshDeletes} + : 0; + } $self; } -- 1.5.6.5