]> git.sesse.net Git - pr0n/blobdiff - perl/Sesse/pr0n/Common.pm
Add a new 2304x1728 resolution (twice 1152x864), for fitting better into 30-inch...
[pr0n] / perl / Sesse / pr0n / Common.pm
index 559d6339f38b206498902f801ffa721d777c6593..63190b14295aadc1d10df6d19d0480cd5e672eec 100644 (file)
@@ -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);