added timestamp and moved Module::Refresh->refresh into server
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 3 Aug 2009 08:52:32 +0000 (08:52 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 3 Aug 2009 08:52:32 +0000 (08:52 +0000)
lib/PXElator/dhcpd.pm
lib/PXElator/httpd.pm
lib/PXElator/server.pm
lib/PXElator/tftpd.pm

index 454f56f..5c93504 100644 (file)
@@ -19,7 +19,6 @@ use IO::Socket::INET;
 use File::Slurp;
 use Data::Dump qw/dump/;
 use Net::Ping;
-use Module::Refresh;
 
 use lib '..';
 use Net::DHCP::Packet;
@@ -198,7 +197,6 @@ sub start {
        print "DHCP listen on ",$sock->sockhost,":",$sock->sockport,"\n";
 
        while (1) {
-               Module::Refresh->refresh;
                process_packet $sock;
        }
 }
index 0c4c30e..d0d5af2 100644 (file)
@@ -17,7 +17,6 @@ use Carp qw/confess/;
 use File::Slurp;
 #use JSON;
 use IO::Socket::INET;
-use Module::Refresh;
 
 our $pids;
 $pids = { httpd => $$ } unless defined $pids; # keep pids on refresh
@@ -257,14 +256,12 @@ sub start {
        start_stop 'screen';
        start_stop 'kvm';
 
-       while (my $client = $server->accept()) {
-               $client->autoflush(1);
+       while (1) {
+               my $client = $server->accept() || next; # ALARM trickle us
                my $request = <$client>;
 
                warn "request $request\n" if $debug;
 
-               Module::Refresh->refresh;
-
                if ($request =~ m{^GET (/.*) HTTP/1.[01]}) {
                        my $path = $1;
                        my $param;
index 7671887..204b8d7 100644 (file)
@@ -3,6 +3,8 @@ package server;
 use warnings;
 use strict;
 
+use Module::Refresh;
+
 our $ip      = '172.16.10.1';
 our $netmask = '255.255.255.0';
 
@@ -15,4 +17,17 @@ use config;
 our $debug;
 sub debug { $debug = config::shared('debug', @_) || 0 }
 
+my $timestamp_interval = 3;
+my $stderr_tell = 0;
+
+$SIG{ALRM} = sub {
+    if ( tell(STDERR) != $stderr_tell ) {
+        warn "\nTIMESTAMP: " . localtime() . "\n\n";
+        $stderr_tell = tell(STDERR);
+               Module::Refresh->refresh;
+    }
+    alarm $timestamp_interval;
+};
+alarm $timestamp_interval;
+
 warn "loaded";
index 0655762..8a8212f 100644 (file)
@@ -5,7 +5,6 @@ use strict;
 
 use Net::TFTPd 0.03 qw(%OPCODES);
 use Data::Dump qw/dump/;
-use Module::Refresh;
 
 use server;
 
@@ -22,7 +21,6 @@ sub path {
        return $path;
 }
 
-STDERR->autoflush(1);
 use progress_bar;
 
 sub transfer_status {
@@ -94,13 +92,11 @@ sub start {
 
        while(1) {
 
-               Module::Refresh->refresh;
-
                # wait for any request (RRQ or WRQ)
                if(my $request = $listener->waitRQ()) {
                        tftp_request $request;
-               } else {
-                       warn Net::TFTPd->error;
+               } elsif ( my $error = Net::TFTPd->error ) {
+                       warn $error;
                }
 
        }