1#!/usr/local/bin/perl 2# Update the @includes for some service 3 4require './pam-lib.pl'; 5&error_setup($text{'incs_err'}); 6&ReadParse(); 7@pams = &get_pam_config(); 8$pam = $pams[$in{'idx'}]; 9&lock_file($pam->{'file'}); 10 11# Add to, update or remove existing includes 12@oldincs = grep { $_->{'include'} } @{$pam->{'mods'}}; 13@newincs = split(/\0/, $in{'inc'}); 14for($i=0; $i<@oldincs || $i<@newincs; $i++) { 15 if ($oldincs[$i] && $newincs[$i]) { 16 # Just update 17 $oldincs[$i]->{'include'} = $newincs[$i]; 18 &modify_module($pam->{'name'}, $oldincs[$i]); 19 } 20 elsif ($newincs[$i]) { 21 # Add to file 22 &create_module($pam->{'name'}, { 'include' => $newincs[$i] }); 23 } 24 elsif ($oldincs[$i]) { 25 # Remove from file 26 &delete_module($pam->{'name'}, $oldincs[$i]); 27 } 28 } 29 30&unlock_file($pam->{'file'}); 31&webmin_log("modify", "incs", $pam->{'name'}); 32&redirect(""); 33 34