Added /var/lib/onis to debian/dirs
[onis.git] / lib / Onis / Data / Persistent / Dbm.pm
index bc24550..2e1cac6 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN
 {
-       @AnyDBM_File::ISA = (qw(GDBM_File DB_File GDBM_File SDBM_File NDBM_File ODBM_File));
+       @AnyDBM_File::ISA = (qw(DB_File GDBM_File SDBM_File NDBM_File ODBM_File));
 }
 
 use Carp qw(carp confess);
@@ -28,13 +28,14 @@ Storage backend that uses DBM files for storing data permanently.
 
 =item B<dbm_directory>: I<E<lt>dirE<gt>>
 
-Directory in which the DBM-files are kept.
+Directory in which the DBM-files are kept. Defaults to the B<var>-directory in
+onis' main directory.. 
 
 =back
 
 =cut
 
-our $DBMDirectory = get_config ('dbm_directory') || 'var';
+our $DBMDirectory = get_config ('storage_dir') || 'var';
 $DBMDirectory =~ s#/$##g;
 
 if (!$DBMDirectory or !-d $DBMDirectory)
@@ -107,7 +108,6 @@ sub put
        my $obj    = shift;
        my $key    = shift;
        my @fields = @_;
-       my $db = $obj->{'data'};
 
        if ($obj->{'num_fields'} != scalar (@fields))
        {
@@ -172,9 +172,10 @@ sub keys
        my $val;
 
        no strict (qw(subs));
-       for ($db->seq ($key, $val, R_FIRST); $db->seq ($key, $val, R_NEXT) == 0;)
+       for (($key, $val) = $db->FIRSTKEY (); defined ($key) and defined ($val); ($key, $val) = $db->NEXTKEY ($key))
        {
                next if (defined ($obj->{'cache'}{$key}));
+
                $obj->{'cache'}{$key} = [split ($Alarm, $val)];
        }
 
@@ -215,14 +216,14 @@ sub del
        {
                if (defined ($obj->{'cache'}{$key}))
                {
-                       $db->del ($key);
+                       $db->DELETE ($key);
                        $obj->{'cache'}{$key} = undef;
                }
                # It's known that the key doesn't exist..
        }
        else
        {
-               $db->del ($key);
+               $db->DELETE ($key);
                $obj->{'cache'}{$key} = undef;
        }
 }
@@ -239,7 +240,7 @@ sub sync
 
                my $val = join ($Alarm, @{$obj->{'cache'}{$key}});
 
-               $db->put ($key, $val);
+               $db->STORE ($key, $val);
                delete ($obj->{'cache'}{$key});
        }