The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::DSML::Control - A perl module that supplies a Net::DSML::Control object that is used with a Net::DSML object.

VERSION

This document describes Net::DSML::Control version 0.002

SYNOPSIS

 Control examples.
 
 use Net::DSML;
 use Net::DSML::filter;
 use Net::DSML::Control;

 # Create a DSML Control object with one control.
 $dsmlControl = Net::DSML::Control->new( { oid => 1.2.840.113556.1.4.619,
                             type => base64Binary,
                             criticality => true,
                             value => RFNNTYyLJA==  } );


 Another form of control creation.

 use Net::DSML;
 use Net::DSML::filter;
 use Net::DSML::Control;

 # Create a DSML Control object with no controls.
 $dsmlControl = Net::DSML::Control->new();

 # Add a DSML Control.
 $dsmlControl->add( { control => 1.2.840.113556.1.4.619,
                      type => base64Binary,
                      criticality => true,
                      value => RFNNTYyLJA==  } );

DESCRIPTION

Net::DSML::Control is a module that supplies a LDAP DSML Control object for a Net::DSML operation.

This document assumes that the reader has some knowledge of the LDAP, LDAP Controls and DSML protocols.

INTERFACE

new ( {OPTIONS} )

The method new is the constructor for a new Net::DSML::Control oject.

There are two possible object construction options.

With input options.

 Input option "control":  The control oid number. Required.
 Input option "valuetype":  The xsd type for the value data.
                            Values base64Binary, string, anyURI
 Input option "criticality":  The criticality of the control; 
 true or false.
 Input option "value":  The value of the control.

 $dsml = Net::DSML::Control->new( { control => "1.2.840.113556.1.4.619", 
                             valuetype => "base64Binary", 
                             criticality => "true", 
                             value => "RFNNTYyLJA=="  } );

Method output; Returns a Net::DSML::Control object. If there is an error in the input options, get the error message with the error method.

Without input options.

 $dsml = Net::DSML::Control->new();

Method output; Returns a new DSML object.

error ()

The method error returns the error message for the object. $message = $dsml->error();

clear ()

The method clear resets the object to its default values $result = $dsml->clear(); $result will always contain a 1.

getControl ()

The method getControls returns all of the controls for this object.

 $returnControls = $dsml->getControl();
add ( {OPTIONS} )

Controls can be stack on top of another control.A The method add can be used to add additional controls to the Control object.

If there is one required input option and 3 possible optional options.

 Input option "control":  The control oid number. Required.
 Input option "valuetype":  The xsd type for the value data.
                            Values base64Binary, string, anyURI
 Input option "criticality":  The criticality of the control; 
 true or false.
 Input option "value":  The value of the control.

 $return = $dsml->Control( { control => "1.2.840.113556.1.4.619", 
                             valuetype => "base64Binary", 
                             criticality => "true", 
                             value => "RFNNTYyLJA=="  } );

Method output; Returns true (1) on success; false (0) on error, error message can be gotten with error method. Errors will pretain to input options.

DIAGNOSTICS

All of the error messages should be self explantory.

CONFIGURATION AND ENVIRONMENT

Net::DSML::Control requires no configuration files or environment variables.

DEPENDENCIES

            Test::More          => 0
            version             => 0.680
            Class::Std::Utils   => 0.0.2
            Carp                => 1.040

INCOMPATIBILITIES

None reported.

BUGS AND LIMITATIONS

Currently there is a limition concerning authentication, it has not yet been implemented. This rules out any operations that modify data or access to data that requires authentication to access data.

No bugs have been reported.

Please report any bugs or feature requests to charden@pobox.com, or bug-net-dsml@rt.cpan.org, or through the web interface at http://rt.cpan.org.

AUTHOR

Clif Harden <charden@pobox.com>

LICENCE AND COPYRIGHT

Copyright (c) 2007, Clif Harden <charden@pobox.com>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

DISCLAIMER OF WARRANTY

BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.