diff options
-rw-r--r-- | perl-install/printer.pm | 29 | ||||
-rw-r--r-- | perl-install/printerdrake.pm | 3 |
2 files changed, 22 insertions, 10 deletions
diff --git a/perl-install/printer.pm b/perl-install/printer.pm index c671eb036..3276f3314 100644 --- a/perl-install/printer.pm +++ b/perl-install/printer.pm @@ -274,19 +274,23 @@ sub assure_device_is_available_for_cups { # file:/dev/null instead. Restart CUPS if necessary to assure that # CUPS knows the device. my ($device) = @_; - local *F; - open F, ($::testing ? $prefix : "chroot $prefix/ ") . - "/bin/sh -c \"export LC_ALL=C; /usr/sbin/lpinfo -v\" |" or + my $result; + for ($i = 0; $i < 3; $i++) { + local *F; + open F, ($::testing ? $prefix : "chroot $prefix/ ") . + "/bin/sh -c \"export LC_ALL=C; /usr/sbin/lpinfo -v\" |" or die "Could not run \"lpinfo\"!"; - while (my $line = <F>) { - if ($line =~ /$device/) { # Found a line containing the device name, - # so CUPS knows it. - close F; - return 1; + while (my $line = <F>) { + if ($line =~ /$device/) { # Found a line containing the device + # name, so CUPS knows it. + close F; + return 1; + } } + close F; + $result = SIGHUP_daemon("cups"); } - close F; - return SIGHUP_daemon("cups"); + return $result; } sub network_running { @@ -416,6 +420,11 @@ sub getIPsInLocalNetworks { # subroutine determines the list of all hosts reachable in the local # networks by means of pinging the broadcast addresses. + # Return an empty list if no network is running + if (!network_running()) { + return (); + } + # Read the output of "ifconfig" to determine the broadcast addresses of # the local networks my $dev_is_localnet = 0; diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm index dbb709190..e9dc78834 100644 --- a/perl-install/printerdrake.pm +++ b/perl-install/printerdrake.pm @@ -2581,6 +2581,9 @@ sub check_network { } } + # Do not try to start the network if it is not configured + if (!printer::files_exist("/etc/sysconfig/network-scripts/drakconnect_conf")) { return 0 } + # Second check: Is the network running? if (printer::network_running()) { return 1 } |