Blame example_pl

Packit ae5a87
#!/usr/bin/env perl 
Packit ae5a87
Packit ae5a87
# short example script
Packit ae5a87
Packit ae5a87
use lib 'lib';
Packit ae5a87
use Authen::SASL;
Packit ae5a87
Packit ae5a87
# This part is in the user script
Packit ae5a87
Packit ae5a87
my $sasl = Authen::SASL->new(
Packit ae5a87
  mechanism => 'PLAIN CRAM-MD5 EXTERNAL ANONYMOUS',
Packit ae5a87
  callback => {
Packit ae5a87
    user => 'gbarr',
Packit ae5a87
    pass => 'fred',
Packit ae5a87
    authname => 'none'
Packit ae5a87
  },
Packit ae5a87
);
Packit ae5a87
Packit ae5a87
# $sasl is then passed to a library (eg Net::LDAP)
Packit ae5a87
# which will then do
Packit ae5a87
Packit ae5a87
my $conn = $sasl->client_new("ldap","localhost", "noplaintext noanonymous");
Packit ae5a87
Packit ae5a87
# The library would also set properties on the connection
Packit ae5a87
#$conn->property(
Packit ae5a87
#  iplocal  => $socket->sockname,
Packit ae5a87
#  ipremote => $socket->peername,
Packit ae5a87
#);
Packit ae5a87
Packit ae5a87
# It would then start things off and send this info to the server
Packit ae5a87
Packit ae5a87
my $initial = $conn->client_start;
Packit ae5a87
my $mech    = $conn ->mechanism;
Packit ae5a87
Packit ae5a87
print "$mech;", unpack("H*",$initial),";\n";
Packit ae5a87
Packit ae5a87
# When the server want more information, the library would call
Packit ae5a87
Packit ae5a87
print unpack "H*", $conn->client_step("xyz");
Packit ae5a87
print "\n";