use Data::Structure::Util qw(unbless);
use Time::HiRes qw(gettimeofday tv_interval);
use IO::File;
-use JSON;
+use DXJSON;
use strict;
$filename = undef;
$lastoperinterval = 60*24*60*60;
$lasttime = 0;
-$lrusize = 10000;
+$lrusize = 5000;
$tooold = 86400 * 365; # this marks an old user who hasn't given enough info to be useful
$v3 = 0;
our $maxconnlist = 3; # remember this many connection time (duration) [start, end] pairs
startt => '0,Start Time,cldatetime',
connlist => '1,Connections,parraydifft',
width => '0,Preferred Width',
+ rbnseeme => '0,RBN See Me',
);
#no strict;
{
my $mode = shift;
- $json = JSON->new->canonical(1);
+ $json = DXJSON->new->canonical(1);
my $fn = "users";
$filename = localdata("$fn.v3j");
unless (-e $filename || $mode == 2) {
# thaw the user
sub decode
{
- my $s = shift;
- my $ref;
- eval { $ref = $json->decode($s) };
- if ($ref && !$@) {
- return bless $ref, 'DXUser';
- } else {
- LogDbg('DXUser', "DXUser::json_decode: on '$s' $@");
- }
- return undef;
+ return $json->decode(shift, __PACKAGE__);
}
# freeze the user
sub encode
{
- my $ref = shift;
- unbless($ref);
- my $s;
-
- eval {$s = $json->encode($ref) };
- if ($s && !$@) {
- bless $ref, 'DXUser';
- return $s;
- } else {
- LogDbg('DXUser', "DXUser::json_encode $ref->{call}, $@");
- }
+ return $json->encode(shift);
}