# phpman > perldoc > Net::LDAP::Control::SyncRequest

## NAME
    [Net::LDAP::Control::SyncRequest](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncRequest/markdown) - LDAPv3 Sync Request control object

## SYNOPSIS
     use [Net::LDAP](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP/markdown);
     use [Net::LDAP::Control::SyncRequest](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncRequest/markdown);
     use [Net::LDAP::Constant](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AConstant/markdown) qw(
      LDAP_SYNC_REFRESH_ONLY
      LDAP_SYNC_REFRESH_AND_PERSIST
      LDAP_SUCCESS );

     $ldap = [Net::LDAP](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP/markdown)->new( "ldap.mydomain.eg" );

     $req = [Net::LDAP::Control::SyncRequest](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncRequest/markdown)->new( mode => LDAP_SYNC_REFRESH_ONLY );
     my $mesg = $ldap->search(base=> 'dc=mydomain,dc='eg',
                              scope    => 'sub',
                              control  => [ $req ],
                              callback => \&searchCallback, # call for each entry
                              filter   => "(objectClass=*)",
                              attrs    => [ '*']);
     sub searchCallback {
       my $message = shift;
       my $entry = shift;
       my @controls = $message->control;

       if ($controls[0]->isa('[Net::LDAP::Control::SyncState](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncState/markdown)')) {
         print "Received Sync State Control\n";
         print $entry->dn()."\n";
         print 'State: '.$controls[0]->state."\n".', entryUUID: '.$controls[0]->entryUUID.', cookie: '.$controls[0]->cookie;
       } elsif ($controls[0]->isa('[Net::LDAP::Control::SyncDone](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncDone/markdown)')) {
         print "Received Sync Done Control\n";
         print 'Cookie: '.$controls[0]->cookie.', refreshDeletes: '.$controls[0]->refreshDeletes;
       }
     }

## DESCRIPTION
    "[Net::LDAP::Control::SyncRequest](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncRequest/markdown)" provides an interface for the creation and manipulation of
    objects that represent the "Sync Request Control" as described by RFC 4533.

## CONSTRUCTOR ARGUMENTS
    In addition to the constructor arguments described in [Net::LDAP::Control](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl/markdown) the following are
    provided.

    mode
    cookie
    reloadHint

## METHODS
    As with [Net::LDAP::Control](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl/markdown) each constructor argument described above is also available as a
    method on the object which will return the current value for the attribute if called without an
    argument, and set a new value for the attribute if called with an argument.

## SEE ALSO
    [Net::LDAP](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP/markdown), [Net::LDAP::Control](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl/markdown), [Net::LDAP::Control::SyncState](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncState/markdown), [Net::LDAP::Control::SyncDone](https://www.chedong.com/phpMan.php/perldoc/Net%3A%3ALDAP%3A%3AControl%3A%3ASyncDone/markdown),
    <http://www.ietf.org/rfc/rfc4533.txt>

## AUTHOR
    Mathieu Parent <<math.parent@gmail.com>>

    Please report any bugs, or post any suggestions, to the perl-ldap mailing list
    <<perl-ldap@perl.org>>

## COPYRIGHT
    Copyright (c) 2008 Mathieu Parent. All rights reserved. This program is free software; you can
    redistribute it and/or modify it under the same terms as Perl itself.

