#!/usr/bin/perl
$|=1;
# Should probably use localtime(), to keep it all in perl, but oh well
my $nowdate = `date +'%a, %d %b %Y %T %Z'`;
chomp($nowdate);
my $file = shift;
if(!$file) {
# Needs sanity checking, but this is just a quickie
print 'Usage: '.$0." <file>\n";
exit;
}
# Ditto nowdate above
my $filedate = `date +'%a, %d %b %Y %T %Z' -r '$file'`;
chomp($filedate);
# Wait for HTTP request to finish
my $in_line = '';
while($in_line ne "\r\n") {
$in_line = <STDIN>;
}
# Load file
my $file_data = '';
open(REPORT_FILE, $file);
while(<REPORT_FILE>) { $file_data .= $_; }
close(REPORT_FILE);
my $file_size = length($file_data);
# Send HTTP response headers
print <<"END_HEADERS";
HTTP/1.1 200 OK
Server: reportsock/1.0 16aug2005
Content-Type: text/plain; charset=iso-8859-1
Date: $nowdate
Last-Modified: $filedate
Accept-Ranges: bytes
Connection: close
Content-Length: $file_size
Cache-Control: max-age=0
Expires: $nowdate
END_HEADERS
# Send file
print $file_data;
exit 0;
pyro |