[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 # Copyright (c) 2008 Mathieu Parent <math.parent@gmail.com>. All rights reserved. 2 # This program is free software; you can redistribute it and/or 3 # modify it under the same terms as Perl itself. 4 5 package Net::LDAP::Intermediate::SyncInfo; 6 7 use vars qw(@ISA $VERSION); 8 use Net::LDAP::Intermediate; 9 10 @ISA = qw(Net::LDAP::Intermediate); 11 $VERSION = "0.02"; 12 13 use Net::LDAP::ASN qw(syncInfoValue); 14 use strict; 15 16 sub init { 17 my($self) = @_; 18 19 if (exists $self->{responseValue}) { 20 $self->{asn} = $syncInfoValue->decode(delete $self->{responseValue}); 21 } else { 22 $self->{asn} = {}; 23 $self->{asn}{newcookie} = 24 delete $self->{newcookie} if exists $self->{newcookie}; 25 $self->{asn}{refreshDelete} = 26 delete $self->{refreshDelete} if exists $self->{refreshDelete}; 27 $self->{asn}{refreshPresent} = 28 delete $self->{refreshPresent} if exists $self->{refreshPresent}; 29 $self->{asn}{syncIdSet} = 30 delete $self->{syncIdSet} if exists $self->{syncIdSet}; 31 } 32 #$self->{asn}{refreshDelete}{refreshDone} defaults to TRUE 33 if(defined($self->{asn}{refreshDelete})) { 34 $self->{asn}{refreshDelete}{refreshDone} = 35 defined($self->{asn}{refreshDelete}{refreshDone}) 36 ? $self->{asn}{refreshDelete}{refreshDone} 37 : 1; 38 } 39 #$self->{asn}{refreshPresent}{refreshDone} defaults to TRUE 40 if(defined($self->{asn}{refreshPresent})) { 41 $self->{asn}{refreshPresent}{refreshDone} = 42 defined($self->{asn}{refreshPresent}{refreshDone}) 43 ? $self->{asn}{refreshPresent}{refreshDone} 44 : 1; 45 } 46 #$self->{asn}{syncIdSet}{refreshDeletes} defaults to FALSE 47 if(defined($self->{asn}{syncIdSet})) { 48 $self->{asn}{syncIdSet}{refreshDeletes} = 49 defined($self->{asn}{syncIdSet}{refreshDeletes}) 50 ? $self->{asn}{syncIdSet}{refreshDeletes} 51 : 0; 52 } 53 54 $self; 55 } 56 57 sub newcookie { 58 my $self = shift; 59 @_ ? ($self->{asn}{newcookie}=shift) 60 : $self->{asn}{newcookie}; 61 $self->{asn}{cookie}; 62 } 63 64 sub responseValue { 65 my $self = shift; 66 67 exists $self->{responseValue} 68 ? $self->{responseValue} 69 : $self->{responseValue} = $syncInfoValue->encode($self->{asn}); 70 } 71 72 1; 73 74 75 __END__ 76 77 =head1 NAME 78 79 Net::LDAP::Intermediate::SyncInfo - LDAPv3 Sync Info Message object 80 81 =head1 SYNOPSIS 82 83 use Net::LDAP; 84 use Net::LDAP::Control::SyncRequest; 85 use Net::LDAP::Constant qw( 86 LDAP_SYNC_REFRESH_ONLY 87 LDAP_SYNC_REFRESH_AND_PERSIST 88 LDAP_SUCCESS ); 89 90 $ldap = Net::LDAP->new( "ldap.mydomain.eg" ); 91 92 $req = Net::LDAP::Control::SyncRequest->new( mode => LDAP_SYNC_REFRESH_ONLY ); 93 my $mesg = $ldap->search(base=> 'dc=mydomain,dc='eg', 94 scope => 'sub', 95 control => [ $req ], 96 callback => \&searchCallback, # call for each entry 97 filter => "(objectClass=*)", 98 attrs => [ '*']); 99 sub searchCallback { 100 my $message = shift; 101 my $entry = shift; 102 my @controls = $message->control; 103 104 if($controls[0]->isa('Net::LDAP::Control::SyncState')) { 105 print "Received Sync State Control\n"; 106 print $entry->dn()."\n"; 107 print 'State: '.$controls[0]->state."\n".', entryUUID: '.$controls[0]->entryUUID.', cookie: '.$controls[0]->cookie; 108 } elsif($controls[0]->isa('Net::LDAP::Control::SyncDone')) { 109 print "Received Sync Done Control\n"; 110 print 'Cookie: '.$controls[0]->cookie.', refreshDeletes: '.$controls[0]->refreshDeletes; 111 } 112 } 113 114 =head1 DESCRIPTION 115 116 C<Net::LDAP::Intermediate::SyncInfo> provides an interface for the creation and 117 manipulation of objects that represent the C<Sync Info Message> as described 118 by RFC 4533. 119 120 =head1 CONSTRUCTOR ARGUMENTS 121 122 In addition to the constructor arguments described in 123 L<Net::LDAP::Intermediate> the following are provided. 124 125 =over 4 126 127 =item TODO 128 129 =back 130 131 =head1 METHODS 132 133 As with L<Net::LDAP::Intermediate> each constructor argument 134 described above is also avaliable as a method on the object which will 135 return the current value for the attribute if called without an argument, 136 and set a new value for the attribute if called with an argument. 137 138 =head1 SEE ALSO 139 140 L<Net::LDAP>, 141 L<Net::LDAP::Intermediate>, 142 L<Net::LDAP::Control>, 143 L<Net::LDAP::Control::SyncRequest>, 144 L<Net::LDAP::Control::SyncState>, 145 http://www.ietf.org/rfc/rfc4533.txt 146 147 =head1 AUTHOR 148 149 Mathieu Parent E<lt>math.parent@gmail.comE<gt> 150 151 Please report any bugs, or post any suggestions, to the perl-ldap mailing list 152 E<lt>perl-ldap@perl.orgE<gt> 153 154 =head1 COPYRIGHT 155 156 Copyright (c) 2008 Mathieu Parent. All rights reserved. This program is 157 free software; you can redistribute it and/or modify it under the same 158 terms as Perl itself. 159 160 =cut 161
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |