--- loncom/lond 2006/02/09 20:48:40 1.318.2.3 +++ loncom/lond 2006/03/03 22:03:17 1.318.2.5 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.318.2.3 2006/02/09 20:48:40 albertel Exp $ +# $Id: lond,v 1.318.2.5 2006/03/03 22:03:17 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,7 @@ my $status=''; my $lastlog=''; my $lond_max_wait_time = 13; -my $VERSION='$Revision: 1.318.2.3 $'; #' stupid emacs +my $VERSION='$Revision: 1.318.2.5 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -2915,16 +2915,15 @@ sub dump_profile_database { while (my ($key,$value) = each(%$hashref)) { my ($v,$symb,$param) = split(/:/,$key); next if ($v eq 'version' || $symb eq 'keys'); - if (!defined($param)) { - foreach my $pair (split(/\&/,$value)) { - my ($param,$value)=split(/=/,$pair); - next if (exists($data{$symb}) && - exists($data{$symb}->{$param}) && - $data{$symb}->{'v.'.$param} > $v); - $data{$symb}->{$param}=$value; - $data{$symb}->{'v.'.$param}=$v; - } + # making old style store entries '$ver:$symb:$key = $value' + # look like new '$ver:compressed:$symb = "$key=$value"' + if ($symb eq 'compressed') { + $symb = $param; } else { + $value = $param.'='.$value; + } + foreach my $pair (split(/\&/,$value)) { + my ($param,$value)=split(/=/,$pair); next if (exists($data{$symb}) && exists($data{$symb}->{$param}) && $data{$symb}->{'v.'.$param} > $v); @@ -3082,7 +3081,7 @@ sub store_handler { my ($key)=split(/=/,$pair); $allkeys.=$key.':'; } - $hashref->{"$version:$rid"}=$what."\×tamp=$now"; + $hashref->{"$version:compressed:$rid"}=$what."\×tamp=$now"; $allkeys.='timestamp'; $hashref->{"$version:keys:$rid"}=$allkeys; if (&untie_user_hash($hashref)) { @@ -3148,9 +3147,8 @@ sub restore_handler { my @keys=split(/:/,$vkeys); my $key; $qresult.="$scope:keys=$vkeys&"; - if (exists($hashref->{"$scope:$rid"})) { - my $what=$hashref->{"$scope:$rid"}; - foreach my $pair (split(/\&/,$hashref->{"$scope:$rid"})) { + if (exists($hashref->{"$scope:compressed:$rid"})) { + foreach my $pair (split(/\&/,$hashref->{"$scope:compressed:$rid"})) { my ($key,$value)=split(/=/,$pair); $qresult.="$scope:".$pair."&"; }