#!/afs/athena/contrib/perl/perl

while(<>){
    chop;
	($site, $port) =split(':');
	$port = 80 unless $port;

	&addhost($site, $port);
}

sub process_results {
    open(MEM, $logger'MemoryLog);
    $n = 0;
    while(<MEM>){
	($site, $path, $port) = &url'ParseURL($_);
#	print("Trying to add $site:$port\n");
	$n++;
	&addhost($site, $port);
    }
    unlink($logger'MemoryLog);
}
sub addhost {
    local($addhost, $addport) = @_;
    local($addme, $document, $host, $port, $done);
    $addme = "$addhost:$addport";

    $addme =~ s/\n//g;
    @ahost = split(/\./, $addhost);
    $revaddme = join('.', reverse @ahost);

    if (`ggrep $addme /mit/mkgray/afs/w4/masterlist` ne ""){
	  $myresults .= ("($n / $#local_links) Already knew about $addme\n");
	  return;
      }
#    print("Opening masterlist to insert $addme\n");
    open(LIST, "/mit/mkgray/afs/w4/masterlist");
    while(<LIST>){
	chop;
	y/A-Z/a-z/;
    if($done){
        $document .= $_."\n";
        next;
    }				# 
	($host, $port) = split(/:/, $_);
	@host = split(/\./, $host);

	$revhost = join('.', reverse @host);
	if(($revaddme eq $revhost) && ($addme eq $_)){
	    $myresults .= ("($n / $#local_links) Already knew about $addme\n");
	    return;
	}
	elsif($revaddme lt $revhost){
#	    print("My host is \"$revaddme\" which is less than \"$revhost\"\n");
	    $document .= $addme."\n";
	    $done = 1;
	    $document .= $_."\n";
	    
	}
	else{
	    $document .= $_."\n";
	}
    }
    close(LIST);
    
    $document .= $addme."\n" unless $done;

    unlink("/mit/mkgray/afs/w4/masterlist");
    open(MLIST, ">/mit/mkgray/afs/w4/masterlist");
#    print("Writing ", length($document), " chars, from $addme\n");
    print MLIST $document;
    close(MLIST);
    $addedn++;
    $myresults .= ("($n / $#local_links) Added $addme ($addedn added)\n");
    if(length($myresults) >200){
	&zme($myresults);
	$myresults = '';
    }
}

sub zme {
    local($msg) = @_;
    open(ZME, "|/usr/athena/bin/zwrite -d -n -q $ENV{'USER'}");
    print(ZME $msg);
    close(ZME);
}
1;
