summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/system/vyatta_update_login.pl17
1 files changed, 9 insertions, 8 deletions
diff --git a/scripts/system/vyatta_update_login.pl b/scripts/system/vyatta_update_login.pl
index b2125de1..862dffe3 100644
--- a/scripts/system/vyatta_update_login.pl
+++ b/scripts/system/vyatta_update_login.pl
@@ -26,15 +26,16 @@ use Vyatta::Config;
my $config = new Vyatta::Config;
$config->setLevel("system login");
-foreach my $type ($config->listNodes()) {
+my %loginNodes = $config->listNodeStatus();
+while ( my ($type, $status) = each %loginNodes) {
+ next if ($status eq 'static');
my $kind = ucfirst $type;
- my $location = "Vyatta/Login/$kind.pm";
- my $class = "Vyatta::Login::$kind";
-
- require $location;
+ $kind =~ s/-server/Server/;
- my $obj = $class->new();
- die "Don't understand $type" unless $obj;
+ # Dynamically load the module to handle that login method
+ require "Vyatta/Login/$kind.pm";
- $obj->update();
+ # Dynamically invoke update for this type
+ my $login = "Vyatta::Login::$kind";
+ $login->update();
}