From 4271fb73203556213af37d004fd8bc0206a6ab0e Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Thu, 7 Feb 2008 22:44:21 +0000 Subject: The current version of Net::Remctl can't handle explicit undef or the empty string as a principal argument. Be careful not to provide a principal argument if no principal was set. This workaround can be removed once we depend on a later version of Net::Remctl. --- perl/Wallet/ACL/NetDB.pm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'perl/Wallet/ACL') diff --git a/perl/Wallet/ACL/NetDB.pm b/perl/Wallet/ACL/NetDB.pm index ad706b3..cc7121b 100644 --- a/perl/Wallet/ACL/NetDB.pm +++ b/perl/Wallet/ACL/NetDB.pm @@ -24,7 +24,7 @@ use Wallet::Config; # This version should be increased on any code change to this module. Always # use two digits for the minor version with a leading zero if necessary so # that it will sort properly. -$VERSION = '0.02'; +$VERSION = '0.03'; ############################################################################## # Interface @@ -46,10 +46,20 @@ sub new { die "NetDB ACL support not available: $error\n"; } local $ENV{KRB5CCNAME} = $Wallet::Config::NETDB_REMCTL_CACHE; - my $port = $Wallet::Config::NETDB_REMCTL_PORT; - my $principal = $Wallet::Config::NETDB_REMCTL_PRINCIPAL; my $remctl = Net::Remctl->new; - unless ($remctl->open ($host, $port, $principal)) { + + # Net::Remctl 2.12 and later will support passing in an empty string for + # the principal. Until then, be careful not to pass principal unless it + # was specified. + my $port = $Wallet::Config::NETDB_REMCTL_PORT || 0; + my $principal = $Wallet::Config::NETDB_REMCTL_PRINCIPAL; + my $status; + if (defined $principal) { + $status = $remctl->open ($host, $port, $principal); + } else { + $status = $remctl->open ($host, $port); + } + unless ($status) { die "cannot connect to NetDB remctl interface: ", $remctl->error, "\n"; } my $self = { remctl => $remctl }; -- cgit v1.2.3