From 59552af5c8df952efe6af10e3770dad561fedd7d Mon Sep 17 00:00:00 2001 From: Greg Price Date: Wed, 5 Nov 2008 22:12:37 -0500 Subject: [PATCH] handle no /var/lib/pam/seen like empty --- pam-auth-update | 36 ++++++++++++++++++++---------------- 1 files changed, 20 insertions(+), 16 deletions(-) diff --git a/pam-auth-update b/pam-auth-update index 8d8b172..64f501a 100755 --- a/pam-auth-update +++ b/pam-auth-update @@ -118,29 +118,33 @@ if ($diff) { @enabled = split(/, /,get($template)); } -# an empty module set is an error, so grab the defaults instead -if (!@enabled) { - @enabled = grep { $profiles{$_}->{'Default'} eq 'yes' } @sorted; - $priority = 'high' unless ($force); -} elsif (-e $savedir . '/seen') { - # filter out any options that are no longer available for any reason - @enabled = grep { $profiles{$_} } @enabled; - # add any previously-unseen configs - my %seen; +# find out what we've seen, so we can ignore those defaults +my %seen; +if (-e $savedir . '/seen') { open(SEEN,$savedir . '/seen'); while () { chomp; $seen{$_} = 1; } close(SEEN); - push(@enabled, - grep { $profiles{$_}->{'Default'} eq 'yes' && !$seen{$_} } @sorted); - @enabled = sort { $profiles{$b}->{'Priority'} <=> $profiles{$a}->{'Priority'} - || $b cmp $a } - @enabled; - my $prev = ''; - @enabled = grep { $_ ne $prev && (($prev) = $_) } @enabled; } +# an empty module set is an error, so in that case grab all the defaults +if (!@enabled) { + %seen = (); + $priority = 'high' unless ($force); +} + +# filter out any options that are no longer available for any reason +@enabled = grep { $profiles{$_} } @enabled; +# add any previously-unseen configs +push(@enabled, + grep { $profiles{$_}->{'Default'} eq 'yes' && !$seen{$_} } @sorted); +@enabled = sort { $profiles{$b}->{'Priority'} <=> $profiles{$a}->{'Priority'} + || $b cmp $a } + @enabled; +my $prev = ''; +@enabled = grep { $_ ne $prev && (($prev) = $_) } @enabled; + fset($template,'seen','false'); set($template,join(', ', @enabled)); -- 1.5.6.5