use strict;
use lib 'lib';
+use base 'CloudStore::MD5sum';
use CloudStore::API;
use autodie;
use Digest::MD5 qw(md5_base64);
use Data::Dump qw(dump);
use Carp qw(confess);
-use TokyoCabinet;
use WarnColor;
}
}
-sub md5sum {
- my ( $self, $data ) = @_;
-
- my $login = $data->{login} || confess "missing login in ",dump $data;
-
- return $self->{md5sum}->{$login} if exists $self->{md5sum}->{$login};
-
- my ( undef, undef, $uid, $gid, undef, undef, $email, $dir, $shell ) =
- getpwnam $login;
-
- my $md5_path = "$dir/.md5";
-
- my $db = TokyoCabinet::HDB->new();
- $db->open($md5_path, $db->OWRITER | $db->OCREAT)
- or die "can't open $md5_path: ",$db->errmsg( $db->ecode );
-
- warn "open $md5_path";
-
- $self->{md5sum}->{$login} = $db;
- return $db;
-}
-
sub init_pid_login {
my ( $self, $pid, $login ) = @_;
sub cleanup_pid {
my ( $self, $pid ) = @_;
- foreach my $login ( keys %{ $self->{md5sum} } ) {
- # FIXME only login's?
- $self->{md5sum}->{$login}->close;
- warn "close md5sum $login";
- }
- delete $self->{md5sum};
+
+ $self->md5sum_close;
delete $self->{pid}->{$pid};
warn "removed $pid";