Diff for /loncom/lond between versions 1.52 and 1.56

version 1.52, 2001/09/30 18:32:31 version 1.56, 2001/11/16 16:26:01
Line 16 Line 16
 # 03/24 Gerd Kortemeyer  # 03/24 Gerd Kortemeyer
 # 04/02 Scott Harrison  # 04/02 Scott Harrison
 # 05/11,05/28,08/30 Gerd Kortemeyer  # 05/11,05/28,08/30 Gerd Kortemeyer
 # 9/30 Scott Harrison  # 9/30,10/22,11/13,11/15,11/16 Scott Harrison
 #  #
   # $Id$
   ###
   
 # based on "Perl Cookbook" ISBN 1-56592-243-3  # based on "Perl Cookbook" ISBN 1-56592-243-3
 # preforker - server who forks first  # preforker - server who forks first
 # runs as a daemon  # runs as a daemon
Line 453  sub make_new_child { Line 456  sub make_new_child {
                        $loadavg =~ s/\s.*//g;                         $loadavg =~ s/\s.*//g;
                        my $loadpercent=100*$loadavg/$perlvar{'lonLoadLim'};                         my $loadpercent=100*$loadavg/$perlvar{'lonLoadLim'};
        print $client "$loadpercent\n";         print $client "$loadpercent\n";
   # ----------------------------------------------------------------- currentauth
      } elsif ($userinput =~ /^currentauth/) {
        if ($wasenc==1) {
                          my ($cmd,$udom,$uname)=split(/:/,$userinput);
                          my $proname=propath($udom,$uname);
                          my $passfilename="$proname/passwd";
                          if (-e $passfilename) {
      my $pf = IO::File->new($passfilename);
      my $realpasswd=<$pf>;
      chomp($realpasswd);
      my ($howpwd,$contentpwd)=split(/:/,$realpasswd);
      my $availablecontent='';
      if ($howpwd eq 'krb4') {
          $availablecontent=$contentpwd;
      }
      print $client "$howpwd:$availablecontent\n";
          } else {
                             print $client "unknown_user\n";
                          }
        } else {
          print $client "refused\n";
        }
 # ------------------------------------------------------------------------ auth  # ------------------------------------------------------------------------ auth
                    } elsif ($userinput =~ /^auth/) {                     } elsif ($userinput =~ /^auth/) {
      if ($wasenc==1) {       if ($wasenc==1) {
Line 542  sub make_new_child { Line 567  sub make_new_child {
      }       }
 # -------------------------------------------------------------------- makeuser  # -------------------------------------------------------------------- makeuser
                    } elsif ($userinput =~ /^makeuser/) {                     } elsif ($userinput =~ /^makeuser/) {
                   my $oldumask=umask(0077);
      if ($wasenc==1) {       if ($wasenc==1) {
                        my                          my 
                        ($cmd,$udom,$uname,$umode,$npass)=split(/:/,$userinput);                         ($cmd,$udom,$uname,$umode,$npass)=split(/:/,$userinput);
Line 587  sub make_new_child { Line 613  sub make_new_child {
             print $pf "localauth:$npass\n";              print $pf "localauth:$npass\n";
        }         }
        print $client "ok\n";         print $client "ok\n";
                              } elsif ($umode eq 'none') {       } elsif ($umode eq 'unix') {
          {
    my $execpath="$perlvar{'lonDaemons'}/".
                 "lcuseradd";
    {
        my $se = IO::File->new("|$execpath");
        print $se "$uname\n";
        print $se "$npass\n";
        print $se "$npass\n";
    }
                                    my $pf = IO::File->new(">$passfilename");
               print $pf "unix:\n"; 
          }
          print $client "ok\n";
        } elsif ($umode eq 'none') {
                                {                                  { 
                                  my $pf = IO::File->new(">$passfilename");                                   my $pf = IO::File->new(">$passfilename");
             print $pf "none:\n";               print $pf "none:\n"; 
Line 602  sub make_new_child { Line 642  sub make_new_child {
                        }                         }
      } else {       } else {
        print $client "refused\n";         print $client "refused\n";
        }
        umask($oldumask);
   # -------------------------------------------------------------- changeuserauth
                      } elsif ($userinput =~ /^changeuserauth/) {
        if ($wasenc==1) {
                          my 
                          ($cmd,$udom,$uname,$umode,$npass)=split(/:/,$userinput);
                          chomp($npass);
                          $npass=&unescape($npass);
                          my $proname=propath($udom,$uname);
                          my $passfilename="$proname/passwd";
          if ($udom ne $perlvar{'lonDefDomain'}) {
                              print $client "not_right_domain\n";
                          } else {
      if ($umode eq 'krb4') {
                                  { 
      my $pf = IO::File->new(">$passfilename");
      print $pf "krb4:$npass\n"; 
                                  }             
                                  print $client "ok\n";
      } elsif ($umode eq 'internal') {
          my $salt=time;
                                  $salt=substr($salt,6,2);
          my $ncpass=crypt($npass,$salt);
                                  { 
      my $pf = IO::File->new(">$passfilename");
      print $pf "internal:$ncpass\n"; 
                                  }
                                  print $client "ok\n";
      } elsif ($umode eq 'localauth') {
          {
      my $pf = IO::File->new(">$passfilename");
      print $pf "localauth:$npass\n";
          }
          print $client "ok\n";
      } elsif ($umode eq 'unix') {
          {
      my $execpath="$perlvar{'lonDaemons'}/".
          "lcuseradd";
      {
          my $se = IO::File->new("|$execpath");
          print $se "$uname\n";
          print $se "$npass\n";
          print $se "$npass\n";
      }
      my $pf = IO::File->new(">$passfilename");
      print $pf "unix:\n"; 
          }
          print $client "ok\n";
      } elsif ($umode eq 'none') {
                                  { 
      my $pf = IO::File->new(">$passfilename");
      print $pf "none:\n"; 
                                  }             
                                  print $client "ok\n";
      } else {
                                  print $client "auth_mode_error\n";
      }  
                          }
        } else {
          print $client "refused\n";
      }       }
 # ------------------------------------------------------------------------ home  # ------------------------------------------------------------------------ home
                    } elsif ($userinput =~ /^home/) {                     } elsif ($userinput =~ /^home/) {

Removed from v.1.52  
changed lines
  Added in v.1.56


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