X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FCommon.pm;h=63190b14295aadc1d10df6d19d0480cd5e672eec;hp=a9ee2119db8751d3c97770f5cb6f7aa68f9864e0;hb=a8507a180fdcb9e5e78dd689d1be1fa08401441e;hpb=9b45ad1ecd9f1eace384f825a7dc6b2b7920af65 diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index a9ee211..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(); @@ -233,7 +233,7 @@ sub get_cache_location { sub ensure_disk_location_exists { my ($r, $id) = @_; - my $dir = POSIX::floor($id / 256); + my $dir = POSIX::floor($id / 256); my $img_dir = get_base($r) . "/images/$dir/"; if (! -d $img_dir) { @@ -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); @@ -1117,8 +1121,6 @@ sub purge_cache { } $regex .= "(\\?.*)?\$"; $r->headers_out->{'X-Pr0n-Purge'} = $regex; - - $r->log->info($r->headers_out->{'X-Pr0n-Purge'}); } # Find a list of all cache URLs for a given image, given what we have on disk.