--- loncom/lonnet/perl/lonnet.pm	2013/02/02 00:22:47	1.1210
+++ loncom/lonnet/perl/lonnet.pm	2013/02/08 16:07:43	1.1214
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.1210 2013/02/02 00:22:47 raeburn Exp $
+# $Id: lonnet.pm,v 1.1214 2013/02/08 16:07:43 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -78,7 +78,7 @@ use Image::Magick;
 
 use Encode;
 
-use vars qw(%perlvar %spareid %pr %prp $memcache %packagetab $tmpdir
+use vars qw(%perlvar %spareid %pr %prp $memcache %packagetab $tmpdir $apache
             $_64bit %env %protocol %loncaparevs %serverhomeIDs %needsrelease
             %managerstab);
 
@@ -634,6 +634,13 @@ sub check_for_valid_session {
 	|| !defined($disk_env{'user.domain'})) {
 	return undef;
     }
+    if (($r->user() eq '') && ($apache >= 2.4)) {
+        if ($disk_env{'user.domain'} eq $r->dir_config('lonDefDomain')) {
+            $r->user($disk_env{'user.name'});
+        } else {
+            $r->user($disk_env{'user.name'}.':'.$disk_env{'user.domain'});
+        }
+    }
     return $handle;
 }
 
@@ -11602,7 +11609,7 @@ sub get_dns {
 }
 
 # ------------------------------------------------------Get DNS checksums file
-sub write_dns_checksums_tab {
+sub parse_dns_checksums_tab {
     my ($lines,$hashref) = @_;
     my $machine_dom = &Apache::lonnet::host_domain($perlvar{'lonHostID'});
     my $loncaparev = &get_server_loncaparev($machine_dom);
@@ -11648,8 +11655,8 @@ sub write_dns_checksums_tab {
 
 sub fetch_dns_checksums {
     my %checksums; 
-        &get_dns('/adm/dns/checksums',\&write_dns_checksums_tab,1,1,
-                 \%checksums);
+    &get_dns('/adm/dns/checksums',\&parse_dns_checksums_tab,1,1,
+             \%checksums);
     return \%checksums;
 }
 
@@ -12190,6 +12197,17 @@ $readit=1;
 	if ($test != 0) { $_64bit=1; } else { $_64bit=0; }
 	&logthis(" Detected 64bit platform ($_64bit)");
     }
+
+    {
+        eval {
+            ($apache) =
+                (Apache2::ServerUtil::get_server_version() =~ m{Apache/(\d+\.\d+)});
+        };
+        if ($@) {
+           $apache = 1.3;
+        }
+    }
+
 }
 }