1*4882a593Smuzhiyun# Hack in support for an "exclude" config option for the init module, so 2*4882a593Smuzhiyun# we can hide certain system services that shouldn't really be configurable 3*4882a593Smuzhiyun# via the web interface 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# Upstream-status: Pending 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> 8*4882a593Smuzhiyun# Signed-off-by: Jackie Huang <jackie.huang@windriver.com> 9*4882a593Smuzhiyun--- 10*4882a593Smuzhiyun init/index.cgi | 27 ++++++++++++++------------- 11*4882a593Smuzhiyun init/init-lib.pl | 5 +++-- 12*4882a593Smuzhiyun 2 files changed, 17 insertions(+), 15 deletions(-) 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunIndex: webmin-1.850/init/index.cgi 15*4882a593Smuzhiyun=================================================================== 16*4882a593Smuzhiyun--- webmin-1.850.orig/init/index.cgi 17*4882a593Smuzhiyun+++ webmin-1.850/init/index.cgi 18*4882a593Smuzhiyun@@ -45,19 +45,20 @@ elsif ($init_mode eq "init" && $access{' 19*4882a593Smuzhiyun : "$config{'init_dir'}/$ac[0]"); 20*4882a593Smuzhiyun } 21*4882a593Smuzhiyun @runlevels = &list_runlevels(); 22*4882a593Smuzhiyun- foreach $r (@runlevels) { 23*4882a593Smuzhiyun- foreach $w ("S", "K") { 24*4882a593Smuzhiyun- foreach $a (&runlevel_actions($r, $w)) { 25*4882a593Smuzhiyun- @ac = split(/\s+/, $a); 26*4882a593Smuzhiyun- if (!$nodemap{$ac[2]}) { 27*4882a593Smuzhiyun- push(@acts, $ac[1]); 28*4882a593Smuzhiyun- push(@actsl, 29*4882a593Smuzhiyun- "1+$r+$ac[0]+$ac[1]+$ac[2]+$w"); 30*4882a593Smuzhiyun- push(@actsf, "$config{'init_base'}/rc$r.d/$w$ac[0]$ac[1]"); 31*4882a593Smuzhiyun- } 32*4882a593Smuzhiyun- } 33*4882a593Smuzhiyun- } 34*4882a593Smuzhiyun- } 35*4882a593Smuzhiyun+ # Assume there won't be any of these broken actions 36*4882a593Smuzhiyun+ #foreach $r (@runlevels) { 37*4882a593Smuzhiyun+ # foreach $w ("S", "K") { 38*4882a593Smuzhiyun+ # foreach $a (&runlevel_actions($r, $w)) { 39*4882a593Smuzhiyun+ # @ac = split(/\s+/, $a); 40*4882a593Smuzhiyun+ # if (!$nodemap{$ac[2]}) { 41*4882a593Smuzhiyun+ # push(@acts, $ac[1]); 42*4882a593Smuzhiyun+ # push(@actsl, 43*4882a593Smuzhiyun+ # "1+$r+$ac[0]+$ac[1]+$ac[2]+$w"); 44*4882a593Smuzhiyun+ # push(@actsf, "$config{'init_base'}/rc$r.d/$w$ac[0]$ac[1]"); 45*4882a593Smuzhiyun+ # } 46*4882a593Smuzhiyun+ # } 47*4882a593Smuzhiyun+ # } 48*4882a593Smuzhiyun+ # } 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun # For each action, look at /etc/rc*.d/* files to see if it is 51*4882a593Smuzhiyun # started at boot 52*4882a593SmuzhiyunIndex: webmin-1.850/init/init-lib.pl 53*4882a593Smuzhiyun=================================================================== 54*4882a593Smuzhiyun--- webmin-1.850.orig/init/init-lib.pl 55*4882a593Smuzhiyun+++ webmin-1.850/init/init-lib.pl 56*4882a593Smuzhiyun@@ -124,8 +124,9 @@ List boot time action names from init.d, 57*4882a593Smuzhiyun =cut 58*4882a593Smuzhiyun sub list_actions 59*4882a593Smuzhiyun { 60*4882a593Smuzhiyun-local($dir, $f, @stbuf, @rv); 61*4882a593Smuzhiyun+local($dir, $f, @stbuf, @rv, @exclude); 62*4882a593Smuzhiyun $dir = $config{init_dir}; 63*4882a593Smuzhiyun+@exclude = split(/,/, $config{exclude}); 64*4882a593Smuzhiyun opendir(DIR, $dir); 65*4882a593Smuzhiyun foreach $f (sort { lc($a) cmp lc($b) } readdir(DIR)) { 66*4882a593Smuzhiyun if ($f eq "." || $f eq ".." || $f =~ /\.bak$/ || $f eq "functions" || 67*4882a593Smuzhiyun@@ -133,7 +134,7 @@ foreach $f (sort { lc($a) cmp lc($b) } r 68*4882a593Smuzhiyun -d "$dir/$f" || $f =~ /\.swp$/ || $f eq "skeleton" || 69*4882a593Smuzhiyun $f =~ /\.lock$/ || $f =~ /\.dpkg-(old|dist)$/ || 70*4882a593Smuzhiyun $f =~ /^\.depend\./ || $f eq '.legacy-bootordering' || 71*4882a593Smuzhiyun- $f =~ /^mandrake/) { next; } 72*4882a593Smuzhiyun+ $f =~ /^mandrake/ || grep {$_ eq $f} @exclude ) { next; } 73*4882a593Smuzhiyun if (@stbuf = stat("$dir/$f")) { 74*4882a593Smuzhiyun push(@rv, "$f $stbuf[1]"); 75*4882a593Smuzhiyun } 76