| Slackware-Slackget documentation | Contained in the Slackware-Slackget distribution. |
Slackware::Slackget::Network::Auth - The authentification/authorization class for slack-getd network deamons.
Version 1.0.0
This class is used by slack-get daemon's to verify the permission of an host.
use Slackware::Slackget::Network::Auth;
my $auth = Slackware::Slackget::Network::Auth->new($config);
if(!$auth->can_connect($client->peerhost()))
{
$client->close ;
}
The constructor just take one argument: a Slackware::Slackget::Config object :
my $auth = new Slackware::Slackget::Network::Auth ($config);
All methods name are the same as configuration file directives, but you need to change '-' to '_'.
All methods return TRUE (1) if directive is set to 'yes', FALSE (0) if set to 'no' and undef if the directive cannot be found in the Slackware::Slackget::Config. For some secure reasons, all directives are in read-only access. But in the real use the undef value must never been returned, because all method fall back to the <all> section on undefined value. So if a method return undef, this is because the <daemon> -> <connection-policy> -> <all> section is not complete, and that's really a very very bad idea !
Take an host address and return the appropriate value.
$auth->can_connect($client->peerhost) or die "client is not allow to connect\n";
DUPUIS Arnaud, <a.dupuis@infinityperl.org>
Please report any bugs or feature requests to
bug-Slackware-Slackget@rt.cpan.org, or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Slackware-Slackget.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Slackware::Slackget
You can also look for information at:
Thanks to Bertrand Dupuis (yes my brother) for his contribution to the documentation.
Copyright 2005 DUPUIS Arnaud, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Slackware-Slackget documentation | Contained in the Slackware-Slackget distribution. |
package Slackware::Slackget::Network::Auth; use warnings; use strict;
our $VERSION = '1.0.0';
sub new { my ($class,$config) = @_ ; return undef if(!defined($config) && ref($config) ne 'Slackware::Slackget::Config') ; my $self={}; $self->{CONF} = $config ; bless($self,$class); return $self; }
sub can_connect { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-connect'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-connect'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-connect'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-connect'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-connect'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-connect'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_build_packages_list { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-packages-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-packages-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-packages-list'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-packages-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-packages-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-packages-list'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_build_installed_list { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-installed-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-installed-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-build-installed-list'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-installed-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-installed-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-build-installed-list'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_install_packages { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-install-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-install-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-install-packages'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-install-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-install-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-install-packages'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_upgrade_packages { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-upgrade-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-upgrade-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-upgrade-packages'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-upgrade-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-upgrade-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-upgrade-packages'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_remove_packages { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-remove-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-remove-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-remove-packages'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-remove-packages'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-remove-packages'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-remove-packages'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_require_installed_list { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-installed-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-installed-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-installed-list'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-installed-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-installed-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-installed-list'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_require_servers_list { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-servers-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-servers-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-servers-list'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-servers-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-servers-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-servers-list'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_require_packages_list { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-packages-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-packages-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-require-packages-list'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-packages-list'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-packages-list'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-require-packages-list'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub can_search { my ($self,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-search'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-search'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{'can-search'}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-search'}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-search'})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{'can-search'}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
sub is_allowed_to { my ($self,$rule,$host) = @_ ; if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"})) { if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{$rule}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{$rule})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{host}->{"$host"}->{$rule}=~ /yes/i) { return 1; } else { return 0; } } } if(exists($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{$rule}) && defined($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{$rule})) { if($self->{CONF}->{daemon}->{'connection-policy'}->{all}->{$rule}=~ /yes/i) { return 1; } else { return 0; } } else { return undef; } }
1; # End of Slackware::Slackget::Network::Auth