aboutsummaryrefslogtreecommitdiffstats
path: root/sitesummary-collector.cgi
diff options
context:
space:
mode:
authorPetter Reinholdtsen <pere@hungry.com>2006-08-29 21:46:49 +0000
committerPetter Reinholdtsen <pere@hungry.com>2006-08-29 21:46:49 +0000
commitb1f2a499e23e913a02bcd12ea650d410e17206b0 (patch)
tree86c3aa146235a40fdaf835ff0a2845dcc4a45ca9 /sitesummary-collector.cgi
parent7d5a12c6d587d8b61270e7976617dcf0f1e5f5d6 (diff)
downloadsitesummary-b1f2a499e23e913a02bcd12ea650d410e17206b0.tar.gz
sitesummary-b1f2a499e23e913a02bcd12ea650d410e17206b0.tar.bz2
sitesummary-b1f2a499e23e913a02bcd12ea650d410e17206b0.tar.xz
* Let the collector store the IP peer info about each entry. Not
yet working, as the getpeername() code is broken.
Diffstat (limited to 'sitesummary-collector.cgi')
-rw-r--r--sitesummary-collector.cgi34
1 files changed, 23 insertions, 11 deletions
diff --git a/sitesummary-collector.cgi b/sitesummary-collector.cgi
index e7a3785..0ae7fd7 100644
--- a/sitesummary-collector.cgi
+++ b/sitesummary-collector.cgi
@@ -83,21 +83,13 @@ close SITESUMMARY;
print "Thanks for your submission to site-summary!\n";
print "SITESUMMARY HTTP-POST OK\n";
-process_entry($savefile);
+process_entry($peeripaddr, $peername, $savefile);
unlink $savefile;
exit 0;
-sub process_entry {
- my $filename = shift;
- my $dirname;
- if ($filename =~ m/(.+).tar.gz$/) {
- $dirname = $1;
- mkdir $dirname;
- chdir $dirname;
- `tar zxf $filename`;
- }
+sub extract_unique_id {
my $eth0mac;
open(IFCONFIG, "system/ifconfig-a") || die;
while (<IFCONFIG>) {
@@ -106,7 +98,27 @@ sub process_entry {
}
close (IFCONFIG);
#print STDERR "MAC: $eth0mac\n";
- my $newdir = "$basedir/entries/ether-$eth0mac";
+ return "ether-$eth0mac";
+}
+
+sub process_entry {
+ my ($peeripaddr, $peername, $filename) = @_;
+ my $dirname;
+ if ($filename =~ m/(.+).tar.gz$/) {
+ $dirname = $1;
+ mkdir $dirname;
+ chdir $dirname;
+ `tar zxf $filename`;
+ } else {
+ die "Unhandled file format '$filename'";
+ }
+
+ open(PEERINFO, ">peerinfo") || die;
+ print PEERINFO "$peeripaddr $peername\n";
+ close(PEERINFO) || die;
+
+ my $id = extract_unique_id($dirname);
+ my $newdir = "$basedir/entries/$id";
my $status = "new";
if ( -d $newdir ) {