Current File : //usr/local/apps/perl/lib/site_perl/5.30.0/URI/smb.pm |
package URI::smb;
use strict;
use warnings;
use parent 'URI::_login';
our $VERSION = '5.32';
sub default_port { 445 }
sub user {
my $self = shift;
my $new = shift;
my ($user, $authdomain) = _parse_user($self->SUPER::user());
if ($new) {
$self->SUPER::user($authdomain ? "$authdomain;$new" : $new);
$user = $new;
}
return $user;
}
sub authdomain {
my $self = shift;
my $new = shift;
my ($user, $authdomain) = _parse_user($self->SUPER::user());
# it must not be possible to set authdomain without user
if ($user && $new) {
$self->SUPER::user("$new;$user");
$authdomain = $new;
}
return $authdomain;
}
sub sharename {
return (shift->path_segments)[1];
}
sub _parse_user {
my $input = shift or return;
my ($authdomain, $user) = split ';', $input, 2;
return $user ? ($user, $authdomain) : $authdomain;
}
1;
__END__
=head1 NAME
URI::smb - Samba/CIFS URI scheme
=head1 SYNOPSIS
my $uri = URI->new('smb://authdomain;user:password@server/share/path');
=head1 DESCRIPTION
This module implements the (unofficial) C<smb:> URI scheme described in L<http://www.ubiqx.org/cifs/Appendix-D.html>.
=head1 SUBROUTINES/METHODS
=head2 default_port
The default port for accessing Samba/Windows File Servers is 445
=head2 user
Get or set the user part of the URI (without the authdomain)
=head2 authdomain
Get or set the authentication authdomain part of the URI. This value is only available if the user is already set.
=head2 sharename
Helper method to get the share name from path
=head1 DEPENDENCIES
None
=head1 BUGS AND LIMITATIONS
See L<URI|URI#BUGS>
=head1 SEE ALSO
L<http://www.ubiqx.org/cifs/Appendix-D.html>
=head1 AUTHOR
I. M. Bur <github@lty.cz>
=head1 LICENSE AND COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See L<http://dev.perl.org/licenses/> for more information.