Diff for /doc/loncapafiles/updatequery.piml between versions 1.67 and 1.84.2.3

version 1.67, 2011/01/01 21:49:56 version 1.84.2.3, 2020/01/07 01:29:06
Line 33  http://www.lon-capa.org/ Line 33  http://www.lon-capa.org/
 <target dist='default'>/</target>  <target dist='default'>/</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 $|=1;  $|=1;
   use strict;
   
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
   
Line 53  END Line 55  END
 <file>  <file>
 <target dist='default'>loncom/hosts.tab</target>  <target dist='default'>loncom/hosts.tab</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
   my $lonCluster;
 unless (-l "<TARGET />") {  unless (-l "<TARGET />") {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
 ===============================================================================  ===============================================================================
 Which cluster option would you like to have installed?  Which cluster option would you like to have installed?
 IMPORTANT: to take advantage of the cluster options 1) and 3),  IMPORTANT: to take advantage of the cluster options 1) and 3),
 you must contact lon-capa\@lon-capa.org.  you must contact loncapa\@loncapa.org.
   
 1) PRODUCTION - you want to eventually connect this machine to the  1) PRODUCTION - you want to eventually connect this machine to the
                 LON-CAPA content sharing network. This setting is for                  LON-CAPA content sharing network. This setting is for
                 schools, colleges, and universities, that currently                  schools, colleges, and universities, that currently
                 are running - or in the future will run - courses                  are running - or in the future will run - courses.
 2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and  2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and
                  not be connected to other LON-CAPA machines for now                   not be connected to other LON-CAPA machines for now.
 3) DEVELOPMENT - you want to do software (not content!) development with  3) DEVELOPMENT - you want to do software (not content!) development with
                  this workstation and eventually link it with the                   this workstation and eventually link it with the
                  workstations of other LON-CAPA software developers.                   workstations of other LON-CAPA software developers.
Line 81  END Line 84  END
   
 # get input  # get input
 # if valid then process, otherwise loop  # if valid then process, otherwise loop
 $flag=0;  my $flag=0;
 while (!$flag) {  while (!$flag) {
   print "ENTER 1, 2, 3, or 4:\n";    print "ENTER 1, 2, 3, or 4:\n";
   my $choice=&lt;&gt;;    my $choice=&lt;&gt;;
Line 126  my $domainTabExtras; Line 129  my $domainTabExtras;
 my $primaryLibServer;  my $primaryLibServer;
 my $protocol;  my $protocol;
 my $intdom;  my $intdom;
   my $desiredhostname;
 my @libservers = ();  my @libservers = ();
 unless (-e "<TARGET />") {  unless (-e "<TARGET />") {
   print(&lt;&lt;END);    print(&lt;&lt;END);
            WELCOME TO LON-CAPA!             WELCOME TO LON-CAPA!
   
 If you have questions, please visit http://install.lon-capa.org  If you have questions, please visit http://install.loncapa.org
 or contact helpdesk\@lon-capa.org.  or contact helpdesk\@loncapa.org.
   
 ===============================================================================  ===============================================================================
 The following 4 values are needed to configure LON-CAPA:  The following 8 values are needed to configure LON-CAPA:
 * Machine Role  * Machine Role
 * LON-CAPA Domain Name  * LON-CAPA Domain Name
 * LON-CAPA Machine ID Name, and  * LON-CAPA Machine ID Name
 * Server Administration E-mail Address.  * Server Administration E-mail Address
   * LON-CAPA Domain's Primary Library Server Machine ID
   * Web Server Protocol
   * Internet Domain Name of Your Institution
   * Hostname
 ===============================================================================  ===============================================================================
   
 In addition, a Support E-mail Address can also be included. If  In addition, a Support E-mail Address can also be included. If
Line 157  close(OUT); Line 165  close(OUT);
 **** Machine Role ****  **** Machine Role ****
 Library server (recommended if first-time installation of LON-CAPA):  Library server (recommended if first-time installation of LON-CAPA):
    Servers that are repositories of authoritative educational resources.     Servers that are repositories of authoritative educational resources.
    These servers also provide the construction space by which instructors     These servers also provide the authoring spaces in which content
    assemble their classroom online material.     creators (e.g., faculty instructors) create their learning content.
 Access server:  Access server:
    Servers that load-balance high-traffic delivery of educational resources     Servers that load-balance high-traffic delivery of educational resources
    over the world-wide web.     over the world-wide web.
Line 203  if ($hostname=~/([^\.]*)\.([^\.]*)$/) { Line 211  if ($hostname=~/([^\.]*)\.([^\.]*)$/) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
 **** Domain ****  **** Domain ****
 [This does NOT need to correspond to internet address domains.  [This does NOT need to correspond to an internet address domain.
  Please make this name short AND descriptive of your organization.   Please make this name short AND descriptive of your organization.
  Domain names are close to impossible to change later!!!   Domain names are close to impossible to change later!!!
  Good examples might be "msu" or "bionet" or "vermontcc".   Good examples might be "msu" or "bionet" or "vermontcc".
  Bad examples are "physics" (too general)   Bad examples are "physics" (too general)
    or "michiganstateuniversity" (too long)     or "michiganstateuniversity" (too long)
    or "msuedu" (internet domain, just make it "msu")     or "msuedu" (just make it "msu", or else make it msu.edu)
    or "msuphysics" (only if there is a good reason to limit to department     or "msuphysics" (only if there is a good reason to limit to department
                     - we don't know of one)                      - we don't know of one)
    or "mydomain" (what is that?)     or "mydomain" (what is that?)
Line 217  if ($hostname=~/([^\.]*)\.([^\.]*)$/) { Line 225  if ($hostname=~/([^\.]*)\.([^\.]*)$/) {
  have to actually work together with your colleagues. You can still run   have to actually work together with your colleagues. You can still run
  multiple library servers within the same domain.   multiple library servers within the same domain.
  If this domain is eventually going to be part of the main production   If this domain is eventually going to be part of the main production
  cluster, you MUST contact the LON-CAPA group at MSU (loncapa@loncapa.org)   cluster, you MUST contact the LON-CAPA group at MSU (loncapa\@loncapa.org)
  to have a domain name assigned, and then use it exactly as given. This is   to have a domain name assigned, and then use it exactly as given. This is
  also true for test installs that might eventually turn into production setups.   also true for test installs that might eventually turn into production setups.
  Stop now if you didn't do so.]   The short domain name needs to be unique, if your aim is to join a cluster 
    containing existing domains. Stop now if you have not yet contacted the 
    MSU LON-CAPA group.] 
 END  END
   
 # get domain name  # get domain name
Line 275  END Line 285  END
   }    }
 }  }
   
   
 # get domain description  # get domain description
 # accept if valid, if not valid, tell user and repeat  # accept if valid, if not valid, tell user and repeat
 $flag=0;  $flag=0;
Line 368  if ($lonRole eq 'library') { Line 377  if ($lonRole eq 'library') {
         $primaryLibServer = $libservers[0];          $primaryLibServer = $libservers[0];
     }      }
 }  }
   
   $flag=0;
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 **** Domain's Primary Library Server ID ****  **** Domain's Primary Library Server ID ****
Line 375  This should be the LON-CAPA machine ID o Line 386  This should be the LON-CAPA machine ID o
 domain.  If you only have a single library server in your domain, then  domain.  If you only have a single library server in your domain, then
 the Primary Library server ID will be the machine ID of that server.   the Primary Library server ID will be the machine ID of that server. 
 This server will be where domain data which are not associated with any  This server will be where domain data which are not associated with any
 specific home library server will be stored (e.g., e-mail broadcast by  specific home library server will be stored (e.g., configurations that
 administrators to users in the domain).  apply to all nodes in the domain).
 END  END
     if (defined($primaryLibServer)) {      if (defined($primaryLibServer)) {
         print(&lt;&lt;END);          print(&lt;&lt;END);
Line 476  END Line 487  END
   }    }
 }  }
   
   # get protocol
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
 ****  Web Server Protocol ****  ****  Web Server Protocol ****
 If you plan to run the Apache server with SSL enabled,   If you plan to run the Apache server with SSL enabled, 
 the protocol should be: https; otherwise it should be http.  the protocol should be: https; otherwise it should be http.
 ENTER WEB SERVER PROTOCOL:  ENTER WEB SERVER PROTOCOL [http]:
 END  END
   
   my $choice=&lt;&gt;;    my $choice=&lt;&gt;;
Line 493  END Line 507  END
     close(OUT);      close(OUT);
     $protocol=$choice;      $protocol=$choice;
     $flag=1;      $flag=1;
   }    } elsif ($choice eq '') {
   else {      open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'protocol'."\t".'http'."\n");
       close(OUT);
       $protocol = 'http';
       $flag = 1;
     } else {
     print "Invalid input (only http or https allowed).\n";      print "Invalid input (only http or https allowed).\n";
   }    }
 }  }
   
   # get internet domain
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
Line 506  while (!$flag) { Line 528  while (!$flag) {
   
 The internet domain name used for servers at your institution   The internet domain name used for servers at your institution 
 should be provided.  This will be similar to: ustate.edu or  should be provided.  This will be similar to: ustate.edu or
 topcollege.ac.uk or my.hostingcompany.com, i.e., the part of  topcollege.ac.uk or myhostingcompany.com, i.e., the part of
 a server hostname which indicates to which organization the   a server hostname which indicates to which organization the 
 server belongs.  server belongs.
   
Line 517  END Line 539  END
   chomp($choice);    chomp($choice);
   if ($choice =~/[^.]+\.[^.]+/) {    if ($choice =~/[^.]+\.[^.]+/) {
     open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');      open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
     print(OUT 'internet domain'."\t".$intdom."\n");      print(OUT 'internet domain'."\t".$choice."\n");
     close(OUT);      close(OUT);
     $intdom=$choice;      $intdom=$choice;
     $flag=1;      $flag=1;
Line 527  END Line 549  END
   }    }
 }  }
   
   # get hostname
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
   my $posshostname;
   if (($hostname =~ /^[A-Za-z0-9\-]+$/) && ($intdom ne '')) {
       $posshostname = $hostname.'.'.$intdom;
   } 
   if (($hostname =~ /^[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/) &&
       ($hostname =~ /^[A-Za-z0-9.\-]+$/)) {
       $posshostname = $hostname;
   }
   while (!$flag) {
     print(&lt;&lt;END);
   
   ****** Hostname of the server/VM *****
   
   The hostname of the server/VM is required. This will be similar to:
   somename.ustate.edu or somename.department.ustate.edu, and would be 
   the web address which users would point their web browsers at to
   access the server.
   
   END
   
   if ($posshostname) {
       print "ENTER HOSTNAME OF SERVER [$posshostname]:\n";
   } else {
       print "ENTER HOSTNAME OF SERVER:\n";
   }
   
     my $choice=&lt;&gt;;
     chomp($choice);
     if (($choice =~ /^[A-Za-z0-9\-]+\.[A-Za-z0-9\-]+/) &&
         ($choice =~ /^[A-Za-z0-9.\-]+$/)) {
       open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'hostname'."\t".$choice."\n");
       close(OUT);
       $desiredhostname=$choice;
       $flag=1;
     } elsif (($choice eq '') && ($posshostname ne '')) {
       open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'hostname'."\t$posshostname\n");
       close(OUT);
       $desiredhostname = $posshostname;
       $flag = 1;
     } else {
       print "Invalid input (only letters, numbers, - and . allowed, with at least one .).\n";
     }
   }
   
 # update loncapa.conf  # update loncapa.conf
 my $confdir = '/etc/httpd/conf/';  my $confdir = '/etc/httpd/conf/';
 if ('<DIST />' eq 'sles10' || '<DIST />' eq 'sles11' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3' || '<DIST />' eq 'suse11.1' || '<DIST />' eq 'suse11.2' || '<DIST />' eq 'suse11.3' || '<DIST />' eq 'debian5' || '<DIST />' eq 'ubuntu6' || '<DIST />' eq 'ubuntu8') {  if ('<DIST />' eq 'sles10' || '<DIST />' eq 'sles11' || '<DIST />' eq 'sles12' || '<DIST />' eq 'sles15' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3' || '<DIST />' eq 'suse11.1' || '<DIST />' eq 'suse11.2' || '<DIST />' eq 'suse11.3' || '<DIST />' eq 'suse11.4' || '<DIST />' eq 'suse12.1' || '<DIST />' eq 'suse12.2' || '<DIST />' eq 'suse12.3' || '<DIST />' eq 'suse13.1' || '<DIST />' eq 'suse13.2' || '<DIST />' eq 'debian5' || '<DIST />' eq 'debian6' || '<DIST />' eq 'ubuntu6' || '<DIST />' eq 'ubuntu8' || '<DIST />' eq 'ubuntu10' || '<DIST />' eq 'ubuntu12' || '<DIST />' eq 'ubuntu14' || '<DIST />' eq 'ubuntu16' || '<DIST />' eq 'ubuntu18' || '<DIST />' eq 'ubuntu20') {
      $confdir = '/etc/apache2/';       $confdir = '/etc/apache2/';
 }     }   
 my $filename='loncapa.conf';  my $filename='loncapa.conf';
Line 563  my %perlvar; Line 633  my %perlvar;
     unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {      unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
        my $lonReceipt='';         my $lonReceipt='';
        srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);         srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
        my @alnum=(0..9,a..z);         my @alnum=(0..9,"a".."z");
        foreach my $i (1..20) {         foreach my $i (1..20) {
  $lonReceipt.=$alnum[int(rand(36))];   $lonReceipt.=$alnum[int(rand(36))];
        }         }
Line 587  END Line 657  END
 </file>  </file>
 <file>  <file>
 <target dist='default'>/etc/httpd/conf/</target>  <target dist='default'>/etc/httpd/conf/</target>
 <target dist='sles10 sles11 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 suse11.3 debian5 ubuntu6 ubuntu8'>/etc/apache2/</target>  <target dist='sles10 sles11 sles12 sles15 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 suse11.3 suse11.4 suse12.1 suse12.2 suse12.3 suse13.1 suse13.2 debian5 debian6 ubuntu6 ubuntu8 ubuntu10 ubuntu12 ubuntu14 ubuntu16 ubuntu18 ubuntu20'>/etc/apache2/</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 sub securesetting {  sub securesetting {
     my (%perlvar)=@_;      my (%perlvar)=@_;
Line 640  my ($securestatus,$securenum); Line 710  my ($securestatus,$securenum);
     unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {      unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
        my $lonReceipt='';         my $lonReceipt='';
        srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);         srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
        my @alnum=(0..9,a..z);         my @alnum=(0..9,"a".."z");
        foreach my $i (1..20) {         foreach my $i (1..20) {
  $lonReceipt.=$alnum[int(rand(36))];   $lonReceipt.=$alnum[int(rand(36))];
        }         }
Line 690  my %perlvarstatic; Line 760  my %perlvarstatic;
  }   }
     }      }
   
     if (!$protocol) {      if ((!$protocol) || (!$desiredhostname)) {
         foreach my $file (@hosts_files) {          foreach my $file (@hosts_files) {
             open(IN,'&lt;'.$file);              open(IN,'&lt;'.$file);
             while(my $line = &lt;IN&gt;) {              while(my $line = &lt;IN&gt;) {
                 if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:[^:]+\:(https?)/) {                  if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:([^:]+)\:(https?)/) {
                     $protocol = $1;                      if (!$desiredhostname) {
                     chomp($protocol);                          $desiredhostname = $1;
                       }
                       if (!$protocol) { 
                           $protocol = $2;
                           chomp($protocol);
                       }
                     last;                      last;
                 }                  }
             }              }
Line 720  my %perlvarstatic; Line 795  my %perlvarstatic;
         }          }
     }      }
   
     while(!$primaryLibServ && (@hosts_file || @domain_files)) {      while(!$primaryLibServer && (@hosts_files || @domain_files)) {
  my $file = shift(@domain_files);   my $file = shift(@domain_files);
         open(IN,'&lt;'.$file);          open(IN,'&lt;'.$file);
         while(my $line = &lt;IN&gt;) {          while(my $line = &lt;IN&gt;) {
Line 747  my %perlvarstatic; Line 822  my %perlvarstatic;
     }      }
         
 # implement editing logic below, interactively  # implement editing logic below, interactively
 # update loncapa.conf until 14 is entered  # update loncapa.conf until 15 is entered
   
 $flag=0;  my $flag=0;
   
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
Line 764  This is now the current configuration of Line 839  This is now the current configuration of
  6) Support E-mail Address: $perlvar{'lonSupportEMail'}   6) Support E-mail Address: $perlvar{'lonSupportEMail'}
  7) Web Server Protocol (http or https): $protocol    7) Web Server Protocol (http or https): $protocol 
  8) Internet Domain Name: $intdom    8) Internet Domain Name: $intdom 
  9) Role: $perlvar{'lonRole'}   9) Hostname: $desiredhostname
 10) Cache Expiration Time: $perlvar{'lonExpire'}  10) Role: $perlvar{'lonRole'}
 11) Server Load: $perlvar{'lonLoadLim'}  11) Cache Expiration Time: $perlvar{'lonExpire'}
 12) User Load: $perlvar{'lonUserLoadLim'}  12) Server Load: $perlvar{'lonLoadLim'}
 13) Allow only secure connections: $securestatus   13) User Load: $perlvar{'lonUserLoadLim'}
 14) Everything is correct up above  14) Allow only secure connections: $securestatus 
   15) Everything is correct up above
 END  END
   
 my @error;  my @error;
 foreach my $v ($perlvar{'lonDefDomain'},$perlvar{'lonHostID'}) {  foreach my $v ($perlvar{'lonDefDomain'},$perlvar{'lonHostID'}) {
    if (length($v)>35) { $error.="\nName $v too long"; }     if (length($v)>35) { push(@error,"Name $v too long"); }
    if (length($v)<2) { $error.="\nName $v too short"; }     if (length($v)<2) { push(@error,"Name $v too short"); }
    if ($v=~/capa/i) {     if ($v=~/capa/i) {
  if ($v!~/^oucapa\d+$/ &&    if ($v!~/^oucapa\d+$/ && 
     ($v!~/^capa\d+$/ && $perlvar{'lonDefDomain'} eq 'uwsp')) {      ($v!~/^capa\d+$/ && $perlvar{'lonDefDomain'} eq 'uwsp')) {
Line 806  unless (($protocol eq 'http') || ($proto Line 882  unless (($protocol eq 'http') || ($proto
   
 if (!defined($intdom)) {   if (!defined($intdom)) { 
    push(@error,"No internet domain name designated. Enter something like ustate.edu");      push(@error,"No internet domain name designated. Enter something like ustate.edu"); 
 } elsif ($intdom !~ /^[^.]+\.\w{2,6}$/) {  } elsif ($intdom !~ /[^.]+\.\w{2,6}$/) {
    push(@error,"Invalid Internet domain name (must be at least two levels separated by .  - e.g., ustate.edu");     push(@error,"Invalid Internet domain name (must be at least two levels separated by .  - e.g., ustate.edu");
 }  }
   
Line 835  if (!defined($primaryLibServer)) { Line 911  if (!defined($primaryLibServer)) {
   
 if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; }  if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; }
   print(&lt;&lt;END);    print(&lt;&lt;END);
 ENTER A CHOICE OF 1-13 TO CHANGE, otherwise ENTER 14:  ENTER A CHOICE OF 1-14 TO CHANGE, otherwise ENTER 15:
 END  END
 my $choice=&lt;&gt;;  my $choice=&lt;&gt;;
 chomp($choice);  chomp($choice);
Line 927  END Line 1003  END
   }    }
   elsif ($choice==9) {    elsif ($choice==9) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 9) Role: $perlvar{'lonRole'}  9) Hostname of Server/VM
   ENTER NEW VALUE:
   
   END
       my $choice2=&lt;&gt;;
       chomp($choice2);
       $desiredhostname=$choice2;
     }
   
     elsif ($choice==10) {
     print(&lt;&lt;END);
   10) Role: $perlvar{'lonRole'}
 ENTER NEW VALUE (this should be either 'access' or 'library'   ENTER NEW VALUE (this should be either 'access' or 'library' 
                  if in doubt select 'library'):                   if in doubt select 'library'):
 END  END
Line 935  END Line 1022  END
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonRole'}=$choice2;      $perlvar{'lonRole'}=$choice2;
   }    }
   elsif ($choice==10) {    elsif ($choice==11) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 10) Cache Expiration Time: $perlvar{'lonExpire'}  11) Cache Expiration Time: $perlvar{'lonExpire'}
 ENTER NEW VALUE (in seconds, 86400 is a reasonable value):  ENTER NEW VALUE (in seconds, 86400 is a reasonable value):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonExpire'}=$choice2;      $perlvar{'lonExpire'}=$choice2;
   }    }
   elsif ($choice==11) {    elsif ($choice==12) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 11) Server Load: $perlvar{'lonLoadLim'}  12) Server Load: $perlvar{'lonLoadLim'}
 ENTER NEW VALUE:  ENTER NEW VALUE:
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonLoadLim'}=$choice2;      $perlvar{'lonLoadLim'}=$choice2;
   }    }
   elsif ($choice==12) {    elsif ($choice==13) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 12) User Load: $perlvar{'lonUserLoadLim'}  13) User Load: $perlvar{'lonUserLoadLim'}
 Numer of users that can login before machine is 'overloaded'  Numer of users that can login before machine is 'overloaded'
 ENTER NEW VALUE (integer value, 0 means there is no limit):  ENTER NEW VALUE (integer value, 0 means there is no limit):
 END  END
Line 963  END Line 1050  END
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonUserLoadLim'}=$choice2;      $perlvar{'lonUserLoadLim'}=$choice2;
   }    }
   elsif ($choice==13) {    elsif ($choice==14) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 13) Allow only secure connections: $securestatus   14) Allow only secure connections: $securestatus 
 The Lon-CAPA communication daemons lonc and lond can be configured to  The Lon-CAPA communication daemons lonc and lond can be configured to
 allow only secure connections by default.  allow only secure connections by default.
   
Line 977  POSSIBLE CHOICES: Line 1064  POSSIBLE CHOICES:
 3) allow insecure connections to this machine but only allow connections  3) allow insecure connections to this machine but only allow connections
     to machines that support secure connections      to machines that support secure connections
 4) allow insecure connections  4) allow insecure connections
 ENTER NEW VALUE (currenly $securenum):  ENTER NEW VALUE (currently $securenum):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
Line 992  END Line 1079  END
     }      }
     ($securestatus,$securenum)=&securesetting(%perlvar);      ($securestatus,$securenum)=&securesetting(%perlvar);
   }    }
   elsif (($choice==14) && (!$error)) {    elsif (($choice==15) && (!@error)) {
     $flag=1;      $flag=1;
   }    }
   else {    else {
     print "Invalid input.\n";      print "Invalid input.\n";
   }    }
 }  }
   
     open(OUT,"&gt;$confdir$filename") or      open(OUT,"&gt;$confdir$filename") or
       die("Cannot output to $confdir$filename\n");        die("Cannot output to $confdir$filename\n");
     foreach my $key (keys %perlvar) {      foreach my $key (keys %perlvar) {
Line 1018  END Line 1106  END
 <target dist='default'>loncom/hosts.tab</target>  <target dist='default'>loncom/hosts.tab</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 unless (-l "<TARGET />") {  unless (-l "<TARGET />") {
   my $hostname=`hostname -f`;chomp($hostname);    if ($desiredhostname eq '') { 
   $date=`date -I`; chomp($date);        my $hostname=`hostname -f`;chomp($hostname);
   $lonHostID=$perlvar{'lonHostID'};        $desiredhostname = $hostname;
     }
     my $date=`date -I`; chomp($date);
     my $lonHostID=$perlvar{'lonHostID'};
   $lonHostID=~s/[^\w\-.]//g;    $lonHostID=~s/[^\w\-.]//g;
   $lineexistflag=0;    my $lineexistflag=0;
   $hostidexistflag=0;    my $hostidexistflag=0;
   $line2insert=&lt;&lt;END;    my $line2insert=&lt;&lt;END;
 $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$protocol:$intdom  $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$desiredhostname:$protocol:$intdom
 END  END
   if (!$domainTabExtras) {    if (!$domainTabExtras) {
  $domainTabExtras=':::::';   $domainTabExtras=':::::';
   }    }
   $domaininsert="$perlvar{'lonDefDomain'}:$domainDescription:$domainTabExtras:$primaryLibServer\n";    my $domaininsert="$perlvar{'lonDefDomain'}:$domainDescription:$domainTabExtras:$primaryLibServer\n";
   if ($lonCluster eq 'standalone') {    if ($lonCluster eq 'standalone') {
     open(OUT,'&gt;../'.$lonCluster.'_hosts.tab') or      open(OUT,'&gt;../'.$lonCluster.'_hosts.tab') or
       die('file generation error');        die('file generation error');
       print(OUT $line2insert);        print(OUT $line2insert);
       print OUT ("^$hostname:$protocol\n");        print OUT ("^$desiredhostname:$protocol\n");
     close(OUT);      close(OUT);
     open(OUT,'&gt;../'.$lonCluster.'_dns_hosts.tab') or      open(OUT,'&gt;../'.$lonCluster.'_dns_hosts.tab') or
       die('file generation error');        die('file generation error');
Line 1109  END Line 1200  END
     }      }
   }    }
   $lineexistflag=0;    $lineexistflag=0;
     my $domainexistflag=0;
   if ($flag==1) {    if ($flag==1) {
     `rm -f ../domain.tab`;      `rm -f ../domain.tab`;
     `rm -f ../dns_domain.tab`;      `rm -f ../dns_domain.tab`;
Line 1138  END Line 1230  END
        close(OUT);         close(OUT);
       `ln -s new_${lonCluster}_domain.tab ../domain.tab`;        `ln -s new_${lonCluster}_domain.tab ../domain.tab`;
       # email appropriate message        # email appropriate message
       `echo "REPLACEdom:$lonCluster:$lonHostID:$date:$domaninsert" | mail -s "REPLACEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;        `echo "REPLACEdom:$lonCluster:$lonHostID:$date:$domaininsert" | mail -s "REPLACEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
     }      }
     elsif ($domainexistflag and $lineexistflag) {      elsif ($domainexistflag and $lineexistflag) {
       `grep -v "$perlvar{'lonDefDomain'}:" ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;        `grep -v "$perlvar{'lonDefDomain'}:" ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;

Removed from v.1.67  
changed lines
  Added in v.1.84.2.3


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