summaryrefslogtreecommitdiffstats
path: root/perl-install/printer.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/printer.pm')
-rw-r--r--perl-install/printer.pm73
1 files changed, 47 insertions, 26 deletions
diff --git a/perl-install/printer.pm b/perl-install/printer.pm
index 7ad0046e9..0c84cfe4c 100644
--- a/perl-install/printer.pm
+++ b/perl-install/printer.pm
@@ -111,34 +111,34 @@ sub set_permissions {
my ($file, $perms, $owner, $group) = @_;
if ($owner && $group) {
run_program::rooted($prefix, "/bin/chown", "$owner.$group", $file)
- || die "Could not restart chown!";
+ || die "Could not start chown!";
} elsif ($owner) {
run_program::rooted($prefix, "/bin/chown", $owner, $file)
- || die "Could not restart chown!";
+ || die "Could not start chown!";
} elsif ($group) {
run_program::rooted($prefix, "/bin/chgrp", $group, $file)
- || die "Could not restart chgrp!";
+ || die "Could not start chgrp!";
}
run_program::rooted($prefix, "/bin/chmod", $perms, $file)
- || die "Could not restart chmod!";
+ || die "Could not start chmod!";
}
sub restart_service ($) {
my ($service) = @_;
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "restart")
- || die "Could not restart $service!";
+ run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "restart");
+ if (($? >> 8) != 0) {return 0;} else {return 1;}
}
sub start_service ($) {
my ($service) = @_;
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "start")
- || die "Could not start $service!";
+ run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "start");
+ if (($? >> 8) != 0) {return 0;} else {return 1;}
}
sub stop_service ($) {
my ($service) = @_;
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "stop")
- || die "Could not stop $service!";
+ run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "stop");
+ if (($? >> 8) != 0) {return 0;} else {return 1;}
}
sub service_starts_on_boot ($) {
@@ -165,28 +165,49 @@ sub start_service_on_boot ($) {
return 1;
}
-sub network_status {
- # If the network is not running or not running as configured,
- # return 0, otherwise 1.
+sub SIGHUP_daemon {
+ my ($spooler) = @_;
+ # PDQ has no daemon, exit.
+ if ($spooler eq "pdq") {return 1};
+ # CUPS needs auto-configuration
+ if ($spooler eq "cups") {
+ run_program::rooted($prefix, "/usr/sbin/setcupsconfig");
+ }
+ # Name of the daemon
+ my $daemon;
+ if (($spooler eq "lpr") || ($spooler eq "lpd") || ($spooler eq "lprng")) {
+ $daemon = "lpd";
+ } elsif ($spooler eq "cups") {
+ $daemon = "cupsd";
+ } else {
+ return 1;
+ }
+ # Send the SIGHUP
+ run_program::rooted($prefix, "/usr/bin/killall", "-HUP", $daemon);
+ # CUPS needs some time to come up.
+ if ($spooler eq "cups") {
+ sleep 5;
+ }
+ return 1;
+}
+
+sub network_running {
+ # If the network is not running return 0, otherwise 1.
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"export LC_ALL=C; /etc/rc.d/init.d/network status\" |" ||
- die "Could not run \"/etc/rc.d/init.d/network status\"!";
+ "/bin/sh -c \"export LC_ALL=C; /sbin/ifconfig\" |" ||
+ die "Could not run \"ifconfig\"!";
while (<F>) {
- if (($_ =~ /Devices.*down/) || # Are there configured devices which
- # are down
- ($_ =~ /Devices.*modified/)) { # Configured devices which are not
- # running as configured
- my $devices = <F>;
- chomp $devices;
- if ($devices !~ /^\s*$/) { # Blank line
- close F;
- return 0;
- }
+ if (($_ !~ /^lo\s+/) && # The loopback device can have been started by
+ # the spooler's startup script
+ ($_ =~ /^(\S+)\s+/)) { # In this line starts an entry for a
+ # running network
+ close F;
+ return 1;
}
}
close F;
- return 1;
+ return 0;
}
sub get_security_level {