X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FCommon.pm;h=63190b14295aadc1d10df6d19d0480cd5e672eec;hp=559d6339f38b206498902f801ffa721d777c6593;hb=060aaacf0d15a03ed7287cf81169f630a1a1f95b;hpb=b413b07902fc271184d81c02c542c0301ea36515 diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index 559d633..63190b1 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -19,7 +19,7 @@ use DBD::Pg; use Image::Magick; use POSIX; use Digest::MD5; -use Digest::SHA1; +use Digest::SHA; use Digest::HMAC_SHA1; use MIME::Base64; use MIME::Types; @@ -39,7 +39,7 @@ BEGIN { require Sesse::pr0n::Config_local; }; - $VERSION = "v2.72"; + $VERSION = "v2.80"; @ISA = qw(Exporter); @EXPORT = qw(&error &dberror); %EXPORT_TAGS = qw(); @@ -308,6 +308,10 @@ sub update_image_info { # Tags my @tags = $exiftool->GetValue('Keywords', 'ValueConv'); + if (scalar @tags == 0) { + # This is XMP-dc:Subject, an RDF bag of tags. + @tags = $exiftool->GetValue('Subject', 'ValueConv'); + } $dbh->do('DELETE FROM tags WHERE image=?', undef, $id) or die "Couldn't delete old tag information in SQL: $!"; @@ -363,11 +367,11 @@ sub output_401 { # proxies etc. are being used), and we use HMAC instead of simple # hashing simply because that's a better signing method. # - # NOTE: For some weird reason, Digest::HMAC_SHA1 doesn't like taking + # NOTE: For some weird reason, Digest::HMAC_SHA doesn't like taking # the output from time directly (it gives a different response), so we # forcefully stringify the argument. my $ts = time; - my $nonce = Digest::HMAC_SHA1->hmac_sha1_hex($ts . "", $Sesse::pr0n::Config::db_password); + my $nonce = Digest::HMAC_SHA->hmac_sha1_hex($ts . "", $Sesse::pr0n::Config::db_password); my $stale_nonce_text = ""; $stale_nonce_text = ", stale=\"true\"" if ($options{'StaleNonce'} // 0); @@ -389,7 +393,7 @@ sub check_basic_auth { my $ref = $dbh->selectrow_hashref('SELECT sha1password,digest_ha1_hex FROM users WHERE username=? AND vhost=?', undef, $user, $r->get_server_name); - if (!defined($ref) || $ref->{'sha1password'} ne Digest::SHA1::sha1_base64($pass)) { + if (!defined($ref) || $ref->{'sha1password'} ne Digest::SHA::sha1_base64($pass)) { $r->content_type('text/plain; charset=utf-8'); $r->log->warn("Authentication failed for $user/$takenby"); output_401($r);