diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/system/vyatta_update_login.pl | 17 |
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(); } |