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