Annotation of loncom/auth/lonracc.pm, revision 1.1

1.1     ! albertel    1: # The LearningOnline Network
        !             2: # Access Handler for File Transfers
        !             3: # (lonacc: Cookie Based Access Handler
        !             4: # 5/21/99,5/22,5/29,5/31,6/15 Gerd Kortemeyer)
        !             5: # 6/16,6/18,7/3 Gerd Kortemeyer
        !             6: 
        !             7: package Apache::lonracc;
        !             8: 
        !             9: use strict;
        !            10: use Apache::Constants qw(:common :remotehost);
        !            11: use Apache::File();
        !            12: 
        !            13: sub handler {
        !            14:     my $r = shift;
        !            15:     my $reqhost;
        !            16:     unless ($reqhost=$r->get_remote_host(REMOTE_DOUBLE_REV)) {
        !            17:        $r->log_reason("Spoof request");
        !            18:        return FORBIDDEN;
        !            19:     }
        !            20:     my $readline;
        !            21:     my $lontabdir=$r->dir_config('lonTabDir');
        !            22:     {
        !            23:        my $fh;
        !            24:        unless ($fh=Apache::File->new("$lontabdir/hosts.tab")) {
        !            25:           $r->log_reason("Could not find host tab file");
        !            26:           return FORBIDDEN;
        !            27:        }
        !            28:        while ($readline=<$fh>) {
        !            29:           my ($id,$domain,$role,$name,$ip)=split(/:/,$readline);
        !            30:           if ($name =~ /$reqhost/i) {
        !            31:               my $filename=$r->filename;
        !            32:               if (-e "$filename.$id") {
        !            33: 	         return OK;
        !            34:               } else {
        !            35:                  $r->log_reason("$id not subscribed", $r->filename);
        !            36:                  return FORBIDDEN;
        !            37:               }
        !            38:           }
        !            39:        }
        !            40: 
        !            41:     }
        !            42:     $r->log_reason("Invalid request for file transfer from $reqhost", 
        !            43:                    $r->filename); 
        !            44:     return FORBIDDEN;
        !            45: }
        !            46: 
        !            47: 1;
        !            48: __END__
        !            49: 
        !            50: 
        !            51: 
        !            52: 
        !            53: 
        !            54: 
        !            55: 
        !            56: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>