Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1022 and 1.1023

version 1.1022, 2009/08/23 03:57:20 version 1.1023, 2009/08/24 20:08:40
Line 958  sub idput { Line 958  sub idput {
     }      }
 }  }
   
 # ------------------------------------------------ dump from domain db files  # ------------------------------dump from db file owned by domainconfig user
   
 sub dump_dom {  sub dump_dom {
     my ($namespace,$udom,$uhome,$regexp,$range)=@_;      my ($namespace,$udom,$regexp,$range)=@_;
     if (!$udom) {      if (!$udom) {
         $udom=$env{'user.domain'};          $udom=$env{'user.domain'};
         if (defined(&domain($udom,'primary'))) {  
             $uhome=&domain($udom,'primary');  
         } else {  
             undef($uhome);  
         }  
     } else {  
         if (!$uhome) {  
             if (defined(&domain($udom,'primary'))) {  
                 $uhome=&domain($udom,'primary');  
             }  
         }  
     }      }
     my %returnhash;      my %returnhash;
     if ($udom && $uhome && ($uhome ne 'no_host')) {      if ($udom) {
         if ($regexp) {          my $uname = &get_domainconfiguser($udom);
             $regexp=&escape($regexp);          %returnhash = &dump($namespace,$udom,$uname,$regexp,$range);
         } else {  
             $regexp='.';  
         }  
         my $rep=&reply("dumpdom:$udom:$namespace:$regexp:$range",$uhome);  
         my @pairs=split(/\&/,$rep);  
         foreach my $item (@pairs) {  
             my ($key,$value)=split(/=/,$item,2);  
             $key = &unescape($key);  
             next if ($key =~ /^error: 2 /);  
             $returnhash{$key}=&thaw_unescape($value);  
         }  
     }      }
     return %returnhash;      return %returnhash;
 }  }
   
 # ------------------------------------------- get items from domain db files     # ------------------------------------------ get items from domain db files   
   
 sub get_dom {  sub get_dom {
     my ($namespace,$storearr,$udom,$uhome)=@_;      my ($namespace,$storearr,$udom,$uhome)=@_;
Line 1069  sub put_dom { Line 1046  sub put_dom {
     }      }
 }  }
   
 # -------------------------------------- newput for items in domain db files  # --------------------- newput for items in db file owned by domainconfig user
   
 sub newput_dom {  sub newput_dom {
     my ($namespace,$storehash,$udom,$uhome) = @_;      my ($namespace,$storehash,$udom) = @_;
     my $result;      my $result;
     if (!$udom) {      if (!$udom) {
         $udom=$env{'user.domain'};          $udom=$env{'user.domain'};
         if (defined(&domain($udom,'primary'))) {  
             $uhome=&domain($udom,'primary');  
         } else {  
             undef($uhome);  
         }  
     } else {  
         if (!$uhome) {  
             if (defined(&domain($udom,'primary'))) {  
                 $uhome=&domain($udom,'primary');  
             }  
         }  
     }      }
     if ($udom && $uhome && ($uhome ne 'no_host')) {      if ($udom) {
         my $items='';          my $uname = &get_domainconfiguser($udom);
         if (ref($storehash) eq 'HASH') {          $result = &newput($namespace,$storehash,$udom,$uname);
             foreach my $key (keys(%$storehash)) {  
                 $items.=&escape($key).'='.&freeze_escape($$storehash{$key}).'&';  
             }  
             $items=~s/\&$//;  
             $result = &reply("newputdom:$udom:$namespace:$items",$uhome);  
         }  
     } else {  
         &logthis("put_dom failed - no homeserver and/or domain");  
     }      }
     return $result;      return $result;
 }  }
   
   # --------------------- delete for items in db file owned by domainconfig user
 sub del_dom {  sub del_dom {
     my ($namespace,$storearr,$udom,$uhome)=@_;      my ($namespace,$storearr,$udom)=@_;
     if (ref($storearr) eq 'ARRAY') {      if (ref($storearr) eq 'ARRAY') {
         my $items='';  
         foreach my $item (@$storearr) {  
             $items.=&escape($item).'&';  
         }  
         $items=~s/\&$//;  
         if (!$udom) {          if (!$udom) {
             $udom=$env{'user.domain'};              $udom=$env{'user.domain'};
             if (defined(&domain($udom,'primary'))) {  
                 $uhome=&domain($udom,'primary');  
             } else {  
                 undef($uhome);  
             }  
         } else {  
             if (!$uhome) {  
                 if (defined(&domain($udom,'primary'))) {  
                     $uhome=&domain($udom,'primary');  
                 }  
             }  
         }          }
         if ($udom && $uhome && ($uhome ne 'no_host')) {          if ($udom) {
             return &reply("deldom:$udom:$namespace:$items",$uhome);              my $uname = &get_domainconfiguser($udom); 
         } else {              return &del($namespace,$storearr,$udom,$uname);
             &logthis("del_dom failed - no homeserver and/or domain");  
         }          }
     }      }
 }  }
   
   # ----------------------------------construct domainconfig user for a domain 
   sub get_domainconfiguser {
       my ($udom) = @_;
       return $udom.'-domainconfig';
   }
   
 sub retrieve_inst_usertypes {  sub retrieve_inst_usertypes {
     my ($udom) = @_;      my ($udom) = @_;
     my (%returnhash,@order);      my (%returnhash,@order);

Removed from v.1.1022  
changed lines
  Added in v.1.1023


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