$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 {