use File::Slurp;
use Data::Dump qw/dump/;
use Net::Ping;
-use Module::Refresh;
use lib '..';
use Net::DHCP::Packet;
print "DHCP listen on ",$sock->sockhost,":",$sock->sockport,"\n";
while (1) {
- Module::Refresh->refresh;
process_packet $sock;
}
}
use File::Slurp;
#use JSON;
use IO::Socket::INET;
-use Module::Refresh;
our $pids;
$pids = { httpd => $$ } unless defined $pids; # keep pids on refresh
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;
use warnings;
use strict;
+use Module::Refresh;
+
our $ip = '172.16.10.1';
our $netmask = '255.255.255.0';
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";
use Net::TFTPd 0.03 qw(%OPCODES);
use Data::Dump qw/dump/;
-use Module::Refresh;
use server;
return $path;
}
-STDERR->autoflush(1);
use progress_bar;
sub transfer_status {
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;
}
}