Fix the handling of HTTP headers 6.1.0_Beta_1
authorAlexander Ebert <ebert@woltlab.com>
Fri, 30 Aug 2024 15:42:34 +0000 (17:42 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Fri, 30 Aug 2024 15:42:34 +0000 (17:42 +0200)
wcfsetup/install/files/lib/system/package/PackageUpdateDispatcher.class.php

index 74430820c5ee10dd62c7bf2c9973255e892537f8..4f798ee551aacfe85ec9db57b924450baa11cba0 100644 (file)
@@ -211,8 +211,8 @@ final class PackageUpdateDispatcher extends SingletonFactory
         ];
 
         // check if server indicates support for a newer API
-        if ($updateServer->apiVersion !== '3.1' && !empty($response->getHeader('wcf-update-server-api'))) {
-            $apiVersions = \explode(' ', \reset($response->getHeader('wcf-update-server-api')));
+        if ($updateServer->apiVersion !== '3.1' && $response->getHeader('wcf-update-server-api') !== []) {
+            $apiVersions = \explode(' ', $response->getHeader('wcf-update-server-api')[0]);
             if (\in_array('3.1', $apiVersions)) {
                 $apiVersion = $data['apiVersion'] = '3.1';
             } elseif (\in_array('2.1', $apiVersions)) {
@@ -228,16 +228,16 @@ final class PackageUpdateDispatcher extends SingletonFactory
 
         $metaData = [];
         if (\in_array($apiVersion, ['2.1', '3.1'])) {
-            if (empty($response->getHeader('etag')) && empty($response->getHeader('last-modified'))) {
+            if ($response->getHeader('etag') === [] && $response->getHeader('last-modified') === []) {
                 throw new SystemException("Missing required HTTP headers 'etag' and 'last-modified'.");
             }
 
             $metaData['list'] = [];
-            if (!empty($response->getHeader('etag'))) {
-                $metaData['list']['etag'] = \reset($response->getHeader('etag'));
+            if ($response->getHeader('etag') !== []) {
+                $metaData['list']['etag'] = $response->getHeader('etag')[0];
             }
-            if (!empty($response->getHeader('last-modified'))) {
-                $metaData['list']['lastModified'] = \reset($response->getHeader('last-modified'));
+            if ($response->getHeader('last-modified') !== []) {
+                $metaData['list']['lastModified'] = $response->getHeader('last-modified')[0];
             }
         }
         $data['metaData'] = \serialize($metaData);