[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm

raeburn lon-capa-cvs-allow@mail.lon-capa.org
Fri, 12 Sep 2008 21:26:00 -0000


raeburn		Fri Sep 12 17:26:00 2008 EDT

  Modified files:              
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  - bug 5717.
  Will extract protocol of server from additional entry in a record in hosts.tab and dns_hosts.tab 
  Used to indicate server protocol is https.   If blank, default is http.
  
  
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.967 loncom/lonnet/perl/lonnet.pm:1.968
--- loncom/lonnet/perl/lonnet.pm:1.967	Thu Sep 11 10:47:23 2008
+++ loncom/lonnet/perl/lonnet.pm	Fri Sep 12 17:25:54 2008
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.967 2008/09/11 14:47:23 bisitz Exp $
+# $Id: lonnet.pm,v 1.968 2008/09/12 21:25:54 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -34,7 +34,7 @@
 use HTTP::Date;
 # use Date::Parse;
 use vars qw(%perlvar %spareid %pr %prp $memcache %packagetab $tmpdir
-            $_64bit %env);
+            $_64bit %env %protocol);
 
 my (%badServerCache, $memcache, %courselogs, %accesshash, %domainrolehash,
     %userrolehash, $processmarker, $dumpcount, %coursedombuf,
@@ -643,7 +643,11 @@
     }
 
     if (!$want_server_name) {
-	$spare_server="http://".&hostname($spare_server);
+        my $protocol = 'http';
+        if ($protocol{$spare_server} eq 'https') {
+            $protocol = $protocol{$spare_server};
+        }
+	$spare_server = $protocol.'://'.&hostname($spare_server);
     }
     return $spare_server;
 }
@@ -8536,13 +8540,18 @@
 	    next if ($configline =~ /^(\#|\s*$ )/x);
 	    next if ($configline =~ /^\^/);
 	    chomp($configline);
-	    my ($id,$domain,$role,$name)=split(/:/,$configline);
+	    my ($id,$domain,$role,$name,$protocol)=split(/:/,$configline);
 	    $name=~s/\s//g;
 	    if ($id && $domain && $role && $name) {
 		$hostname{$id}=$name;
 		push(@{$name_to_host{$name}}, $id);
 		$hostdom{$id}=$domain;
 		if ($role eq 'library') { $libserv{$id}=$name; }
+                if ($protocol eq 'https') {
+                    $protocol{$id} = $protocol;
+                } else {
+                    $protocol{$id} = 'http'; 
+                }
 	    }
 	}
     }