Merge remote-tracking branch 'refs/remotes/origin/3.0'
authorAlexander Ebert <ebert@woltlab.com>
Sun, 1 Apr 2018 18:32:49 +0000 (20:32 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Sun, 1 Apr 2018 18:32:49 +0000 (20:32 +0200)
# Conflicts:

# wcfsetup/install/files/lib/system/package/PackageUpdateDispatcher.class.php

1  2 
wcfsetup/install/files/lib/system/cronjob/GetUpdateInfoCronjob.class.php
wcfsetup/install/files/lib/system/package/PackageUpdateDispatcher.class.php

index 57cb361f8811bf6ed15eb6ffe6d3d0e84328a1c8,b6e385eeb3bbbf26a074f48507a1eeb2daf3bf46..83fce7fb96a0f7c10cf17a0750137bf4245dc8dc
@@@ -145,11 -144,13 +145,14 @@@ class PackageUpdateDispatcher extends S
                
                $request = new HTTPRequest($updateServer->getListURL($forceHTTP), $settings);
                
 -              if ($updateServer->apiVersion == '2.1') {
 +              $apiVersion = $updateServer->apiVersion;
 +              if (in_array($apiVersion, ['2.1', '3.1'])) {
-                       $metaData = $updateServer->getMetaData();
-                       if (isset($metaData['list']['etag'])) $request->addHeader('if-none-match', $metaData['list']['etag']);
-                       if (isset($metaData['list']['lastModified'])) $request->addHeader('if-modified-since', $metaData['list']['lastModified']);
+                       // skip etag check for WoltLab servers when an auth code is provided
+                       if (!preg_match('~^https?://(?:update|store)\.woltlab\.com\/~', $updateServer->serverURL) || !PACKAGE_SERVER_AUTH_CODE) {
+                               $metaData = $updateServer->getMetaData();
+                               if (isset($metaData['list']['etag'])) $request->addHeader('if-none-match', $metaData['list']['etag']);
+                               if (isset($metaData['list']['lastModified'])) $request->addHeader('if-modified-since', $metaData['list']['lastModified']);
+                       }
                }
                
                try {