--- lib/PXElator/tftpd.pm 2009/08/12 22:56:45 207 +++ lib/PXElator/tftpd.pm 2009/08/19 10:58:02 261 @@ -43,8 +43,6 @@ sub tftp_request { my $request = shift; - server->refresh; - warn 'request: ', dump( $request ) if $debug; my $ip = $request->{_REQUEST_}->{PeerAddr}; @@ -58,20 +56,26 @@ my $file = $request->{'_REQUEST_'}{'FileName'}; my $opcode = $OPCODES{$request->{'_REQUEST_'}{'OPCODE'}}; - CouchDB::audit('request', { + my $audit = { ip => $ip, opcode => $opcode, file => $file, - }); + state => 'start', + }; + CouchDB::audit( $opcode, $audit ); progress_bar::start; # process the request if( $request->processRQ() ) { my $size = -s "$dir/$file"; - CouchDB::audit('completed', { file => $file, size => $size }); + $audit->{state} = 'finish'; + $audit->{size} = $size; + CouchDB::audit( $opcode, $audit ); } else { - CouchDB::audit('error', { file => $file, error => Net::TFTPd->error }); + $audit->{state} = 'error'; + $audit->{error} = Net::TFTPd->error; + CouchDB::audit( $opcode, $audit ); $request->processRQ(); } @@ -126,6 +130,7 @@ # wait for any request (RRQ or WRQ) if(my $request = $listener->waitRQ()) { + server->refresh; tftp_request $request; } elsif ( my $error = Net::TFTPd->error ) { warn $error;