]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/ApiLogger/ApiLoggerPlugin.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / ApiLogger / ApiLoggerPlugin.php
index 3a60e212d1e658ae0ff6ecab86d556669ac451f7..0db34fd5aa1283334f3049ea2522945456db1689 100644 (file)
@@ -32,7 +32,7 @@ class ApiLoggerPlugin extends Plugin
     // 0.1 will check about 10% of hits, etc.
     public $frequency = 1.0;
 
-    function onArgsInitialize($args)
+    function onArgsInitialize(array &$args)
     {
         if (isset($args['action'])) {
             $action = strtolower($args['action']);
@@ -52,6 +52,14 @@ class ApiLoggerPlugin extends Plugin
                 $etag = empty($_SERVER['HTTP_IF_MATCH']) ? 'no' : 'yes';
                 $last = empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? 'no' : 'yes';
                 $auth = empty($_SERVER['HTTP_AUTHORIZATION']) ? 'no' : 'yes';
+                if ($auth == 'no' && function_exists('apache_request_headers')) {
+                    // Sometimes Authorization doesn't make it into $_SERVER.
+                    // Probably someone thought it was scary.
+                    $headers = apache_request_headers();
+                    if (isset($headers['Authorization'])) {
+                        $auth = 'yes';
+                    }
+                }
                 $agent = empty($_SERVER['HTTP_USER_AGENT']) ? 'no' : $_SERVER['HTTP_USER_AGENT'];
 
                 $query = (strpos($uri, '?') === false) ? 'no' : 'yes';
@@ -66,4 +74,16 @@ class ApiLoggerPlugin extends Plugin
         }
         return true;
     }
+
+    function onPluginVersion(array &$versions)
+    {
+        $versions[] = array('name' => 'ApiLogger',
+                            'version' => GNUSOCIAL_VERSION,
+                            'author' => 'Brion Vibber',
+                            'homepage' => 'http://status.net/wiki/Plugin:ApiLogger',
+                            'rawdescription' =>
+                            // TRANS: Plugin description.
+                            _m('Allows random sampling of API requests.'));
+        return true;
+    }
 }