2 # Enable or disable a bunch of services
3 # XXX what about line changes due to modifications??
4 # XXX changelog / ideas
6 require './xinetd-lib.pl';
9 @conf = &get_xinetd_config();
10 @ids = split(/\0/, $in{'serv'});
11 ($defs) = grep { $_->{'name'} eq 'defaults' } @conf;
12 foreach $m (@{$defs->{'members'}}) {
13 $ddisable{$m->{'value'}} = $m if ($m->{'name'} eq 'disabled');
16 &lock_file($config{'xinetd_conf'});
20 @conf = &get_xinetd_config();
22 &lock_file($xinet->{'file'});
23 $q = $xinet->{'quick'};
24 $dis = $q->{'disable'}->[0] eq 'yes' || $ddisable{$id};
26 &set_member_value($xinet, 'disable', 'no');
27 &modify_xinet($xinet);
28 if ($ddisable{$oldid}) {
29 # Take out old global disabled
30 &delete_xinet($ddisable{$oldid});
32 push(@servs, $xinet->{'value'});
37 # Disable all selected
39 @conf = &get_xinetd_config();
41 &lock_file($xinet->{'file'});
42 $q = $xinet->{'quick'};
43 $dis = $q->{'disable'}->[0] eq 'yes' || $ddisable{$id};
45 &set_member_value($xinet, 'disable', 'yes');
46 &modify_xinet($xinet);
47 push(@servs, $xinet->{'value'});
53 &webmin_log($in{'enable'} ? "enable" : "disable", undef, scalar(@ids),
54 { 'servs' => \@servs });