Diff for /loncom/lond between versions 1.359 and 1.364

version 1.359, 2007/01/28 18:49:49 version 1.364, 2007/03/28 20:28:29
Line 1268  sub du_handler { Line 1268  sub du_handler {
  my $code=sub {    my $code=sub { 
     if ($_=~/\.\d+\./) { return;}       if ($_=~/\.\d+\./) { return;} 
     if ($_=~/\.meta$/) { return;}      if ($_=~/\.meta$/) { return;}
       if (-d $_)         { return;}
     $total_size+=(stat($_))[7];      $total_size+=(stat($_))[7];
  };   };
  chdir($ududir);   chdir($ududir);
Line 3599  sub get_domain_handler { Line 3600  sub get_domain_handler {
   
     return 1;      return 1;
 }  }
 &register_handler("getdom", \&get_id_handler, 0, 1, 0);  &register_handler("getdom", \&get_domain_handler, 0, 1, 0);
   
   
 #  #
Line 4630  sub student_photo_handler { Line 4631  sub student_photo_handler {
 }  }
 &register_handler("studentphoto", \&student_photo_handler, 0, 1, 0);  &register_handler("studentphoto", \&student_photo_handler, 0, 1, 0);
   
   sub inst_usertypes_handler {
       my ($cmd, $domain, $client) = @_;
       my $res;
       my $userinput = $cmd.":".$domain; # For logging purposes.
       my (%typeshash,@order);  
       if (&localenroll::inst_usertypes($domain,\%typeshash,\@order) eq 'ok') {
           if (keys(%typeshash) > 0) {
               foreach my $key (keys(%typeshash)) {
                   $res.=&escape($key).'='.&escape($typeshash{$key}).'&';
               }
           }
           $res=~s/\&$//;
           $res .= ':';
           if (@order > 0) {
               foreach my $item (@order) {
                   $res .= &escape($item).'&';
               }
           }
           $res=~s/\&$//;
       }
       &Reply($client, "$res\n", $userinput);
       return 1;
   }
   &register_handler("inst_usertypes", \&inst_usertypes_handler, 0, 1, 0);
   
 # mkpath makes all directories for a file, expects an absolute path with a  # mkpath makes all directories for a file, expects an absolute path with a
 # file or a trailing / if just a dir is passed  # file or a trailing / if just a dir is passed
 # returns 1 on success 0 on failure  # returns 1 on success 0 on failure
Line 5283  sub reconlonc { Line 5309  sub reconlonc {
     }      }
 }  }
   
 # -------------------------------------------------- Non-critical communication  sub create_connection {
       my ($hostname,$lonid) = @_;
       my $client=IO::Socket::UNIX->new(Peer    => $perlvar{'lonSockCreate'},
        Type    => SOCK_STREAM,
        Timeout => 10);
       return 0 if (!$client);
       print $client ("$hostname:$lonid\n");
       my $result = <$client>;
       chomp($result);
       return 1 if ($result eq 'done');
       return 0;
   }
   
   # -------------------------------------------------- Non-critical communication
   my $max_connection_retries = 10;
 sub subreply {  sub subreply {
     my ($cmd,$server)=@_;      my ($cmd,$server)=@_;
     my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server};      my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server};
     my $sclient=IO::Socket::UNIX->new(Peer    =>"$peerfile",      my $sclient;
                                       Type    => SOCK_STREAM,      for (my $retries = 0; $retries < $max_connection_retries; $retries++) {
                                       Timeout => 10)   $sclient=IO::Socket::UNIX->new(Peer    =>"$peerfile",
        or return "con_lost";         Type    => SOCK_STREAM,
          Timeout => 10);
    if($sclient) {
       last; # Connected!
    } else {
       &create_connection($hostname{$server},$server);
    }
           sleep(1); # Try again later if failed connection.
       }
     print $sclient "sethost:$server:$cmd\n";      print $sclient "sethost:$server:$cmd\n";
     my $answer=<$sclient>;      my $answer=<$sclient>;
     chomp($answer);      chomp($answer);

Removed from v.1.359  
changed lines
  Added in v.1.364


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