]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Slightly fancier debug code for PuSH hmac mismatches -- save the post to a temp file...
authorBrion Vibber <brion@pobox.com>
Mon, 20 Dec 2010 21:05:17 +0000 (13:05 -0800)
committerBrion Vibber <brion@pobox.com>
Mon, 20 Dec 2010 21:05:17 +0000 (13:05 -0800)
plugins/OStatus/classes/FeedSub.php

index b34d7cd8542b8eda3ff2cacec4507cf6ad2f50b5..97245203d5c6f2760d4cb6b1bdeca12431c4274b 100644 (file)
@@ -483,11 +483,19 @@ class FeedSub extends Memcached_DataObject
         if ($this->secret) {
             if (preg_match('/^sha1=([0-9a-fA-F]{40})$/', $hmac, $matches)) {
                 $their_hmac = strtolower($matches[1]);
-                $our_hmac = hash_hmac('sha1', $post, $this->secret);
+                $our_hmac = hash_hmac('sha1', $post, $this->secret) . 'x';
                 if ($their_hmac === $our_hmac) {
                     return true;
                 }
-                common_log(LOG_ERR, __METHOD__ . ": ignoring PuSH with bad SHA-1 HMAC: got $their_hmac, expected $our_hmac for feed $this->uri on $this->huburi");
+                if (common_config('feedsub', 'debug')) {
+                    $tempfile = tempnam(sys_get_temp_dir(), 'feedsub-receive');
+                    if ($tempfile) {
+                        file_put_contents($tempfile, $post);
+                    }
+                    common_log(LOG_ERR, __METHOD__ . ": ignoring PuSH with bad SHA-1 HMAC: got $their_hmac, expected $our_hmac for feed $this->uri on $this->huburi; saved to $tempfile");
+                } else {
+                    common_log(LOG_ERR, __METHOD__ . ": ignoring PuSH with bad SHA-1 HMAC: got $their_hmac, expected $our_hmac for feed $this->uri on $this->huburi");
+                }
             } else {
                 common_log(LOG_ERR, __METHOD__ . ": ignoring PuSH with bogus HMAC '$hmac'");
             }