[LON-CAPA-cvs] cvs: loncom /auth lonracc.pm lontokacc.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 10 Feb 2005 22:30:56 -0000
albertel Thu Feb 10 17:30:56 2005 EDT
Modified files:
/loncom/auth lonracc.pm lontokacc.pm
Log:
- more delayed IP rsoultion work
Index: loncom/auth/lonracc.pm
diff -u loncom/auth/lonracc.pm:1.15 loncom/auth/lonracc.pm:1.16
--- loncom/auth/lonracc.pm:1.15 Sun Feb 6 02:23:40 2005
+++ loncom/auth/lonracc.pm Thu Feb 10 17:30:56 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Access Handler for File Transfers
#
-# $Id: lonracc.pm,v 1.15 2005/02/06 07:23:40 albertel Exp $
+# $Id: lonracc.pm,v 1.16 2005/02/10 22:30:56 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -53,31 +53,31 @@
sub handler {
my $r = shift;
my $reqhost = $r->get_remote_host(REMOTE_NOLOOKUP);
- my $netaddr=inet_aton($reqhost);
- ($reqhost) = gethostbyaddr($netaddr,AF_INET);
- if (!$reqhost) {
- $r->log_reason("Unable to do hostname $reqhost lookup for ".$r->get_remote_host(REMOTE_NOLOOKUP));
+ my %iphost=&Apache::lonnet::get_iphost();
+ my $hostids=$iphost{$reqhost};
+ if (!$hostids && $reqhost ne '127.0.0.1' ) {
+ $r->log_reason("Unable to find a host for ".
+ $r->get_remote_host(REMOTE_NOLOOKUP));
return FORBIDDEN;
}
- if ($reqhost eq 'localhost.localdomain') {
+ if ($reqhost eq '127.0.0.1') {
return OK;
}
my $return;
my @ids=();
my $id;
- foreach $id (keys %Apache::lonnet::hostname) {
- if ($Apache::lonnet::hostname{$id} =~ /^\Q$reqhost\E$/i) {
- my $filename=$r->filename;
- my $uri =$r->uri;
- if ((-e "$filename.$id") ||
- &subscribed($filename,$id) ||
- ($filename=~/\.meta$/) ||
- ($uri=~m|^/raw/uploaded|)) {
- return OK;
- } else {
- $return=FORBIDDEN;
- push(@ids,$id);
- }
+
+ foreach $id (@{$hostids}) {
+ my $filename=$r->filename;
+ my $uri =$r->uri;
+ if ((-e "$filename.$id") ||
+ &subscribed($filename,$id) ||
+ ($filename=~/\.meta$/) ||
+ ($uri=~m|^/raw/uploaded|)) {
+ return OK;
+ } else {
+ $return=FORBIDDEN;
+ push(@ids,$id);
}
}
if ($return == FORBIDDEN) {
Index: loncom/auth/lontokacc.pm
diff -u loncom/auth/lontokacc.pm:1.13 loncom/auth/lontokacc.pm:1.14
--- loncom/auth/lontokacc.pm:1.13 Mon Feb 7 12:04:53 2005
+++ loncom/auth/lontokacc.pm Thu Feb 10 17:30:56 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Access Handler for User File Transfers
#
-# $Id: lontokacc.pm,v 1.13 2005/02/07 17:04:53 albertel Exp $
+# $Id: lontokacc.pm,v 1.14 2005/02/10 22:30:56 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,13 +37,14 @@
sub handler {
my $r = shift;
my $reqhost = $r->get_remote_host(REMOTE_NOLOOKUP);
- my $netaddr=inet_aton($reqhost);
- ($reqhost) = gethostbyaddr($netaddr,AF_INET);
- if (!$reqhost) {
- $r->log_reason("Unable to do hostname $reqhost lookup for ".$r->get_remote_host(REMOTE_NOLOOKUP));
+ my %iphost=&Apache::lonnet::get_iphost();
+ my $hostids=$iphost{$reqhost};
+ if (!$hostids && $reqhost ne '127.0.0.1' ) {
+ $r->log_reason("Unable to find a host for ".
+ $r->get_remote_host(REMOTE_NOLOOKUP));
return FORBIDDEN;
}
- if ($reqhost eq 'localhost.localdomain') {
+ if ($reqhost eq '127.0.0.1') {
return OK;
}
my $readline;
@@ -57,8 +58,10 @@
while ($readline=<$fh>) {
$readline=~s/\s*$//;
my ($id,$domain,$role,$name)=split(/:/,$readline);
- if ($name =~ /\Q$reqhost\E/i) {
- return OK;
+ foreach my $hostid (@{$hostids}) {
+ if ($name =~ /^\Q$hostid\E$/i) {
+ return OK;
+ }
}
}