✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/perl5/URI//_server.pm
package URI::_server;

use strict;
use warnings;

use parent 'URI::_generic';

use URI::Escape qw(uri_unescape);

our $VERSION = '5.09';

sub _uric_escape {
    my($class, $str) = @_;
    if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) {
	my($scheme, $host, $rest) = ($1, $2, $3);
	my $ui = $host =~ s/(.*@)// ? $1 : "";
	my $port = $host =~ s/(:\d+)\z// ? $1 : "";
	if (_host_escape($host)) {
	    $str = "$scheme//$ui$host$port$rest";
	}
    }
    return $class->SUPER::_uric_escape($str);
}

sub _host_escape {
    return unless $_[0] =~ /[^$URI::uric]/;
    eval {
	require URI::_idna;
	$_[0] = URI::_idna::encode($_[0]);
    };
    return 0 if $@;
    return 1;
}

sub as_iri {
    my $self = shift;
    my $str = $self->SUPER::as_iri;
    if ($str =~ /\bxn--/) {
	if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) {
	    my($scheme, $host, $rest) = ($1, $2, $3);
	    my $ui = $host =~ s/(.*@)// ? $1 : "";
	    my $port = $host =~ s/(:\d+)\z// ? $1 : "";
	    require URI::_idna;
	    $host = URI::_idna::decode($host);
	    $str = "$scheme//$ui$host$port$rest";
	}
    }
    return $str;
}

sub userinfo
{
    my $self = shift;
    my $old = $self->authority;

    if (@_) {
	my $new = $old;
	$new = "" unless defined $new;
	$new =~ s/.*@//;  # remove old stuff
	my $ui = shift;
	if (defined $ui) {
	    $ui =~ s/@/%40/g;   # protect @
	    $new = "$ui\@$new";
	}
	$self->authority($new);
    }
    return undef if !defined($old) || $old !~ /(.*)@/;
    return $1;
}

sub host
{
    my $self = shift;
    my $old = $self->authority;
    if (@_) {
	my $tmp = $old;
	$tmp = "" unless defined $tmp;
	my $ui = ($tmp =~ /(.*@)/) ? $1 : "";
	my $port = ($tmp =~ /(:\d+)$/) ? $1 : "";
	my $new = shift;
	$new = "" unless defined $new;
	if (length $new) {
	    $new =~ s/[@]/%40/g;   # protect @
	    if ($new =~ /^[^:]*:\d*\z/ || $new =~ /]:\d*\z/) {
		$new =~ s/(:\d*)\z// || die "Assert";
		$port = $1;
	    }
	    $new = "[$new]" if $new =~ /:/ && $new !~ /^\[/; # IPv6 address
	    _host_escape($new);
	}
	$self->authority("$ui$new$port");
    }
    return undef unless defined $old;
    $old =~ s/.*@//;
    $old =~ s/:\d+$//;          # remove the port
    $old =~ s{^\[(.*)\]$}{$1};  # remove brackets around IPv6 (RFC 3986 3.2.2)
    return uri_unescape($old);
}

sub ihost
{
    my $self = shift;
    my $old = $self->host(@_);
    if ($old =~ /(^|\.)xn--/) {
	require URI::_idna;
	$old = URI::_idna::decode($old);
    }
    return $old;
}

sub _port
{
    my $self = shift;
    my $old = $self->authority;
    if (@_) {
	my $new = $old;
	$new =~ s/:\d*$//;
	my $port = shift;
	$new .= ":$port" if defined $port;
	$self->authority($new);
    }
    return $1 if defined($old) && $old =~ /:(\d*)$/;
    return;
}

sub port
{
    my $self = shift;
    my $port = $self->_port(@_);
    $port = $self->default_port if !defined($port) || $port eq "";
    $port;
}

sub host_port
{
    my $self = shift;
    my $old = $self->authority;
    $self->host(shift) if @_;
    return undef unless defined $old;
    $old =~ s/.*@//;        # zap userinfo
    $old =~ s/:$//;         # empty port should be treated the same a no port
    $old .= ":" . $self->port unless $old =~ /:\d+$/;
    $old;
}


sub default_port { undef }

sub canonical
{
    my $self = shift;
    my $other = $self->SUPER::canonical;
    my $host = $other->host || "";
    my $port = $other->_port;
    my $uc_host = $host =~ /[A-Z]/;
    my $def_port = defined($port) && ($port eq "" ||
                                      $port == $self->default_port);
    if ($uc_host || $def_port) {
	$other = $other->clone if $other == $self;
	$other->host(lc $host) if $uc_host;
	$other->port(undef)    if $def_port;
    }
    $other;
}

1;

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
17 Jan 2026 3.18 PM
root / root
0755
file
--
14 Jan 2026 3.49 PM
root / root
0755
urn
--
14 Jan 2026 3.49 PM
root / root
0755
Escape.pm
6.896 KB
3 Mar 2021 3.16 PM
root / root
0644
Heuristic.pm
6.374 KB
3 Mar 2021 3.16 PM
root / root
0644
IRI.pm
0.775 KB
3 Mar 2021 3.16 PM
root / root
0644
QueryParam.pm
4.747 KB
3 Mar 2021 3.16 PM
root / root
0644
Split.pm
2.298 KB
3 Mar 2021 3.16 PM
root / root
0644
URL.pm
5.358 KB
3 Mar 2021 3.16 PM
root / root
0644
WithBase.pm
3.771 KB
3 Mar 2021 3.16 PM
root / root
0644
_foreign.pm
0.104 KB
3 Mar 2021 3.16 PM
root / root
0644
_generic.pm
5.686 KB
3 Mar 2021 3.16 PM
root / root
0644
_idna.pm
2.03 KB
3 Mar 2021 3.16 PM
root / root
0644
_ldap.pm
3.173 KB
3 Mar 2021 3.16 PM
root / root
0644
_login.pm
0.226 KB
3 Mar 2021 3.16 PM
root / root
0644
_punycode.pm
5.49 KB
3 Mar 2021 3.16 PM
root / root
0644
_query.pm
2.472 KB
3 Mar 2021 3.16 PM
root / root
0644
_segment.pm
0.406 KB
3 Mar 2021 3.16 PM
root / root
0644
_server.pm
3.637 KB
3 Mar 2021 3.16 PM
root / root
0644
_userpass.pm
1.01 KB
3 Mar 2021 3.16 PM
root / root
0644
data.pm
3.311 KB
3 Mar 2021 3.16 PM
root / root
0644
file.pm
9.532 KB
3 Mar 2021 3.16 PM
root / root
0644
ftp.pm
1.031 KB
3 Mar 2021 3.16 PM
root / root
0644
gopher.pm
2.371 KB
3 Mar 2021 3.16 PM
root / root
0644
http.pm
0.415 KB
3 Mar 2021 3.16 PM
root / root
0644
https.pm
0.141 KB
3 Mar 2021 3.16 PM
root / root
0644
ldap.pm
2.855 KB
3 Mar 2021 3.16 PM
root / root
0644
ldapi.pm
0.43 KB
3 Mar 2021 3.16 PM
root / root
0644
ldaps.pm
0.141 KB
3 Mar 2021 3.16 PM
root / root
0644
mailto.pm
1.246 KB
3 Mar 2021 3.16 PM
root / root
0644
mms.pm
0.122 KB
3 Mar 2021 3.16 PM
root / root
0644
news.pm
1.42 KB
3 Mar 2021 3.16 PM
root / root
0644
nntp.pm
0.124 KB
3 Mar 2021 3.16 PM
root / root
0644
nntps.pm
0.141 KB
3 Mar 2021 3.16 PM
root / root
0644
pop.pm
1.179 KB
3 Mar 2021 3.16 PM
root / root
0644
rlogin.pm
0.126 KB
3 Mar 2021 3.16 PM
root / root
0644
rsync.pm
0.202 KB
3 Mar 2021 3.16 PM
root / root
0644
rtsp.pm
0.122 KB
3 Mar 2021 3.16 PM
root / root
0644
rtspu.pm
0.123 KB
3 Mar 2021 3.16 PM
root / root
0644
sftp.pm
0.096 KB
3 Mar 2021 3.16 PM
root / root
0644
sip.pm
1.655 KB
3 Mar 2021 3.16 PM
root / root
0644
sips.pm
0.14 KB
3 Mar 2021 3.16 PM
root / root
0644
snews.pm
0.168 KB
3 Mar 2021 3.16 PM
root / root
0644
ssh.pm
0.171 KB
3 Mar 2021 3.16 PM
root / root
0644
telnet.pm
0.125 KB
3 Mar 2021 3.16 PM
root / root
0644
tn3270.pm
0.125 KB
3 Mar 2021 3.16 PM
root / root
0644
urn.pm
2.124 KB
3 Mar 2021 3.16 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF