/
usr
/
share
/
perl5
/
URI
/
/usr/share/perl5/URI
mkdir
upload
Name
Size
Mode
Actions
file/
-
0755
rm
urn/
-
0755
rm
data.pm
3417
0644
edit
dl
rm
Escape.pm
7061
0644
edit
dl
rm
file.pm
9761
0644
edit
dl
rm
ftp.pm
1082
0644
edit
dl
rm
gopher.pm
2454
0644
edit
dl
rm
Heuristic.pm
6524
0644
edit
dl
rm
http.pm
451
0644
edit
dl
rm
https.pm
170
0644
edit
dl
rm
IRI.pm
820
0644
edit
dl
rm
ldap.pm
2950
0644
edit
dl
rm
ldapi.pm
467
0644
edit
dl
rm
ldaps.pm
170
0644
edit
dl
rm
mailto.pm
1302
0644
edit
dl
rm
mms.pm
151
0644
edit
dl
rm
news.pm
1480
0644
edit
dl
rm
nntp.pm
153
0644
edit
dl
rm
pop.pm
1233
0644
edit
dl
rm
QueryParam.pm
4887
0644
edit
dl
rm
rlogin.pm
155
0644
edit
dl
rm
rsync.pm
233
0644
edit
dl
rm
rtsp.pm
151
0644
edit
dl
rm
rtspu.pm
152
0644
edit
dl
rm
sftp.pm
124
0644
edit
dl
rm
sip.pm
1735
0644
edit
dl
rm
sips.pm
169
0644
edit
dl
rm
snews.pm
198
0644
edit
dl
rm
Split.pm
2379
0644
edit
dl
rm
ssh.pm
201
0644
edit
dl
rm
telnet.pm
154
0644
edit
dl
rm
tn3270.pm
154
0644
edit
dl
rm
URL.pm
5487
0644
edit
dl
rm
urn.pm
2201
0644
edit
dl
rm
WithBase.pm
3857
0644
edit
dl
rm
_foreign.pm
133
0644
edit
dl
rm
_generic.pm
5848
0644
edit
dl
rm
_idna.pm
2105
0644
edit
dl
rm
_ldap.pm
3275
0644
edit
dl
rm
_login.pm
257
0644
edit
dl
rm
_punycode.pm
5648
0644
edit
dl
rm
_query.pm
2557
0644
edit
dl
rm
_segment.pm
442
0644
edit
dl
rm
_server.pm
3750
0644
edit
dl
rm
_userpass.pm
1060
0644
edit
dl
rm
Edit:
/usr/share/perl5/URI/_ldap.pm
(3275B)
# Copyright (c) 1998 Graham Barr <gbarr@pobox.com>. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. package URI::_ldap; use strict; use warnings; our $VERSION = '1.73'; $VERSION = eval $VERSION; use URI::Escape qw(uri_unescape); sub _ldap_elem { my $self = shift; my $elem = shift; my $query = $self->query; my @bits = (split(/\?/,defined($query) ? $query : ""),("")x4); my $old = $bits[$elem]; if (@_) { my $new = shift; $new =~ s/\?/%3F/g; $bits[$elem] = $new; $query = join("?",@bits); $query =~ s/\?+$//; $query = undef unless length($query); $self->query($query); } $old; } sub dn { my $old = shift->path(@_); $old =~ s:^/::; uri_unescape($old); } sub attributes { my $self = shift; my $old = _ldap_elem($self,0, @_ ? join(",", map { my $tmp = $_; $tmp =~ s/,/%2C/g; $tmp } @_) : ()); return $old unless wantarray; map { uri_unescape($_) } split(/,/,$old); } sub _scope { my $self = shift; my $old = _ldap_elem($self,1, @_); return undef unless defined wantarray && defined $old; uri_unescape($old); } sub scope { my $old = &_scope; $old = "base" unless length $old; $old; } sub _filter { my $self = shift; my $old = _ldap_elem($self,2, @_); return undef unless defined wantarray && defined $old; uri_unescape($old); # || "(objectClass=*)"; } sub filter { my $old = &_filter; $old = "(objectClass=*)" unless length $old; $old; } sub extensions { my $self = shift; my @ext; while (@_) { my $key = shift; my $value = shift; push(@ext, join("=", map { $_="" unless defined; s/,/%2C/g; $_ } $key, $value)); } @ext = join(",", @ext) if @ext; my $old = _ldap_elem($self,3, @ext); return $old unless wantarray; map { uri_unescape($_) } map { /^([^=]+)=(.*)$/ } split(/,/,$old); } sub canonical { my $self = shift; my $other = $self->_nonldap_canonical; # The stuff below is not as efficient as one might hope... $other = $other->clone if $other == $self; $other->dn(_normalize_dn($other->dn)); # Should really know about mixed case "postalAddress", etc... $other->attributes(map lc, $other->attributes); # Lowercase scope, remove default my $old_scope = $other->scope; my $new_scope = lc($old_scope); $new_scope = "" if $new_scope eq "base"; $other->scope($new_scope) if $new_scope ne $old_scope; # Remove filter if default my $old_filter = $other->filter; $other->filter("") if lc($old_filter) eq "(objectclass=*)" || lc($old_filter) eq "objectclass=*"; # Lowercase extensions types and deal with known extension values my @ext = $other->extensions; for (my $i = 0; $i < @ext; $i += 2) { my $etype = $ext[$i] = lc($ext[$i]); if ($etype =~ /^!?bindname$/) { $ext[$i+1] = _normalize_dn($ext[$i+1]); } } $other->extensions(@ext) if @ext; $other; } sub _normalize_dn # RFC 2253 { my $dn = shift; return $dn; # The code below will fail if the "+" or "," is embedding in a quoted # string or simply escaped... my @dn = split(/([+,])/, $dn); for (@dn) { s/^([a-zA-Z]+=)/lc($1)/e; } join("", @dn); } 1;
Save
cmd:
run