--- lib/PXElator/tftpd.pm 2009/08/04 17:29:59 141 +++ lib/PXElator/tftpd.pm 2009/08/12 22:56:45 207 @@ -6,6 +6,7 @@ use Net::TFTPd 0.03 qw(%OPCODES); use IO::Socket::INET; use Data::Dump qw/dump/; +use CouchDB; use server; @@ -46,7 +47,8 @@ warn 'request: ', dump( $request ) if $debug; - config::for_ip( $request->{_REQUEST_}->{PeerAddr} ); + my $ip = $request->{_REQUEST_}->{PeerAddr}; + config::for_ip( $ip ); if ( $request->{RootDir} ne $dir ) { $request->{RootDir} = $dir; @@ -54,16 +56,22 @@ } my $file = $request->{'_REQUEST_'}{'FileName'}; - # received request - print $OPCODES{$request->{'_REQUEST_'}{'OPCODE'}}, " $file\n"; + my $opcode = $OPCODES{$request->{'_REQUEST_'}{'OPCODE'}}; + + CouchDB::audit('request', { + ip => $ip, + opcode => $opcode, + file => $file, + }); progress_bar::start; # process the request if( $request->processRQ() ) { - print "\nOK completed $file ", -s "$dir/$file", "\n"; + my $size = -s "$dir/$file"; + CouchDB::audit('completed', { file => $file, size => $size }); } else { - print "ERROR ", Net::TFTPd->error, "\n"; + CouchDB::audit('error', { file => $file, error => Net::TFTPd->error }); $request->processRQ(); } @@ -107,10 +115,12 @@ warn 'listener: ',dump( $listener ) if $debug; - printf "TFTP listen %s:%d timeout: %d dir: $dir\n", - $listener->{LocalAddr}, - $listener->{LocalPort}, - $listener->{Timeout}; + CouchDB::audit( 'start', { + addr => $listener->{LocalAddr}, + port => $listener->{LocalPort}, + timeout => $listener->{Timeout}, + params => { %params }, + }); while(1) {