version 1.282, 2005/04/12 00:19:59
|
version 1.284, 2005/06/03 18:23:19
|
Line 2360 sub put_user_profile_entry {
|
Line 2360 sub put_user_profile_entry {
|
} |
} |
®ister_handler("put", \&put_user_profile_entry, 0, 1, 0); |
®ister_handler("put", \&put_user_profile_entry, 0, 1, 0); |
|
|
|
# Put a piece of new data in hash, returns error if entry already exists |
|
# Parameters: |
|
# $cmd - The command that got us here. |
|
# $tail - Tail of the command (remaining parameters). |
|
# $client - File descriptor connected to client. |
|
# Returns |
|
# 0 - Requested to exit, caller should shut down. |
|
# 1 - Continue processing. |
|
# |
|
sub newput_user_profile_entry { |
|
my ($cmd, $tail, $client) = @_; |
|
|
|
my $userinput = "$cmd:$tail"; |
|
|
|
my ($udom,$uname,$namespace,$what) =split(/:/,$tail,4); |
|
if ($namespace eq 'roles') { |
|
&Failure( $client, "refused\n", $userinput); |
|
return 1; |
|
} |
|
|
|
chomp($what); |
|
|
|
my $hashref = &tie_user_hash($udom, $uname, $namespace, |
|
&GDBM_WRCREAT(),"N",$what); |
|
if(!$hashref) { |
|
&Failure( $client, "error: ".($!)." tie(GDBM) Failed ". |
|
"while attempting put\n", $userinput); |
|
return 1; |
|
} |
|
|
|
my @pairs=split(/\&/,$what); |
|
foreach my $pair (@pairs) { |
|
my ($key,$value)=split(/=/,$pair); |
|
if (exists($hashref->{$key})) { |
|
&Failure($client, "key_exists: ".$key."\n",$userinput); |
|
return 1; |
|
} |
|
} |
|
|
|
foreach my $pair (@pairs) { |
|
my ($key,$value)=split(/=/,$pair); |
|
$hashref->{$key}=$value; |
|
} |
|
|
|
if (untie(%$hashref)) { |
|
&Reply( $client, "ok\n", $userinput); |
|
} else { |
|
&Failure($client, "error: ".($!+0)." untie(GDBM) failed ". |
|
"while attempting put\n", |
|
$userinput); |
|
} |
|
return 1; |
|
} |
|
®ister_handler("newput", \&newput_user_profile_entry, 0, 1, 0); |
|
|
# |
# |
# Increment a profile entry in the user history file. |
# Increment a profile entry in the user history file. |
# The history contains keyword value pairs. In this case, |
# The history contains keyword value pairs. In this case, |
Line 2390 sub increment_user_value_handler {
|
Line 2445 sub increment_user_value_handler {
|
my @pairs=split(/\&/,$what); |
my @pairs=split(/\&/,$what); |
foreach my $pair (@pairs) { |
foreach my $pair (@pairs) { |
my ($key,$value)=split(/=/,$pair); |
my ($key,$value)=split(/=/,$pair); |
|
$value = &unescape($value); |
# We could check that we have a number... |
# We could check that we have a number... |
if (! defined($value) || $value eq '') { |
if (! defined($value) || $value eq '') { |
$value = 1; |
$value = 1; |
} |
} |
$hashref->{$key}+=$value; |
$hashref->{$key}+=$value; |
|
if ($namespace eq 'nohist_resourcetracker') { |
|
if ($hashref->{$key} < 0) { |
|
$hashref->{$key} = 0; |
|
} |
|
} |
} |
} |
if (untie(%$hashref)) { |
if (untie(%$hashref)) { |
&Reply( $client, "ok\n", $userinput); |
&Reply( $client, "ok\n", $userinput); |
Line 4480 sub Reply {
|
Line 4541 sub Reply {
|
Debug("Request was $request Reply was $reply"); |
Debug("Request was $request Reply was $reply"); |
|
|
$Transactions++; |
$Transactions++; |
|
|
|
|
} |
} |
|
|
|
|