From: Graham B. <gb...@us...> - 2002-09-11 12:49:58
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv8840/lib/Net/LDAP Modified Files: DSML.pm Log Message: Base64 encode values when needed Index: DSML.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/DSML.pm,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- DSML.pm 18 Jul 2002 20:04:07 -0000 1.16 +++ DSML.pm 11 Sep 2002 12:49:55 -0000 1.17 @@ -11,7 +11,7 @@ use Net::LDAP::Entry; @ISA = qw(XML::SAX::Base); -$VERSION = "0.10"; +$VERSION = "0.11"; # OO purists will hate this :) my %schema_typemap = qw( @@ -412,10 +412,19 @@ @data{qw(Name LocalName)} = qw(dsml:value value); } + my %chdata; foreach my $val (@{$attr->{vals}}) { - %attr = (); + if ($val =~ /(^[ :]|[\x00-\x1f\x7f-\xff])/) { + require MIME::Base64; + $chdata{Data} = MIME::Base64::encode($val,""); + %attr = ( '{}encoding' => { Value => 'base64', Name => "encoding"} ); + } + else { + $chdata{Data} = $val; + %attr = (); + } $handler->start_element(\%data); - $handler->characters({ Data => $val } ); + $handler->characters(\%chdata); %attr = (); $handler->end_element(\%data); } |