Changeset 3257107
- Timestamp:
- 03/17/2025 12:04:35 PM (13 months ago)
- Location:
- gdata-antivirus
- Files:
-
- 34 edited
- 1 copied
-
tags/3.0.2 (copied) (copied from gdata-antivirus/trunk)
-
tags/3.0.2/Readme.txt (modified) (2 diffs)
-
tags/3.0.2/Vaas/ScanClient.php (modified) (4 diffs)
-
tags/3.0.2/composer.json (modified) (1 diff)
-
tags/3.0.2/composer.lock (modified) (20 diffs)
-
tags/3.0.2/gdata-antivirus.php (modified) (1 diff)
-
tags/3.0.2/vendor/amphp/byte-stream/src/ReadableIterableStream.php (modified) (2 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php (modified) (3 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/Connection/Http1Connection.php (modified) (3 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/Connection/Internal/Http2ConnectionProcessor.php (modified) (6 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/Connection/Internal/Http2Stream.php (modified) (2 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/Internal/EventInvoker.php (modified) (2 diffs)
-
tags/3.0.2/vendor/amphp/http-client/src/SocketException.php (modified) (1 diff)
-
tags/3.0.2/vendor/amphp/pipeline/src/Internal/QueueState.php (modified) (1 diff)
-
tags/3.0.2/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
tags/3.0.2/vendor/composer/autoload_static.php (modified) (1 diff)
-
tags/3.0.2/vendor/composer/installed.json (modified) (11 diffs)
-
tags/3.0.2/vendor/composer/installed.php (modified) (1 diff)
-
trunk/Readme.txt (modified) (2 diffs)
-
trunk/Vaas/ScanClient.php (modified) (4 diffs)
-
trunk/composer.json (modified) (1 diff)
-
trunk/composer.lock (modified) (20 diffs)
-
trunk/gdata-antivirus.php (modified) (1 diff)
-
trunk/vendor/amphp/byte-stream/src/ReadableIterableStream.php (modified) (2 diffs)
-
trunk/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php (modified) (3 diffs)
-
trunk/vendor/amphp/http-client/src/Connection/Http1Connection.php (modified) (3 diffs)
-
trunk/vendor/amphp/http-client/src/Connection/Internal/Http2ConnectionProcessor.php (modified) (6 diffs)
-
trunk/vendor/amphp/http-client/src/Connection/Internal/Http2Stream.php (modified) (2 diffs)
-
trunk/vendor/amphp/http-client/src/Internal/EventInvoker.php (modified) (2 diffs)
-
trunk/vendor/amphp/http-client/src/SocketException.php (modified) (1 diff)
-
trunk/vendor/amphp/pipeline/src/Internal/QueueState.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_static.php (modified) (1 diff)
-
trunk/vendor/composer/installed.json (modified) (11 diffs)
-
trunk/vendor/composer/installed.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gdata-antivirus/tags/3.0.2/Readme.txt
r3249458 r3257107 5 5 Tested up to: 6.7 6 6 Requires PHP: 8.1 7 Stable tag: 3.0. 17 Stable tag: 3.0.2 8 8 License: GNU General Public License v3.0 9 9 License URI: https://github.com/GDATASoftwareAG/vaas/blob/main/LICENSE … … 56 56 57 57 == Changelog == 58 59 = 3.0.2 = 60 61 * Show error message for wrong credentials 58 62 59 63 = 3.0.1 = -
gdata-antivirus/tags/3.0.2/Vaas/ScanClient.php
r3245655 r3257107 3 3 namespace Gdatacyberdefenseag\GdataAntivirus\Vaas; 4 4 5 use Exception; 5 6 use Gdatacyberdefenseag\GdataAntivirus\Infrastructure\FileSystem\IGdataAntivirusFileSystem; 6 7 use Gdatacyberdefenseag\GdataAntivirus\PluginPage\AdminNoticesInterface; … … 48 49 add_filter('wp_insert_post_data', array($this, 'scan_post'), 10, 1); 49 50 } 51 add_action('admin_notices', array($this, 'credentials_check_admin_notice')); 52 $this->connect(); 50 53 } 51 54 public function reconnect() … … 54 57 $this->connect(); 55 58 } 56 public function connect() 59 public function credentials_check_admin_notice() 60 { 61 if ($this->vaas_options->credentials_configured()) { 62 if ($this->connect() === \false) { 63 echo '<div class="notice notice-error is-dismissible"> 64 <p>VaaS - Error: The credentials did not work. Please check the settings.</p> 65 </div>'; 66 } 67 } 68 } 69 public function connect(): bool 57 70 { 58 71 if ($this->connected === \true) { 59 return ;72 return \true; 60 73 } 61 74 $options = $this->vaas_options->get_options(); … … 65 78 $vaas_parameters->vaasUrl = $options['vaas_url']; 66 79 if (!$this->vaas_options->credentials_configured()) { 67 return ;80 return \false; 68 81 } 69 82 if ($options['authentication_method'] == 'ResourceOwnerPasswordGrant') { 70 $ resource_owner_password_grant_authenticator = new ResourceOwnerPasswordGrantAuthenticator('wordpress-customer', $options['username'], $options['password'], $options['token_endpoint']);71 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($ resource_owner_password_grant_authenticator)->build();83 $authenticator = new ResourceOwnerPasswordGrantAuthenticator('wordpress-customer', $options['username'], $options['password'], $options['token_endpoint']); 84 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($authenticator)->build(); 72 85 } else { 73 $client_credentials_grant_authenticator = new ClientCredentialsGrantAuthenticator($options['client_id'], $options['client_secret'], $options['token_endpoint']); 74 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($client_credentials_grant_authenticator)->build(); 86 $authenticator = new ClientCredentialsGrantAuthenticator($options['client_id'], $options['client_secret'], $options['token_endpoint']); 87 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($authenticator)->build(); 88 } 89 try { 90 $authenticator->getTokenAsync()->await(); 91 } catch (Exception $e) { 92 return \false; 75 93 } 76 94 $this->connected = \true; 95 return \true; 77 96 } 78 97 public function scan_post($data) -
gdata-antivirus/tags/3.0.2/composer.json
r3249458 r3257107 1 1 { 2 2 "name": "gdatacyberdefenseag\/gdata-antivirus", 3 "version": "3.0. 1",3 "version": "3.0.2", 4 4 "autoload": { 5 5 "psr-4": { -
gdata-antivirus/tags/3.0.2/composer.lock
r3249458 r3257107 90 90 { 91 91 "name": "amphp/byte-stream", 92 "version": "v2.1. 1",92 "version": "v2.1.2", 93 93 "source": { 94 94 "type": "git", 95 95 "url": "https://github.com/amphp/byte-stream.git", 96 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93"97 }, 98 "dist": { 99 "type": "zip", 100 "url": "https://api.github.com/repos/amphp/byte-stream/zipball/ daa00f2efdbd71565bf64ffefa89e37542addf93",101 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93",96 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" 97 }, 98 "dist": { 99 "type": "zip", 100 "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", 101 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", 102 102 "shasum": "" 103 103 }, … … 153 153 "support": { 154 154 "issues": "https://github.com/amphp/byte-stream/issues", 155 "source": "https://github.com/amphp/byte-stream/tree/v2.1. 1"155 "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" 156 156 }, 157 157 "funding": [ … … 161 161 } 162 162 ], 163 "time": "202 4-02-17T04:49:38+00:00"163 "time": "2025-03-16T17:10:27+00:00" 164 164 }, 165 165 { … … 542 542 { 543 543 "name": "amphp/http-client", 544 "version": "v5. 2.2",544 "version": "v5.3.0", 545 545 "source": { 546 546 "type": "git", 547 547 "url": "https://github.com/amphp/http-client.git", 548 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20"549 }, 550 "dist": { 551 "type": "zip", 552 "url": "https://api.github.com/repos/amphp/http-client/zipball/ a3e8711cb71fe909c1ae17450bfa5db652559c20",553 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20",548 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75" 549 }, 550 "dist": { 551 "type": "zip", 552 "url": "https://api.github.com/repos/amphp/http-client/zipball/d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 553 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 554 554 "shasum": "" 555 555 }, … … 628 628 "support": { 629 629 "issues": "https://github.com/amphp/http-client/issues", 630 "source": "https://github.com/amphp/http-client/tree/v5. 2.2"630 "source": "https://github.com/amphp/http-client/tree/v5.3.0" 631 631 }, 632 632 "funding": [ … … 636 636 } 637 637 ], 638 "time": "2025-0 1-12T20:02:49+00:00"638 "time": "2025-03-16T17:32:21+00:00" 639 639 }, 640 640 { … … 786 786 { 787 787 "name": "amphp/pipeline", 788 "version": "v1.2. 2",788 "version": "v1.2.3", 789 789 "source": { 790 790 "type": "git", 791 791 "url": "https://github.com/amphp/pipeline.git", 792 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4"793 }, 794 "dist": { 795 "type": "zip", 796 "url": "https://api.github.com/repos/amphp/pipeline/zipball/ 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",797 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",792 "reference": "7b52598c2e9105ebcddf247fc523161581930367" 793 }, 794 "dist": { 795 "type": "zip", 796 "url": "https://api.github.com/repos/amphp/pipeline/zipball/7b52598c2e9105ebcddf247fc523161581930367", 797 "reference": "7b52598c2e9105ebcddf247fc523161581930367", 798 798 "shasum": "" 799 799 }, … … 841 841 "support": { 842 842 "issues": "https://github.com/amphp/pipeline/issues", 843 "source": "https://github.com/amphp/pipeline/tree/v1.2. 2"843 "source": "https://github.com/amphp/pipeline/tree/v1.2.3" 844 844 }, 845 845 "funding": [ … … 849 849 } 850 850 ], 851 "time": "2025-0 1-19T15:42:46+00:00"851 "time": "2025-03-16T16:33:53+00:00" 852 852 }, 853 853 { … … 1230 1230 { 1231 1231 "name": "illuminate/container", 1232 "version": "v11.44. 0",1232 "version": "v11.44.2", 1233 1233 "source": { 1234 1234 "type": "git", … … 1281 1281 { 1282 1282 "name": "illuminate/contracts", 1283 "version": "v11.44. 0",1283 "version": "v11.44.2", 1284 1284 "source": { 1285 1285 "type": "git", … … 2930 2930 { 2931 2931 "name": "phpunit/phpunit", 2932 "version": "11.5.1 0",2932 "version": "11.5.12", 2933 2933 "source": { 2934 2934 "type": "git", 2935 2935 "url": "https://github.com/sebastianbergmann/phpunit.git", 2936 "reference": "d 5df2b32d729562ff8db634678d71085ee579006"2937 }, 2938 "dist": { 2939 "type": "zip", 2940 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d 5df2b32d729562ff8db634678d71085ee579006",2941 "reference": "d 5df2b32d729562ff8db634678d71085ee579006",2936 "reference": "d42785840519401ed2113292263795eb4c0f95da" 2937 }, 2938 "dist": { 2939 "type": "zip", 2940 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d42785840519401ed2113292263795eb4c0f95da", 2941 "reference": "d42785840519401ed2113292263795eb4c0f95da", 2942 2942 "shasum": "" 2943 2943 }, … … 2953 2953 "phar-io/version": "^3.2.1", 2954 2954 "php": ">=8.2", 2955 "phpunit/php-code-coverage": "^11.0. 8",2955 "phpunit/php-code-coverage": "^11.0.9", 2956 2956 "phpunit/php-file-iterator": "^5.1.0", 2957 2957 "phpunit/php-invoker": "^5.0.1", … … 2960 2960 "sebastian/cli-parser": "^3.0.2", 2961 2961 "sebastian/code-unit": "^3.0.2", 2962 "sebastian/comparator": "^6.3. 0",2962 "sebastian/comparator": "^6.3.1", 2963 2963 "sebastian/diff": "^6.0.2", 2964 2964 "sebastian/environment": "^7.2.0", … … 3011 3011 "issues": "https://github.com/sebastianbergmann/phpunit/issues", 3012 3012 "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 3013 "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.1 0"3013 "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.12" 3014 3014 }, 3015 3015 "funding": [ … … 3027 3027 } 3028 3028 ], 3029 "time": "2025-0 2-25T06:11:48+00:00"3029 "time": "2025-03-07T07:31:03+00:00" 3030 3030 }, 3031 3031 { … … 3201 3201 { 3202 3202 "name": "sebastian/comparator", 3203 "version": "6.3. 0",3203 "version": "6.3.1", 3204 3204 "source": { 3205 3205 "type": "git", 3206 3206 "url": "https://github.com/sebastianbergmann/comparator.git", 3207 "reference": " d4e47a769525c4dd38cea90e5dcd435ddbbc7115"3208 }, 3209 "dist": { 3210 "type": "zip", 3211 "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ d4e47a769525c4dd38cea90e5dcd435ddbbc7115",3212 "reference": " d4e47a769525c4dd38cea90e5dcd435ddbbc7115",3207 "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" 3208 }, 3209 "dist": { 3210 "type": "zip", 3211 "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 3212 "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 3213 3213 "shasum": "" 3214 3214 }, … … 3229 3229 "extra": { 3230 3230 "branch-alias": { 3231 "dev-main": "6. 2-dev"3231 "dev-main": "6.3-dev" 3232 3232 } 3233 3233 }, … … 3269 3269 "issues": "https://github.com/sebastianbergmann/comparator/issues", 3270 3270 "security": "https://github.com/sebastianbergmann/comparator/security/policy", 3271 "source": "https://github.com/sebastianbergmann/comparator/tree/6.3. 0"3271 "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" 3272 3272 }, 3273 3273 "funding": [ … … 3277 3277 } 3278 3278 ], 3279 "time": "2025-0 1-06T10:28:19+00:00"3279 "time": "2025-03-07T06:57:01+00:00" 3280 3280 }, 3281 3281 { -
gdata-antivirus/tags/3.0.2/gdata-antivirus.php
r3249458 r3257107 12 12 * @wordpress-plugin 13 13 * Plugin Name: G DATA Antivirus 14 * Version: 3.0. 114 * Version: 3.0.2 15 15 * Requires at least: 6.2 16 16 * Tested up to: 6.6 -
gdata-antivirus/tags/3.0.2/vendor/amphp/byte-stream/src/ReadableIterableStream.php
r3169198 r3257107 10 10 use GDAVSCOPE\Amp\ForbidSerialization; 11 11 use GDAVSCOPE\Amp\Pipeline\ConcurrentIterator; 12 use GDAVSCOPE\Amp\Pipeline\DisposedException; 12 13 use GDAVSCOPE\Amp\Pipeline\Pipeline; 13 14 /** … … 63 64 // Read cancelled, stream did not fail. 64 65 } 66 if ($exception instanceof DisposedException) { 67 $exception = new ClosedException('Stream manually closed', previous: $exception); 68 } 65 69 throw $this->exception = $exception; 66 70 } finally { -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php
r3245655 r3257107 12 12 use GDAVSCOPE\Amp\Http\Client\SocketException; 13 13 use GDAVSCOPE\Amp\Http\Client\TimeoutException; 14 use GDAVSCOPE\Amp\Http\Client\TlsException; 14 15 use GDAVSCOPE\Amp\Socket; 15 16 use GDAVSCOPE\Amp\Socket\ClientTlsContext; … … 84 85 if ($tlsState !== Socket\TlsState::Disabled) { 85 86 $socket->close(); 86 throw new SocketException('Failed to setup TLS connection, connection was in an unexpected TLS state (' . $tlsState->name . ')');87 throw new TlsException('Failed to setup TLS connection, connection was in an unexpected TLS state (' . $tlsState->name . ')'); 87 88 } 88 89 $socket->setupTls(new CompositeCancellation($cancellation, new TimeoutCancellation($request->getTlsHandshakeTimeout()))); 89 90 } catch (StreamException $streamException) { 90 91 $socket->close(); 91 throw new SocketException(\sprintf("Connection to '%s' @ '%s' closed during TLS handshake", $authority, $socket->getRemoteAddress()->toString()), 0, $streamException); 92 $errorMessage = $streamException->getMessage(); 93 \preg_match('/error:[0-9a-f]*:[^:]*:[^:]*:(.+)$/i', $errorMessage, $matches); 94 $errorMessage = \trim($matches[1] ?? \explode('():', $errorMessage, 2)[1] ?? $errorMessage); 95 throw new TlsException(\sprintf("Connection to '%s' @ '%s' closed during TLS handshake: %s", $authority, $socket->getRemoteAddress()->toString(), $errorMessage), 0, $streamException); 92 96 } catch (CancelledException) { 93 97 $socket->close(); … … 100 104 if ($tlsInfo === null) { 101 105 $socket->close(); 102 throw new SocketException(\sprintf("Socket closed after TLS handshake with '%s' @ '%s'", $authority, $socket->getRemoteAddress()->toString()));106 throw new TlsException(\sprintf("Socket closed after TLS handshake with '%s' @ '%s'", $authority, $socket->getRemoteAddress()->toString())); 103 107 } 104 108 $tlsHandshakeDuration = now() - $tlsHandshakeStart; -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/Connection/Http1Connection.php
r3245655 r3257107 179 179 $combinedCancellation = $cancellation; 180 180 } 181 $id = $combinedCancellation->subscribe($this->close(...)); 182 try { 183 $this->writeRequest($request, $stream, $protocolVersion, $combinedCancellation); 184 return $this->readResponse($request, $cancellation, $combinedCancellation, $stream); 185 } catch (\Throwable $exception) { 186 $this->socket?->close(); 187 throw $exception; 188 } finally { 189 $combinedCancellation->unsubscribe($id); 190 $cancellation->throwIfRequested(); 191 } 181 $cancellationId = $combinedCancellation->subscribe($this->close(...)); 182 $responseDeferred = new DeferredFuture(); 183 EventLoop::queue(function () use ($responseDeferred, $request, $stream, $protocolVersion, $combinedCancellation): void { 184 try { 185 $this->writeRequest($request, $stream, $protocolVersion, $combinedCancellation); 186 } catch (\Throwable $exception) { 187 if (!$responseDeferred->isComplete()) { 188 $responseDeferred->error($exception); 189 } 190 } 191 }); 192 EventLoop::queue(function () use ($responseDeferred, $request, $stream, $cancellation, $combinedCancellation, $cancellationId): void { 193 try { 194 $response = $this->readResponse($request, $cancellation, $combinedCancellation, $stream); 195 if (!$responseDeferred->isComplete()) { 196 $responseDeferred->complete($response); 197 } 198 } catch (\Throwable $exception) { 199 $this->socket?->close(); 200 if (!$responseDeferred->isComplete()) { 201 $responseDeferred->error($exception); 202 } 203 } finally { 204 $combinedCancellation->unsubscribe($cancellationId); 205 } 206 }); 207 return $responseDeferred->getFuture()->await($cancellation); 192 208 } 193 209 private function release(): void … … 325 341 } 326 342 $originalCancellation->throwIfRequested(); 343 $readingCancellation->throwIfRequested(); 327 344 throw new SocketException(\sprintf("Receiving the response headers for '%s' failed, because the socket to '%s' @ '%s' closed early with %d bytes received within %0.3f seconds", (string) $request->getUri()->withUserInfo(''), $request->getUri()->withUserInfo('')->getAuthority(), $this->socket?->getRemoteAddress()?->toString() ?? '???', \strlen($parser->getBuffer()), now() - $start)); 328 345 } catch (HttpException $e) { … … 333 350 // Throw original cancellation if it was requested. 334 351 $originalCancellation->throwIfRequested(); 352 if ($readingCancellation->isRequested()) { 353 throw new TimeoutException('Allowed transfer timeout exceeded, took longer than ' . $request->getTransferTimeout() . ' s', 0, $e); 354 } 335 355 throw new TimeoutException('Inactivity timeout exceeded, more than ' . $timeout . ' seconds elapsed from last data received', 0, $e); 336 356 } catch (\Throwable $e) { -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/Connection/Internal/Http2ConnectionProcessor.php
r3245655 r3257107 271 271 EventLoop::queue(static function () use ($response, $stream): void { 272 272 try { 273 $stream->request BodyCompletion->getFuture()->await();273 $stream->requestHeaderCompletion->getFuture()->await(); 274 274 $stream->preResponseResolution?->await(); 275 275 $stream->pendingResponse?->complete($response); … … 596 596 $streamId = $this->streamId += 2; 597 597 // Client streams should be odd-numbered, starting at 1. 598 $this->streams[$streamId] = $http2stream = new Http2Stream($streamId, $request, $stream, $cancellation, $this->createStreamTransferWatcher($streamId, $request->getTransferTimeout()), $this->createStreamInactivityWatcher($streamId, $request->getInactivityTimeout()), self::DEFAULT_WINDOW_SIZE, $this->initialWindowSize); 599 $cancellationId = $cancellation->subscribe(fn(CancelledException $exception) => $this->releaseStream($streamId, $exception, \false)); 598 $this->streams[$streamId] = $http2stream = new Http2Stream(id: $streamId, request: $request, stream: $stream, cancellation: $cancellation, transferWatcher: $this->createStreamTransferWatcher($streamId, $request->getTransferTimeout()), inactivityWatcher: $this->createStreamInactivityWatcher($streamId, $request->getInactivityTimeout()), serverWindow: self::DEFAULT_WINDOW_SIZE, clientWindow: $this->initialWindowSize); 600 599 $cancellation = $http2stream->cancellation; 601 600 // Use CompositeCancellation from Http2Stream. 601 $cancellationId = $cancellation->subscribe(fn(CancelledException $exception) => $this->releaseStream($streamId, $exception, \false)); 602 602 \assert($http2stream->pendingResponse !== null); 603 603 $responseFuture = $http2stream->pendingResponse->getFuture(); 604 604 \assert($http2stream->trailers !== null); 605 605 $http2stream->trailers->getFuture()->finally(static fn() => $cancellation->unsubscribe($cancellationId))->ignore(); 606 try{606 async(function () use ($request, $stream, $http2stream, $cancellation): void { 607 607 events()->requestHeaderStart($request, $stream); 608 608 $body = $request->getBody()->getContent(); … … 615 615 $firstChunk = \array_shift($split); 616 616 $lastChunk = \array_pop($split); 617 $this->writeFrame(Http2Parser::HEADERS, Http2Parser::NO_FLAG, $streamId,$firstChunk)->ignore();617 $this->writeFrame(Http2Parser::HEADERS, stream: $http2stream->id, data: $firstChunk)->ignore(); 618 618 foreach ($split as $headerChunk) { 619 $this->writeFrame(Http2Parser::CONTINUATION, Http2Parser::NO_FLAG, $streamId,$headerChunk)->ignore();619 $this->writeFrame(Http2Parser::CONTINUATION, stream: $http2stream->id, data: $headerChunk)->ignore(); 620 620 } 621 $this->writeFrame(Http2Parser::CONTINUATION, $flag, $ streamId, $lastChunk)->await();621 $this->writeFrame(Http2Parser::CONTINUATION, $flag, $http2stream->id, $lastChunk)->await(); 622 622 } else { 623 $this->writeFrame(Http2Parser::HEADERS, $flag, $streamId, $headers)->await(); 624 } 623 $this->writeFrame(Http2Parser::HEADERS, $flag, $http2stream->id, $headers)->await(); 624 } 625 $http2stream->requestHeaderCompletion->complete(); 625 626 events()->requestHeaderEnd($request, $stream); 626 627 events()->requestBodyStart($request, $stream); … … 628 629 $http2stream->requestBodyCompletion->complete(); 629 630 } else { 630 $buffer = $chunk;631 631 $writeFuture = Future::complete(); 632 632 do { 633 $chunk = $body->read($cancellation);634 if (!isset($this->streams[$streamId])) {635 // Request stream closed, so this await will throw.636 return $responseFuture->await();637 }638 633 // Wait for prior write to complete if we've buffered too much of the request body. 639 634 if (\strlen($http2stream->requestBodyBuffer) >= self::DEFAULT_MAX_FRAME_SIZE) { 640 635 $writeFuture->await($cancellation); 641 636 } 642 if ($chunk === null) { 643 // Don't move this out of the loop, this needs to be set before calling writeData 644 $http2stream->requestBodyCompletion->complete(); 645 } 646 $writeFuture = $this->writeData($http2stream, $buffer); 637 $writeFuture = $this->writeData($http2stream, $chunk); 647 638 events()->requestBodyProgress($request, $stream); 648 $buffer = $chunk; 649 } while ($buffer !== null); 639 $chunk = $body->read($cancellation); 640 } while ($chunk !== null); 641 $http2stream->requestBodyCompletion->complete(); 650 642 $writeFuture->await($cancellation); 643 $this->writeBufferedData($http2stream)->await($cancellation); 651 644 } 652 645 events()->requestBodyEnd($request, $stream); 653 } catch (\Throwable $exception){646 })->catch(function (\Throwable $exception) use ($http2stream, $cancellation, $cancellationId): void { 654 647 $cancellation->unsubscribe($cancellationId); 655 $exception = $this->wrapException($exception, "Failed to write request (stream {$streamId}) to socket"); 648 $exception = $this->wrapException($exception, "Failed to write request (stream {$http2stream->id}) to socket"); 649 if (!$http2stream->requestHeaderCompletion->isComplete()) { 650 $http2stream->requestHeaderCompletion->error($exception); 651 } 656 652 if (!$http2stream->requestBodyCompletion->isComplete()) { 657 653 $http2stream->requestBodyCompletion->error($exception); 658 654 } 659 $this->releaseStream($ streamId, $exception, \false);660 } 655 $this->releaseStream($http2stream->id, $exception, \false); 656 }); 661 657 return $responseFuture->await(); 662 658 } … … 762 758 private function writeBufferedData(Http2Stream $stream): Future 763 759 { 764 if ($stream-> requestBodyCompletion->isComplete() && $stream->requestBodyBuffer === '') {760 if ($stream->ended) { 765 761 return Future::complete(); 766 762 } … … 782 778 if ($stream->requestBodyCompletion->isComplete()) { 783 779 $future = $this->writeFrame(Http2Parser::DATA, Http2Parser::END_STREAM, $stream->id, $stream->requestBodyBuffer); 780 $stream->ended = \true; 784 781 } else { 785 782 $future = $this->writeFrame(Http2Parser::DATA, Http2Parser::NO_FLAG, $stream->id, $stream->requestBodyBuffer); -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/Connection/Internal/Http2Stream.php
r3245655 r3257107 35 35 public int $received = 0; 36 36 public int $bufferSize = 0; 37 public bool $ended = \false; 37 38 public string $requestBodyBuffer = ''; 39 public readonly DeferredFuture $requestHeaderCompletion; 38 40 public readonly DeferredFuture $requestBodyCompletion; 39 41 /** @var int Integer between 1 and 256 */ … … 47 49 { 48 50 $this->pendingResponse = new DeferredFuture(); 51 $this->requestHeaderCompletion = new DeferredFuture(); 49 52 $this->requestBodyCompletion = new DeferredFuture(); 50 53 $this->body = new Queue(); -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/Internal/EventInvoker.php
r3245655 r3257107 126 126 { 127 127 $previousPhase = self::getPhase($request); 128 if ( $previousPhase !== Phase::RequestBody) {128 if (!\in_array($previousPhase, [Phase::RequestBody, Phase::ServerProcessing, Phase::ResponseHeaders, Phase::ResponseBody], \true)) { 129 129 throw new \Error('Invalid request phase: ' . $previousPhase->name); 130 130 } … … 134 134 { 135 135 $previousPhase = self::getPhase($request); 136 if ( $previousPhase !== Phase::RequestBody) {136 if (!\in_array($previousPhase, [Phase::RequestBody, Phase::ServerProcessing, Phase::ResponseHeaders, Phase::ResponseBody], \true)) { 137 137 throw new \Error('Invalid request phase transition from ' . $previousPhase->name . ' to ServerProcessing'); 138 138 } 139 $this->requestPhase[$request] = Phase::ServerProcessing; 139 if ($previousPhase === Phase::RequestBody) { 140 $this->requestPhase[$request] = Phase::ServerProcessing; 141 } 140 142 $this->invoke($request, fn(EventListener $eventListener) => $eventListener->requestBodyEnd($request, $stream)); 141 143 } -
gdata-antivirus/tags/3.0.2/vendor/amphp/http-client/src/SocketException.php
r3169198 r3257107 4 4 namespace GDAVSCOPE\Amp\Http\Client; 5 5 6 finalclass SocketException extends HttpException6 class SocketException extends HttpException 7 7 { 8 8 } -
gdata-antivirus/tags/3.0.2/vendor/amphp/pipeline/src/Internal/QueueState.php
r3245655 r3257107 307 307 } 308 308 if ($this->disposed) { 309 if (empty($this->waiting)) { 310 $this->triggerDisposal(); 311 } 309 $this->triggerDisposal(); 312 310 } else { 313 311 $this->resolvePending(); -
gdata-antivirus/tags/3.0.2/vendor/composer/autoload_classmap.php
r3245655 r3257107 163 163 'GDAVSCOPE\\Amp\\Http\\Client\\StreamedContent' => $vendorDir . '/amphp/http-client/src/StreamedContent.php', 164 164 'GDAVSCOPE\\Amp\\Http\\Client\\TimeoutException' => $vendorDir . '/amphp/http-client/src/TimeoutException.php', 165 'GDAVSCOPE\\Amp\\Http\\Client\\TlsException' => $vendorDir . '/amphp/http-client/src/TlsException.php', 165 166 'GDAVSCOPE\\Amp\\Http\\Client\\Trailers' => $vendorDir . '/amphp/http-client/src/Trailers.php', 166 167 'GDAVSCOPE\\Amp\\Http\\Cookie\\CookieAttributes' => $vendorDir . '/amphp/http/src/Cookie/CookieAttributes.php', -
gdata-antivirus/tags/3.0.2/vendor/composer/autoload_static.php
r3249458 r3257107 332 332 'GDAVSCOPE\\Amp\\Http\\Client\\StreamedContent' => __DIR__ . '/..' . '/amphp/http-client/src/StreamedContent.php', 333 333 'GDAVSCOPE\\Amp\\Http\\Client\\TimeoutException' => __DIR__ . '/..' . '/amphp/http-client/src/TimeoutException.php', 334 'GDAVSCOPE\\Amp\\Http\\Client\\TlsException' => __DIR__ . '/..' . '/amphp/http-client/src/TlsException.php', 334 335 'GDAVSCOPE\\Amp\\Http\\Client\\Trailers' => __DIR__ . '/..' . '/amphp/http-client/src/Trailers.php', 335 336 'GDAVSCOPE\\Amp\\Http\\Cookie\\CookieAttributes' => __DIR__ . '/..' . '/amphp/http/src/Cookie/CookieAttributes.php', -
gdata-antivirus/tags/3.0.2/vendor/composer/installed.json
r3249458 r3257107 87 87 { 88 88 "name": "amphp\/byte-stream", 89 "version": "v2.1. 1",90 "version_normalized": "2.1. 1.0",89 "version": "v2.1.2", 90 "version_normalized": "2.1.2.0", 91 91 "source": { 92 92 "type": "git", 93 93 "url": "https:\/\/github.com\/amphp\/byte-stream.git", 94 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93"95 }, 96 "dist": { 97 "type": "zip", 98 "url": "https:\/\/api.github.com\/repos\/amphp\/byte-stream\/zipball\/ daa00f2efdbd71565bf64ffefa89e37542addf93",99 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93",94 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" 95 }, 96 "dist": { 97 "type": "zip", 98 "url": "https:\/\/api.github.com\/repos\/amphp\/byte-stream\/zipball\/55a6bd071aec26fa2a3e002618c20c35e3df1b46", 99 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", 100 100 "shasum": "" 101 101 }, … … 115 115 "psalm\/phar": "5.22.1" 116 116 }, 117 "time": "202 4-02-17T04:49:38+00:00",117 "time": "2025-03-16T17:10:27+00:00", 118 118 "type": "library", 119 119 "installation-source": "dist", … … 153 153 "support": { 154 154 "issues": "https:\/\/github.com\/amphp\/byte-stream\/issues", 155 "source": "https:\/\/github.com\/amphp\/byte-stream\/tree\/v2.1. 1"155 "source": "https:\/\/github.com\/amphp\/byte-stream\/tree\/v2.1.2" 156 156 }, 157 157 "funding": [ … … 557 557 { 558 558 "name": "amphp\/http-client", 559 "version": "v5. 2.2",560 "version_normalized": "5. 2.2.0",559 "version": "v5.3.0", 560 "version_normalized": "5.3.0.0", 561 561 "source": { 562 562 "type": "git", 563 563 "url": "https:\/\/github.com\/amphp\/http-client.git", 564 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20"565 }, 566 "dist": { 567 "type": "zip", 568 "url": "https:\/\/api.github.com\/repos\/amphp\/http-client\/zipball\/ a3e8711cb71fe909c1ae17450bfa5db652559c20",569 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20",564 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75" 565 }, 566 "dist": { 567 "type": "zip", 568 "url": "https:\/\/api.github.com\/repos\/amphp\/http-client\/zipball\/d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 569 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 570 570 "shasum": "" 571 571 }, … … 604 604 "ext-zlib": "Allows using compression for response bodies." 605 605 }, 606 "time": "2025-0 1-12T20:02:49+00:00",606 "time": "2025-03-16T17:32:21+00:00", 607 607 "type": "library", 608 608 "installation-source": "dist", … … 646 646 "support": { 647 647 "issues": "https:\/\/github.com\/amphp\/http-client\/issues", 648 "source": "https:\/\/github.com\/amphp\/http-client\/tree\/v5. 2.2"648 "source": "https:\/\/github.com\/amphp\/http-client\/tree\/v5.3.0" 649 649 }, 650 650 "funding": [ … … 810 810 { 811 811 "name": "amphp\/pipeline", 812 "version": "v1.2. 2",813 "version_normalized": "1.2. 2.0",812 "version": "v1.2.3", 813 "version_normalized": "1.2.3.0", 814 814 "source": { 815 815 "type": "git", 816 816 "url": "https:\/\/github.com\/amphp\/pipeline.git", 817 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4"818 }, 819 "dist": { 820 "type": "zip", 821 "url": "https:\/\/api.github.com\/repos\/amphp\/pipeline\/zipball\/ 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",822 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",817 "reference": "7b52598c2e9105ebcddf247fc523161581930367" 818 }, 819 "dist": { 820 "type": "zip", 821 "url": "https:\/\/api.github.com\/repos\/amphp\/pipeline\/zipball\/7b52598c2e9105ebcddf247fc523161581930367", 822 "reference": "7b52598c2e9105ebcddf247fc523161581930367", 823 823 "shasum": "" 824 824 }, … … 834 834 "psalm\/phar": "^5.18" 835 835 }, 836 "time": "2025-0 1-19T15:42:46+00:00",836 "time": "2025-03-16T16:33:53+00:00", 837 837 "type": "library", 838 838 "installation-source": "dist", … … 868 868 "support": { 869 869 "issues": "https:\/\/github.com\/amphp\/pipeline\/issues", 870 "source": "https:\/\/github.com\/amphp\/pipeline\/tree\/v1.2. 2"870 "source": "https:\/\/github.com\/amphp\/pipeline\/tree\/v1.2.3" 871 871 }, 872 872 "funding": [ … … 1275 1275 { 1276 1276 "name": "illuminate\/container", 1277 "version": "v11.44. 0",1278 "version_normalized": "11.44. 0.0",1277 "version": "v11.44.2", 1278 "version_normalized": "11.44.2.0", 1279 1279 "source": { 1280 1280 "type": "git", … … 1329 1329 { 1330 1330 "name": "illuminate\/contracts", 1331 "version": "v11.44. 0",1332 "version_normalized": "11.44. 0.0",1331 "version": "v11.44.2", 1332 "version_normalized": "11.44.2.0", 1333 1333 "source": { 1334 1334 "type": "git", -
gdata-antivirus/tags/3.0.2/vendor/composer/installed.php
r3249458 r3257107 3 3 namespace GDAVSCOPE; 4 4 5 return array('root' => array('name' => 'gdatacyberdefenseag/gdata-antivirus', 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('amphp/amp' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => '7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/amp', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/byte-stream' => array('pretty_version' => 'v2.1. 1', 'version' => '2.1.1.0', 'reference' => 'daa00f2efdbd71565bf64ffefa89e37542addf93', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/byte-stream', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/cache' => array('pretty_version' => 'v2.0.1', 'version' => '2.0.1.0', 'reference' => '46912e387e6aa94933b61ea1ead9cf7540b7797c', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/cache', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/dns' => array('pretty_version' => 'v2.4.0', 'version' => '2.4.0.0', 'reference' => '78eb3db5fc69bf2fc0cb503c4fcba667bc223c71', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/dns', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/file' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '28b38a805d2c235bb581d24415e78a42cd03aedc', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/file', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/hpack' => array('pretty_version' => 'v3.2.1', 'version' => '3.2.1.0', 'reference' => '4f293064b15682a2b178b1367ddf0b8b5feb0239', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/hpack', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '3680d80bd38b5d6f3c2cef2214ca6dd6cef26588', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http-client' => array('pretty_version' => 'v5.2.2', 'version' => '5.2.2.0', 'reference' => 'a3e8711cb71fe909c1ae17450bfa5db652559c20', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parallel' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '5113111de02796a782f5d90767455e7391cca190', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parallel', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parser' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '3cf1f8b32a0171d4b1bed93d25617637a77cded7', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parser', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/pipeline' => array('pretty_version' => 'v1.2.2', 'version' => '1.2.2.0', 'reference' => '97cbf289f4d8877acfe58dd90ed5a4370a43caa4', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/pipeline', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/process' => array('pretty_version' => 'v2.0.3', 'version' => '2.0.3.0', 'reference' => '52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/process', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/serialization' => array('pretty_version' => 'v1.0.0', 'version' => '1.0.0.0', 'reference' => '693e77b2fb0b266c3c7d622317f881de44ae94a1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/serialization', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/socket' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '58e0422221825b79681b72c50c47a930be7bf1e1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/socket', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/sync' => array('pretty_version' => 'v2.3.0', 'version' => '2.3.0.0', 'reference' => '217097b785130d77cfcc58ff583cf26cd1770bf1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/sync', 'aliases' => array(), 'dev_requirement' => \false), 'daverandom/libdns' => array('pretty_version' => 'v2.1.0', 'version' => '2.1.0.0', 'reference' => 'b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a', 'type' => 'library', 'install_path' => __DIR__ . '/../daverandom/libdns', 'aliases' => array(), 'dev_requirement' => \false), 'gdata/vaas' => array('pretty_version' => '11.0.1', 'version' => '11.0.1.0', 'reference' => '32d6c8818479af4b93385277c78bda1262e6c18b', 'type' => 'library', 'install_path' => __DIR__ . '/../gdata/vaas', 'aliases' => array(), 'dev_requirement' => \false), 'gdatacyberdefenseag/gdata-antivirus' => array('pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.44.0', 'version' => '11.44.0.0', 'reference' => '4dcc3fcbab92e734fc0c08d9cfd97f5a1aef18ca', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.44.0', 'version' => '11.44.0.0', 'reference' => 'b350a3cd8450846325cb49e1cbc1293598b18898', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'kelunik/certificate' => array('pretty_version' => 'v1.1.3', 'version' => '1.1.3.0', 'reference' => '7e00d498c264d5eb4f78c69f41c8bd6719c0199e', 'type' => 'library', 'install_path' => __DIR__ . '/../kelunik/certificate', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '81fb5145d2644324614cc532b28efd0215bda430', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-components' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '4aabf0e2f2f9421ffcacab35be33e4fb5e63c44f', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-components', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-interfaces' => array('pretty_version' => '7.5.0', 'version' => '7.5.0.0', 'reference' => '08cfc6c4f3d811584fb09c37e2849e6a7f9b0742', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-interfaces', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'revolt/event-loop' => array('pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'reference' => '09bf1bf7f7f574453efe43044b06fafe12216eb3', 'type' => 'library', 'install_path' => __DIR__ . '/../revolt/event-loop', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'gdatacyberdefenseag/gdata-antivirus', 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('amphp/amp' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => '7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/amp', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/byte-stream' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '55a6bd071aec26fa2a3e002618c20c35e3df1b46', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/byte-stream', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/cache' => array('pretty_version' => 'v2.0.1', 'version' => '2.0.1.0', 'reference' => '46912e387e6aa94933b61ea1ead9cf7540b7797c', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/cache', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/dns' => array('pretty_version' => 'v2.4.0', 'version' => '2.4.0.0', 'reference' => '78eb3db5fc69bf2fc0cb503c4fcba667bc223c71', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/dns', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/file' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '28b38a805d2c235bb581d24415e78a42cd03aedc', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/file', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/hpack' => array('pretty_version' => 'v3.2.1', 'version' => '3.2.1.0', 'reference' => '4f293064b15682a2b178b1367ddf0b8b5feb0239', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/hpack', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '3680d80bd38b5d6f3c2cef2214ca6dd6cef26588', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http-client' => array('pretty_version' => 'v5.3.0', 'version' => '5.3.0.0', 'reference' => 'd50928ec41d4ac3bcec5a01fe1caaf7575cbdc75', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parallel' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '5113111de02796a782f5d90767455e7391cca190', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parallel', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parser' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '3cf1f8b32a0171d4b1bed93d25617637a77cded7', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parser', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/pipeline' => array('pretty_version' => 'v1.2.3', 'version' => '1.2.3.0', 'reference' => '7b52598c2e9105ebcddf247fc523161581930367', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/pipeline', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/process' => array('pretty_version' => 'v2.0.3', 'version' => '2.0.3.0', 'reference' => '52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/process', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/serialization' => array('pretty_version' => 'v1.0.0', 'version' => '1.0.0.0', 'reference' => '693e77b2fb0b266c3c7d622317f881de44ae94a1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/serialization', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/socket' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '58e0422221825b79681b72c50c47a930be7bf1e1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/socket', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/sync' => array('pretty_version' => 'v2.3.0', 'version' => '2.3.0.0', 'reference' => '217097b785130d77cfcc58ff583cf26cd1770bf1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/sync', 'aliases' => array(), 'dev_requirement' => \false), 'daverandom/libdns' => array('pretty_version' => 'v2.1.0', 'version' => '2.1.0.0', 'reference' => 'b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a', 'type' => 'library', 'install_path' => __DIR__ . '/../daverandom/libdns', 'aliases' => array(), 'dev_requirement' => \false), 'gdata/vaas' => array('pretty_version' => '11.0.1', 'version' => '11.0.1.0', 'reference' => '32d6c8818479af4b93385277c78bda1262e6c18b', 'type' => 'library', 'install_path' => __DIR__ . '/../gdata/vaas', 'aliases' => array(), 'dev_requirement' => \false), 'gdatacyberdefenseag/gdata-antivirus' => array('pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.44.2', 'version' => '11.44.2.0', 'reference' => '4dcc3fcbab92e734fc0c08d9cfd97f5a1aef18ca', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.44.2', 'version' => '11.44.2.0', 'reference' => 'b350a3cd8450846325cb49e1cbc1293598b18898', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'kelunik/certificate' => array('pretty_version' => 'v1.1.3', 'version' => '1.1.3.0', 'reference' => '7e00d498c264d5eb4f78c69f41c8bd6719c0199e', 'type' => 'library', 'install_path' => __DIR__ . '/../kelunik/certificate', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '81fb5145d2644324614cc532b28efd0215bda430', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-components' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '4aabf0e2f2f9421ffcacab35be33e4fb5e63c44f', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-components', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-interfaces' => array('pretty_version' => '7.5.0', 'version' => '7.5.0.0', 'reference' => '08cfc6c4f3d811584fb09c37e2849e6a7f9b0742', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-interfaces', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'revolt/event-loop' => array('pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'reference' => '09bf1bf7f7f574453efe43044b06fafe12216eb3', 'type' => 'library', 'install_path' => __DIR__ . '/../revolt/event-loop', 'aliases' => array(), 'dev_requirement' => \false))); -
gdata-antivirus/trunk/Readme.txt
r3249458 r3257107 5 5 Tested up to: 6.7 6 6 Requires PHP: 8.1 7 Stable tag: 3.0. 17 Stable tag: 3.0.2 8 8 License: GNU General Public License v3.0 9 9 License URI: https://github.com/GDATASoftwareAG/vaas/blob/main/LICENSE … … 56 56 57 57 == Changelog == 58 59 = 3.0.2 = 60 61 * Show error message for wrong credentials 58 62 59 63 = 3.0.1 = -
gdata-antivirus/trunk/Vaas/ScanClient.php
r3245655 r3257107 3 3 namespace Gdatacyberdefenseag\GdataAntivirus\Vaas; 4 4 5 use Exception; 5 6 use Gdatacyberdefenseag\GdataAntivirus\Infrastructure\FileSystem\IGdataAntivirusFileSystem; 6 7 use Gdatacyberdefenseag\GdataAntivirus\PluginPage\AdminNoticesInterface; … … 48 49 add_filter('wp_insert_post_data', array($this, 'scan_post'), 10, 1); 49 50 } 51 add_action('admin_notices', array($this, 'credentials_check_admin_notice')); 52 $this->connect(); 50 53 } 51 54 public function reconnect() … … 54 57 $this->connect(); 55 58 } 56 public function connect() 59 public function credentials_check_admin_notice() 60 { 61 if ($this->vaas_options->credentials_configured()) { 62 if ($this->connect() === \false) { 63 echo '<div class="notice notice-error is-dismissible"> 64 <p>VaaS - Error: The credentials did not work. Please check the settings.</p> 65 </div>'; 66 } 67 } 68 } 69 public function connect(): bool 57 70 { 58 71 if ($this->connected === \true) { 59 return ;72 return \true; 60 73 } 61 74 $options = $this->vaas_options->get_options(); … … 65 78 $vaas_parameters->vaasUrl = $options['vaas_url']; 66 79 if (!$this->vaas_options->credentials_configured()) { 67 return ;80 return \false; 68 81 } 69 82 if ($options['authentication_method'] == 'ResourceOwnerPasswordGrant') { 70 $ resource_owner_password_grant_authenticator = new ResourceOwnerPasswordGrantAuthenticator('wordpress-customer', $options['username'], $options['password'], $options['token_endpoint']);71 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($ resource_owner_password_grant_authenticator)->build();83 $authenticator = new ResourceOwnerPasswordGrantAuthenticator('wordpress-customer', $options['username'], $options['password'], $options['token_endpoint']); 84 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($authenticator)->build(); 72 85 } else { 73 $client_credentials_grant_authenticator = new ClientCredentialsGrantAuthenticator($options['client_id'], $options['client_secret'], $options['token_endpoint']); 74 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($client_credentials_grant_authenticator)->build(); 86 $authenticator = new ClientCredentialsGrantAuthenticator($options['client_id'], $options['client_secret'], $options['token_endpoint']); 87 $this->vaas = Vaas::builder()->withOptions($vaas_parameters)->withAuthenticator($authenticator)->build(); 88 } 89 try { 90 $authenticator->getTokenAsync()->await(); 91 } catch (Exception $e) { 92 return \false; 75 93 } 76 94 $this->connected = \true; 95 return \true; 77 96 } 78 97 public function scan_post($data) -
gdata-antivirus/trunk/composer.json
r3249458 r3257107 1 1 { 2 2 "name": "gdatacyberdefenseag\/gdata-antivirus", 3 "version": "3.0. 1",3 "version": "3.0.2", 4 4 "autoload": { 5 5 "psr-4": { -
gdata-antivirus/trunk/composer.lock
r3249458 r3257107 90 90 { 91 91 "name": "amphp/byte-stream", 92 "version": "v2.1. 1",92 "version": "v2.1.2", 93 93 "source": { 94 94 "type": "git", 95 95 "url": "https://github.com/amphp/byte-stream.git", 96 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93"97 }, 98 "dist": { 99 "type": "zip", 100 "url": "https://api.github.com/repos/amphp/byte-stream/zipball/ daa00f2efdbd71565bf64ffefa89e37542addf93",101 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93",96 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" 97 }, 98 "dist": { 99 "type": "zip", 100 "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", 101 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", 102 102 "shasum": "" 103 103 }, … … 153 153 "support": { 154 154 "issues": "https://github.com/amphp/byte-stream/issues", 155 "source": "https://github.com/amphp/byte-stream/tree/v2.1. 1"155 "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" 156 156 }, 157 157 "funding": [ … … 161 161 } 162 162 ], 163 "time": "202 4-02-17T04:49:38+00:00"163 "time": "2025-03-16T17:10:27+00:00" 164 164 }, 165 165 { … … 542 542 { 543 543 "name": "amphp/http-client", 544 "version": "v5. 2.2",544 "version": "v5.3.0", 545 545 "source": { 546 546 "type": "git", 547 547 "url": "https://github.com/amphp/http-client.git", 548 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20"549 }, 550 "dist": { 551 "type": "zip", 552 "url": "https://api.github.com/repos/amphp/http-client/zipball/ a3e8711cb71fe909c1ae17450bfa5db652559c20",553 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20",548 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75" 549 }, 550 "dist": { 551 "type": "zip", 552 "url": "https://api.github.com/repos/amphp/http-client/zipball/d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 553 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 554 554 "shasum": "" 555 555 }, … … 628 628 "support": { 629 629 "issues": "https://github.com/amphp/http-client/issues", 630 "source": "https://github.com/amphp/http-client/tree/v5. 2.2"630 "source": "https://github.com/amphp/http-client/tree/v5.3.0" 631 631 }, 632 632 "funding": [ … … 636 636 } 637 637 ], 638 "time": "2025-0 1-12T20:02:49+00:00"638 "time": "2025-03-16T17:32:21+00:00" 639 639 }, 640 640 { … … 786 786 { 787 787 "name": "amphp/pipeline", 788 "version": "v1.2. 2",788 "version": "v1.2.3", 789 789 "source": { 790 790 "type": "git", 791 791 "url": "https://github.com/amphp/pipeline.git", 792 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4"793 }, 794 "dist": { 795 "type": "zip", 796 "url": "https://api.github.com/repos/amphp/pipeline/zipball/ 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",797 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",792 "reference": "7b52598c2e9105ebcddf247fc523161581930367" 793 }, 794 "dist": { 795 "type": "zip", 796 "url": "https://api.github.com/repos/amphp/pipeline/zipball/7b52598c2e9105ebcddf247fc523161581930367", 797 "reference": "7b52598c2e9105ebcddf247fc523161581930367", 798 798 "shasum": "" 799 799 }, … … 841 841 "support": { 842 842 "issues": "https://github.com/amphp/pipeline/issues", 843 "source": "https://github.com/amphp/pipeline/tree/v1.2. 2"843 "source": "https://github.com/amphp/pipeline/tree/v1.2.3" 844 844 }, 845 845 "funding": [ … … 849 849 } 850 850 ], 851 "time": "2025-0 1-19T15:42:46+00:00"851 "time": "2025-03-16T16:33:53+00:00" 852 852 }, 853 853 { … … 1230 1230 { 1231 1231 "name": "illuminate/container", 1232 "version": "v11.44. 0",1232 "version": "v11.44.2", 1233 1233 "source": { 1234 1234 "type": "git", … … 1281 1281 { 1282 1282 "name": "illuminate/contracts", 1283 "version": "v11.44. 0",1283 "version": "v11.44.2", 1284 1284 "source": { 1285 1285 "type": "git", … … 2930 2930 { 2931 2931 "name": "phpunit/phpunit", 2932 "version": "11.5.1 0",2932 "version": "11.5.12", 2933 2933 "source": { 2934 2934 "type": "git", 2935 2935 "url": "https://github.com/sebastianbergmann/phpunit.git", 2936 "reference": "d 5df2b32d729562ff8db634678d71085ee579006"2937 }, 2938 "dist": { 2939 "type": "zip", 2940 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d 5df2b32d729562ff8db634678d71085ee579006",2941 "reference": "d 5df2b32d729562ff8db634678d71085ee579006",2936 "reference": "d42785840519401ed2113292263795eb4c0f95da" 2937 }, 2938 "dist": { 2939 "type": "zip", 2940 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d42785840519401ed2113292263795eb4c0f95da", 2941 "reference": "d42785840519401ed2113292263795eb4c0f95da", 2942 2942 "shasum": "" 2943 2943 }, … … 2953 2953 "phar-io/version": "^3.2.1", 2954 2954 "php": ">=8.2", 2955 "phpunit/php-code-coverage": "^11.0. 8",2955 "phpunit/php-code-coverage": "^11.0.9", 2956 2956 "phpunit/php-file-iterator": "^5.1.0", 2957 2957 "phpunit/php-invoker": "^5.0.1", … … 2960 2960 "sebastian/cli-parser": "^3.0.2", 2961 2961 "sebastian/code-unit": "^3.0.2", 2962 "sebastian/comparator": "^6.3. 0",2962 "sebastian/comparator": "^6.3.1", 2963 2963 "sebastian/diff": "^6.0.2", 2964 2964 "sebastian/environment": "^7.2.0", … … 3011 3011 "issues": "https://github.com/sebastianbergmann/phpunit/issues", 3012 3012 "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 3013 "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.1 0"3013 "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.12" 3014 3014 }, 3015 3015 "funding": [ … … 3027 3027 } 3028 3028 ], 3029 "time": "2025-0 2-25T06:11:48+00:00"3029 "time": "2025-03-07T07:31:03+00:00" 3030 3030 }, 3031 3031 { … … 3201 3201 { 3202 3202 "name": "sebastian/comparator", 3203 "version": "6.3. 0",3203 "version": "6.3.1", 3204 3204 "source": { 3205 3205 "type": "git", 3206 3206 "url": "https://github.com/sebastianbergmann/comparator.git", 3207 "reference": " d4e47a769525c4dd38cea90e5dcd435ddbbc7115"3208 }, 3209 "dist": { 3210 "type": "zip", 3211 "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ d4e47a769525c4dd38cea90e5dcd435ddbbc7115",3212 "reference": " d4e47a769525c4dd38cea90e5dcd435ddbbc7115",3207 "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" 3208 }, 3209 "dist": { 3210 "type": "zip", 3211 "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 3212 "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", 3213 3213 "shasum": "" 3214 3214 }, … … 3229 3229 "extra": { 3230 3230 "branch-alias": { 3231 "dev-main": "6. 2-dev"3231 "dev-main": "6.3-dev" 3232 3232 } 3233 3233 }, … … 3269 3269 "issues": "https://github.com/sebastianbergmann/comparator/issues", 3270 3270 "security": "https://github.com/sebastianbergmann/comparator/security/policy", 3271 "source": "https://github.com/sebastianbergmann/comparator/tree/6.3. 0"3271 "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" 3272 3272 }, 3273 3273 "funding": [ … … 3277 3277 } 3278 3278 ], 3279 "time": "2025-0 1-06T10:28:19+00:00"3279 "time": "2025-03-07T06:57:01+00:00" 3280 3280 }, 3281 3281 { -
gdata-antivirus/trunk/gdata-antivirus.php
r3249458 r3257107 12 12 * @wordpress-plugin 13 13 * Plugin Name: G DATA Antivirus 14 * Version: 3.0. 114 * Version: 3.0.2 15 15 * Requires at least: 6.2 16 16 * Tested up to: 6.6 -
gdata-antivirus/trunk/vendor/amphp/byte-stream/src/ReadableIterableStream.php
r3169198 r3257107 10 10 use GDAVSCOPE\Amp\ForbidSerialization; 11 11 use GDAVSCOPE\Amp\Pipeline\ConcurrentIterator; 12 use GDAVSCOPE\Amp\Pipeline\DisposedException; 12 13 use GDAVSCOPE\Amp\Pipeline\Pipeline; 13 14 /** … … 63 64 // Read cancelled, stream did not fail. 64 65 } 66 if ($exception instanceof DisposedException) { 67 $exception = new ClosedException('Stream manually closed', previous: $exception); 68 } 65 69 throw $this->exception = $exception; 66 70 } finally { -
gdata-antivirus/trunk/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php
r3245655 r3257107 12 12 use GDAVSCOPE\Amp\Http\Client\SocketException; 13 13 use GDAVSCOPE\Amp\Http\Client\TimeoutException; 14 use GDAVSCOPE\Amp\Http\Client\TlsException; 14 15 use GDAVSCOPE\Amp\Socket; 15 16 use GDAVSCOPE\Amp\Socket\ClientTlsContext; … … 84 85 if ($tlsState !== Socket\TlsState::Disabled) { 85 86 $socket->close(); 86 throw new SocketException('Failed to setup TLS connection, connection was in an unexpected TLS state (' . $tlsState->name . ')');87 throw new TlsException('Failed to setup TLS connection, connection was in an unexpected TLS state (' . $tlsState->name . ')'); 87 88 } 88 89 $socket->setupTls(new CompositeCancellation($cancellation, new TimeoutCancellation($request->getTlsHandshakeTimeout()))); 89 90 } catch (StreamException $streamException) { 90 91 $socket->close(); 91 throw new SocketException(\sprintf("Connection to '%s' @ '%s' closed during TLS handshake", $authority, $socket->getRemoteAddress()->toString()), 0, $streamException); 92 $errorMessage = $streamException->getMessage(); 93 \preg_match('/error:[0-9a-f]*:[^:]*:[^:]*:(.+)$/i', $errorMessage, $matches); 94 $errorMessage = \trim($matches[1] ?? \explode('():', $errorMessage, 2)[1] ?? $errorMessage); 95 throw new TlsException(\sprintf("Connection to '%s' @ '%s' closed during TLS handshake: %s", $authority, $socket->getRemoteAddress()->toString(), $errorMessage), 0, $streamException); 92 96 } catch (CancelledException) { 93 97 $socket->close(); … … 100 104 if ($tlsInfo === null) { 101 105 $socket->close(); 102 throw new SocketException(\sprintf("Socket closed after TLS handshake with '%s' @ '%s'", $authority, $socket->getRemoteAddress()->toString()));106 throw new TlsException(\sprintf("Socket closed after TLS handshake with '%s' @ '%s'", $authority, $socket->getRemoteAddress()->toString())); 103 107 } 104 108 $tlsHandshakeDuration = now() - $tlsHandshakeStart; -
gdata-antivirus/trunk/vendor/amphp/http-client/src/Connection/Http1Connection.php
r3245655 r3257107 179 179 $combinedCancellation = $cancellation; 180 180 } 181 $id = $combinedCancellation->subscribe($this->close(...)); 182 try { 183 $this->writeRequest($request, $stream, $protocolVersion, $combinedCancellation); 184 return $this->readResponse($request, $cancellation, $combinedCancellation, $stream); 185 } catch (\Throwable $exception) { 186 $this->socket?->close(); 187 throw $exception; 188 } finally { 189 $combinedCancellation->unsubscribe($id); 190 $cancellation->throwIfRequested(); 191 } 181 $cancellationId = $combinedCancellation->subscribe($this->close(...)); 182 $responseDeferred = new DeferredFuture(); 183 EventLoop::queue(function () use ($responseDeferred, $request, $stream, $protocolVersion, $combinedCancellation): void { 184 try { 185 $this->writeRequest($request, $stream, $protocolVersion, $combinedCancellation); 186 } catch (\Throwable $exception) { 187 if (!$responseDeferred->isComplete()) { 188 $responseDeferred->error($exception); 189 } 190 } 191 }); 192 EventLoop::queue(function () use ($responseDeferred, $request, $stream, $cancellation, $combinedCancellation, $cancellationId): void { 193 try { 194 $response = $this->readResponse($request, $cancellation, $combinedCancellation, $stream); 195 if (!$responseDeferred->isComplete()) { 196 $responseDeferred->complete($response); 197 } 198 } catch (\Throwable $exception) { 199 $this->socket?->close(); 200 if (!$responseDeferred->isComplete()) { 201 $responseDeferred->error($exception); 202 } 203 } finally { 204 $combinedCancellation->unsubscribe($cancellationId); 205 } 206 }); 207 return $responseDeferred->getFuture()->await($cancellation); 192 208 } 193 209 private function release(): void … … 325 341 } 326 342 $originalCancellation->throwIfRequested(); 343 $readingCancellation->throwIfRequested(); 327 344 throw new SocketException(\sprintf("Receiving the response headers for '%s' failed, because the socket to '%s' @ '%s' closed early with %d bytes received within %0.3f seconds", (string) $request->getUri()->withUserInfo(''), $request->getUri()->withUserInfo('')->getAuthority(), $this->socket?->getRemoteAddress()?->toString() ?? '???', \strlen($parser->getBuffer()), now() - $start)); 328 345 } catch (HttpException $e) { … … 333 350 // Throw original cancellation if it was requested. 334 351 $originalCancellation->throwIfRequested(); 352 if ($readingCancellation->isRequested()) { 353 throw new TimeoutException('Allowed transfer timeout exceeded, took longer than ' . $request->getTransferTimeout() . ' s', 0, $e); 354 } 335 355 throw new TimeoutException('Inactivity timeout exceeded, more than ' . $timeout . ' seconds elapsed from last data received', 0, $e); 336 356 } catch (\Throwable $e) { -
gdata-antivirus/trunk/vendor/amphp/http-client/src/Connection/Internal/Http2ConnectionProcessor.php
r3245655 r3257107 271 271 EventLoop::queue(static function () use ($response, $stream): void { 272 272 try { 273 $stream->request BodyCompletion->getFuture()->await();273 $stream->requestHeaderCompletion->getFuture()->await(); 274 274 $stream->preResponseResolution?->await(); 275 275 $stream->pendingResponse?->complete($response); … … 596 596 $streamId = $this->streamId += 2; 597 597 // Client streams should be odd-numbered, starting at 1. 598 $this->streams[$streamId] = $http2stream = new Http2Stream($streamId, $request, $stream, $cancellation, $this->createStreamTransferWatcher($streamId, $request->getTransferTimeout()), $this->createStreamInactivityWatcher($streamId, $request->getInactivityTimeout()), self::DEFAULT_WINDOW_SIZE, $this->initialWindowSize); 599 $cancellationId = $cancellation->subscribe(fn(CancelledException $exception) => $this->releaseStream($streamId, $exception, \false)); 598 $this->streams[$streamId] = $http2stream = new Http2Stream(id: $streamId, request: $request, stream: $stream, cancellation: $cancellation, transferWatcher: $this->createStreamTransferWatcher($streamId, $request->getTransferTimeout()), inactivityWatcher: $this->createStreamInactivityWatcher($streamId, $request->getInactivityTimeout()), serverWindow: self::DEFAULT_WINDOW_SIZE, clientWindow: $this->initialWindowSize); 600 599 $cancellation = $http2stream->cancellation; 601 600 // Use CompositeCancellation from Http2Stream. 601 $cancellationId = $cancellation->subscribe(fn(CancelledException $exception) => $this->releaseStream($streamId, $exception, \false)); 602 602 \assert($http2stream->pendingResponse !== null); 603 603 $responseFuture = $http2stream->pendingResponse->getFuture(); 604 604 \assert($http2stream->trailers !== null); 605 605 $http2stream->trailers->getFuture()->finally(static fn() => $cancellation->unsubscribe($cancellationId))->ignore(); 606 try{606 async(function () use ($request, $stream, $http2stream, $cancellation): void { 607 607 events()->requestHeaderStart($request, $stream); 608 608 $body = $request->getBody()->getContent(); … … 615 615 $firstChunk = \array_shift($split); 616 616 $lastChunk = \array_pop($split); 617 $this->writeFrame(Http2Parser::HEADERS, Http2Parser::NO_FLAG, $streamId,$firstChunk)->ignore();617 $this->writeFrame(Http2Parser::HEADERS, stream: $http2stream->id, data: $firstChunk)->ignore(); 618 618 foreach ($split as $headerChunk) { 619 $this->writeFrame(Http2Parser::CONTINUATION, Http2Parser::NO_FLAG, $streamId,$headerChunk)->ignore();619 $this->writeFrame(Http2Parser::CONTINUATION, stream: $http2stream->id, data: $headerChunk)->ignore(); 620 620 } 621 $this->writeFrame(Http2Parser::CONTINUATION, $flag, $ streamId, $lastChunk)->await();621 $this->writeFrame(Http2Parser::CONTINUATION, $flag, $http2stream->id, $lastChunk)->await(); 622 622 } else { 623 $this->writeFrame(Http2Parser::HEADERS, $flag, $streamId, $headers)->await(); 624 } 623 $this->writeFrame(Http2Parser::HEADERS, $flag, $http2stream->id, $headers)->await(); 624 } 625 $http2stream->requestHeaderCompletion->complete(); 625 626 events()->requestHeaderEnd($request, $stream); 626 627 events()->requestBodyStart($request, $stream); … … 628 629 $http2stream->requestBodyCompletion->complete(); 629 630 } else { 630 $buffer = $chunk;631 631 $writeFuture = Future::complete(); 632 632 do { 633 $chunk = $body->read($cancellation);634 if (!isset($this->streams[$streamId])) {635 // Request stream closed, so this await will throw.636 return $responseFuture->await();637 }638 633 // Wait for prior write to complete if we've buffered too much of the request body. 639 634 if (\strlen($http2stream->requestBodyBuffer) >= self::DEFAULT_MAX_FRAME_SIZE) { 640 635 $writeFuture->await($cancellation); 641 636 } 642 if ($chunk === null) { 643 // Don't move this out of the loop, this needs to be set before calling writeData 644 $http2stream->requestBodyCompletion->complete(); 645 } 646 $writeFuture = $this->writeData($http2stream, $buffer); 637 $writeFuture = $this->writeData($http2stream, $chunk); 647 638 events()->requestBodyProgress($request, $stream); 648 $buffer = $chunk; 649 } while ($buffer !== null); 639 $chunk = $body->read($cancellation); 640 } while ($chunk !== null); 641 $http2stream->requestBodyCompletion->complete(); 650 642 $writeFuture->await($cancellation); 643 $this->writeBufferedData($http2stream)->await($cancellation); 651 644 } 652 645 events()->requestBodyEnd($request, $stream); 653 } catch (\Throwable $exception){646 })->catch(function (\Throwable $exception) use ($http2stream, $cancellation, $cancellationId): void { 654 647 $cancellation->unsubscribe($cancellationId); 655 $exception = $this->wrapException($exception, "Failed to write request (stream {$streamId}) to socket"); 648 $exception = $this->wrapException($exception, "Failed to write request (stream {$http2stream->id}) to socket"); 649 if (!$http2stream->requestHeaderCompletion->isComplete()) { 650 $http2stream->requestHeaderCompletion->error($exception); 651 } 656 652 if (!$http2stream->requestBodyCompletion->isComplete()) { 657 653 $http2stream->requestBodyCompletion->error($exception); 658 654 } 659 $this->releaseStream($ streamId, $exception, \false);660 } 655 $this->releaseStream($http2stream->id, $exception, \false); 656 }); 661 657 return $responseFuture->await(); 662 658 } … … 762 758 private function writeBufferedData(Http2Stream $stream): Future 763 759 { 764 if ($stream-> requestBodyCompletion->isComplete() && $stream->requestBodyBuffer === '') {760 if ($stream->ended) { 765 761 return Future::complete(); 766 762 } … … 782 778 if ($stream->requestBodyCompletion->isComplete()) { 783 779 $future = $this->writeFrame(Http2Parser::DATA, Http2Parser::END_STREAM, $stream->id, $stream->requestBodyBuffer); 780 $stream->ended = \true; 784 781 } else { 785 782 $future = $this->writeFrame(Http2Parser::DATA, Http2Parser::NO_FLAG, $stream->id, $stream->requestBodyBuffer); -
gdata-antivirus/trunk/vendor/amphp/http-client/src/Connection/Internal/Http2Stream.php
r3245655 r3257107 35 35 public int $received = 0; 36 36 public int $bufferSize = 0; 37 public bool $ended = \false; 37 38 public string $requestBodyBuffer = ''; 39 public readonly DeferredFuture $requestHeaderCompletion; 38 40 public readonly DeferredFuture $requestBodyCompletion; 39 41 /** @var int Integer between 1 and 256 */ … … 47 49 { 48 50 $this->pendingResponse = new DeferredFuture(); 51 $this->requestHeaderCompletion = new DeferredFuture(); 49 52 $this->requestBodyCompletion = new DeferredFuture(); 50 53 $this->body = new Queue(); -
gdata-antivirus/trunk/vendor/amphp/http-client/src/Internal/EventInvoker.php
r3245655 r3257107 126 126 { 127 127 $previousPhase = self::getPhase($request); 128 if ( $previousPhase !== Phase::RequestBody) {128 if (!\in_array($previousPhase, [Phase::RequestBody, Phase::ServerProcessing, Phase::ResponseHeaders, Phase::ResponseBody], \true)) { 129 129 throw new \Error('Invalid request phase: ' . $previousPhase->name); 130 130 } … … 134 134 { 135 135 $previousPhase = self::getPhase($request); 136 if ( $previousPhase !== Phase::RequestBody) {136 if (!\in_array($previousPhase, [Phase::RequestBody, Phase::ServerProcessing, Phase::ResponseHeaders, Phase::ResponseBody], \true)) { 137 137 throw new \Error('Invalid request phase transition from ' . $previousPhase->name . ' to ServerProcessing'); 138 138 } 139 $this->requestPhase[$request] = Phase::ServerProcessing; 139 if ($previousPhase === Phase::RequestBody) { 140 $this->requestPhase[$request] = Phase::ServerProcessing; 141 } 140 142 $this->invoke($request, fn(EventListener $eventListener) => $eventListener->requestBodyEnd($request, $stream)); 141 143 } -
gdata-antivirus/trunk/vendor/amphp/http-client/src/SocketException.php
r3169198 r3257107 4 4 namespace GDAVSCOPE\Amp\Http\Client; 5 5 6 finalclass SocketException extends HttpException6 class SocketException extends HttpException 7 7 { 8 8 } -
gdata-antivirus/trunk/vendor/amphp/pipeline/src/Internal/QueueState.php
r3245655 r3257107 307 307 } 308 308 if ($this->disposed) { 309 if (empty($this->waiting)) { 310 $this->triggerDisposal(); 311 } 309 $this->triggerDisposal(); 312 310 } else { 313 311 $this->resolvePending(); -
gdata-antivirus/trunk/vendor/composer/autoload_classmap.php
r3245655 r3257107 163 163 'GDAVSCOPE\\Amp\\Http\\Client\\StreamedContent' => $vendorDir . '/amphp/http-client/src/StreamedContent.php', 164 164 'GDAVSCOPE\\Amp\\Http\\Client\\TimeoutException' => $vendorDir . '/amphp/http-client/src/TimeoutException.php', 165 'GDAVSCOPE\\Amp\\Http\\Client\\TlsException' => $vendorDir . '/amphp/http-client/src/TlsException.php', 165 166 'GDAVSCOPE\\Amp\\Http\\Client\\Trailers' => $vendorDir . '/amphp/http-client/src/Trailers.php', 166 167 'GDAVSCOPE\\Amp\\Http\\Cookie\\CookieAttributes' => $vendorDir . '/amphp/http/src/Cookie/CookieAttributes.php', -
gdata-antivirus/trunk/vendor/composer/autoload_static.php
r3249458 r3257107 332 332 'GDAVSCOPE\\Amp\\Http\\Client\\StreamedContent' => __DIR__ . '/..' . '/amphp/http-client/src/StreamedContent.php', 333 333 'GDAVSCOPE\\Amp\\Http\\Client\\TimeoutException' => __DIR__ . '/..' . '/amphp/http-client/src/TimeoutException.php', 334 'GDAVSCOPE\\Amp\\Http\\Client\\TlsException' => __DIR__ . '/..' . '/amphp/http-client/src/TlsException.php', 334 335 'GDAVSCOPE\\Amp\\Http\\Client\\Trailers' => __DIR__ . '/..' . '/amphp/http-client/src/Trailers.php', 335 336 'GDAVSCOPE\\Amp\\Http\\Cookie\\CookieAttributes' => __DIR__ . '/..' . '/amphp/http/src/Cookie/CookieAttributes.php', -
gdata-antivirus/trunk/vendor/composer/installed.json
r3249458 r3257107 87 87 { 88 88 "name": "amphp\/byte-stream", 89 "version": "v2.1. 1",90 "version_normalized": "2.1. 1.0",89 "version": "v2.1.2", 90 "version_normalized": "2.1.2.0", 91 91 "source": { 92 92 "type": "git", 93 93 "url": "https:\/\/github.com\/amphp\/byte-stream.git", 94 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93"95 }, 96 "dist": { 97 "type": "zip", 98 "url": "https:\/\/api.github.com\/repos\/amphp\/byte-stream\/zipball\/ daa00f2efdbd71565bf64ffefa89e37542addf93",99 "reference": " daa00f2efdbd71565bf64ffefa89e37542addf93",94 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" 95 }, 96 "dist": { 97 "type": "zip", 98 "url": "https:\/\/api.github.com\/repos\/amphp\/byte-stream\/zipball\/55a6bd071aec26fa2a3e002618c20c35e3df1b46", 99 "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", 100 100 "shasum": "" 101 101 }, … … 115 115 "psalm\/phar": "5.22.1" 116 116 }, 117 "time": "202 4-02-17T04:49:38+00:00",117 "time": "2025-03-16T17:10:27+00:00", 118 118 "type": "library", 119 119 "installation-source": "dist", … … 153 153 "support": { 154 154 "issues": "https:\/\/github.com\/amphp\/byte-stream\/issues", 155 "source": "https:\/\/github.com\/amphp\/byte-stream\/tree\/v2.1. 1"155 "source": "https:\/\/github.com\/amphp\/byte-stream\/tree\/v2.1.2" 156 156 }, 157 157 "funding": [ … … 557 557 { 558 558 "name": "amphp\/http-client", 559 "version": "v5. 2.2",560 "version_normalized": "5. 2.2.0",559 "version": "v5.3.0", 560 "version_normalized": "5.3.0.0", 561 561 "source": { 562 562 "type": "git", 563 563 "url": "https:\/\/github.com\/amphp\/http-client.git", 564 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20"565 }, 566 "dist": { 567 "type": "zip", 568 "url": "https:\/\/api.github.com\/repos\/amphp\/http-client\/zipball\/ a3e8711cb71fe909c1ae17450bfa5db652559c20",569 "reference": " a3e8711cb71fe909c1ae17450bfa5db652559c20",564 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75" 565 }, 566 "dist": { 567 "type": "zip", 568 "url": "https:\/\/api.github.com\/repos\/amphp\/http-client\/zipball\/d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 569 "reference": "d50928ec41d4ac3bcec5a01fe1caaf7575cbdc75", 570 570 "shasum": "" 571 571 }, … … 604 604 "ext-zlib": "Allows using compression for response bodies." 605 605 }, 606 "time": "2025-0 1-12T20:02:49+00:00",606 "time": "2025-03-16T17:32:21+00:00", 607 607 "type": "library", 608 608 "installation-source": "dist", … … 646 646 "support": { 647 647 "issues": "https:\/\/github.com\/amphp\/http-client\/issues", 648 "source": "https:\/\/github.com\/amphp\/http-client\/tree\/v5. 2.2"648 "source": "https:\/\/github.com\/amphp\/http-client\/tree\/v5.3.0" 649 649 }, 650 650 "funding": [ … … 810 810 { 811 811 "name": "amphp\/pipeline", 812 "version": "v1.2. 2",813 "version_normalized": "1.2. 2.0",812 "version": "v1.2.3", 813 "version_normalized": "1.2.3.0", 814 814 "source": { 815 815 "type": "git", 816 816 "url": "https:\/\/github.com\/amphp\/pipeline.git", 817 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4"818 }, 819 "dist": { 820 "type": "zip", 821 "url": "https:\/\/api.github.com\/repos\/amphp\/pipeline\/zipball\/ 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",822 "reference": " 97cbf289f4d8877acfe58dd90ed5a4370a43caa4",817 "reference": "7b52598c2e9105ebcddf247fc523161581930367" 818 }, 819 "dist": { 820 "type": "zip", 821 "url": "https:\/\/api.github.com\/repos\/amphp\/pipeline\/zipball\/7b52598c2e9105ebcddf247fc523161581930367", 822 "reference": "7b52598c2e9105ebcddf247fc523161581930367", 823 823 "shasum": "" 824 824 }, … … 834 834 "psalm\/phar": "^5.18" 835 835 }, 836 "time": "2025-0 1-19T15:42:46+00:00",836 "time": "2025-03-16T16:33:53+00:00", 837 837 "type": "library", 838 838 "installation-source": "dist", … … 868 868 "support": { 869 869 "issues": "https:\/\/github.com\/amphp\/pipeline\/issues", 870 "source": "https:\/\/github.com\/amphp\/pipeline\/tree\/v1.2. 2"870 "source": "https:\/\/github.com\/amphp\/pipeline\/tree\/v1.2.3" 871 871 }, 872 872 "funding": [ … … 1275 1275 { 1276 1276 "name": "illuminate\/container", 1277 "version": "v11.44. 0",1278 "version_normalized": "11.44. 0.0",1277 "version": "v11.44.2", 1278 "version_normalized": "11.44.2.0", 1279 1279 "source": { 1280 1280 "type": "git", … … 1329 1329 { 1330 1330 "name": "illuminate\/contracts", 1331 "version": "v11.44. 0",1332 "version_normalized": "11.44. 0.0",1331 "version": "v11.44.2", 1332 "version_normalized": "11.44.2.0", 1333 1333 "source": { 1334 1334 "type": "git", -
gdata-antivirus/trunk/vendor/composer/installed.php
r3249458 r3257107 3 3 namespace GDAVSCOPE; 4 4 5 return array('root' => array('name' => 'gdatacyberdefenseag/gdata-antivirus', 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('amphp/amp' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => '7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/amp', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/byte-stream' => array('pretty_version' => 'v2.1. 1', 'version' => '2.1.1.0', 'reference' => 'daa00f2efdbd71565bf64ffefa89e37542addf93', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/byte-stream', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/cache' => array('pretty_version' => 'v2.0.1', 'version' => '2.0.1.0', 'reference' => '46912e387e6aa94933b61ea1ead9cf7540b7797c', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/cache', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/dns' => array('pretty_version' => 'v2.4.0', 'version' => '2.4.0.0', 'reference' => '78eb3db5fc69bf2fc0cb503c4fcba667bc223c71', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/dns', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/file' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '28b38a805d2c235bb581d24415e78a42cd03aedc', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/file', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/hpack' => array('pretty_version' => 'v3.2.1', 'version' => '3.2.1.0', 'reference' => '4f293064b15682a2b178b1367ddf0b8b5feb0239', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/hpack', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '3680d80bd38b5d6f3c2cef2214ca6dd6cef26588', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http-client' => array('pretty_version' => 'v5.2.2', 'version' => '5.2.2.0', 'reference' => 'a3e8711cb71fe909c1ae17450bfa5db652559c20', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parallel' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '5113111de02796a782f5d90767455e7391cca190', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parallel', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parser' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '3cf1f8b32a0171d4b1bed93d25617637a77cded7', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parser', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/pipeline' => array('pretty_version' => 'v1.2.2', 'version' => '1.2.2.0', 'reference' => '97cbf289f4d8877acfe58dd90ed5a4370a43caa4', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/pipeline', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/process' => array('pretty_version' => 'v2.0.3', 'version' => '2.0.3.0', 'reference' => '52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/process', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/serialization' => array('pretty_version' => 'v1.0.0', 'version' => '1.0.0.0', 'reference' => '693e77b2fb0b266c3c7d622317f881de44ae94a1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/serialization', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/socket' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '58e0422221825b79681b72c50c47a930be7bf1e1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/socket', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/sync' => array('pretty_version' => 'v2.3.0', 'version' => '2.3.0.0', 'reference' => '217097b785130d77cfcc58ff583cf26cd1770bf1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/sync', 'aliases' => array(), 'dev_requirement' => \false), 'daverandom/libdns' => array('pretty_version' => 'v2.1.0', 'version' => '2.1.0.0', 'reference' => 'b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a', 'type' => 'library', 'install_path' => __DIR__ . '/../daverandom/libdns', 'aliases' => array(), 'dev_requirement' => \false), 'gdata/vaas' => array('pretty_version' => '11.0.1', 'version' => '11.0.1.0', 'reference' => '32d6c8818479af4b93385277c78bda1262e6c18b', 'type' => 'library', 'install_path' => __DIR__ . '/../gdata/vaas', 'aliases' => array(), 'dev_requirement' => \false), 'gdatacyberdefenseag/gdata-antivirus' => array('pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.44.0', 'version' => '11.44.0.0', 'reference' => '4dcc3fcbab92e734fc0c08d9cfd97f5a1aef18ca', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.44.0', 'version' => '11.44.0.0', 'reference' => 'b350a3cd8450846325cb49e1cbc1293598b18898', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'kelunik/certificate' => array('pretty_version' => 'v1.1.3', 'version' => '1.1.3.0', 'reference' => '7e00d498c264d5eb4f78c69f41c8bd6719c0199e', 'type' => 'library', 'install_path' => __DIR__ . '/../kelunik/certificate', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '81fb5145d2644324614cc532b28efd0215bda430', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-components' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '4aabf0e2f2f9421ffcacab35be33e4fb5e63c44f', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-components', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-interfaces' => array('pretty_version' => '7.5.0', 'version' => '7.5.0.0', 'reference' => '08cfc6c4f3d811584fb09c37e2849e6a7f9b0742', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-interfaces', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'revolt/event-loop' => array('pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'reference' => '09bf1bf7f7f574453efe43044b06fafe12216eb3', 'type' => 'library', 'install_path' => __DIR__ . '/../revolt/event-loop', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'gdatacyberdefenseag/gdata-antivirus', 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('amphp/amp' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => '7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/amp', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/byte-stream' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '55a6bd071aec26fa2a3e002618c20c35e3df1b46', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/byte-stream', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/cache' => array('pretty_version' => 'v2.0.1', 'version' => '2.0.1.0', 'reference' => '46912e387e6aa94933b61ea1ead9cf7540b7797c', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/cache', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/dns' => array('pretty_version' => 'v2.4.0', 'version' => '2.4.0.0', 'reference' => '78eb3db5fc69bf2fc0cb503c4fcba667bc223c71', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/dns', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/file' => array('pretty_version' => 'v3.2.0', 'version' => '3.2.0.0', 'reference' => '28b38a805d2c235bb581d24415e78a42cd03aedc', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/file', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/hpack' => array('pretty_version' => 'v3.2.1', 'version' => '3.2.1.0', 'reference' => '4f293064b15682a2b178b1367ddf0b8b5feb0239', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/hpack', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http' => array('pretty_version' => 'v2.1.2', 'version' => '2.1.2.0', 'reference' => '3680d80bd38b5d6f3c2cef2214ca6dd6cef26588', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/http-client' => array('pretty_version' => 'v5.3.0', 'version' => '5.3.0.0', 'reference' => 'd50928ec41d4ac3bcec5a01fe1caaf7575cbdc75', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/http-client', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parallel' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '5113111de02796a782f5d90767455e7391cca190', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parallel', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/parser' => array('pretty_version' => 'v1.1.1', 'version' => '1.1.1.0', 'reference' => '3cf1f8b32a0171d4b1bed93d25617637a77cded7', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/parser', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/pipeline' => array('pretty_version' => 'v1.2.3', 'version' => '1.2.3.0', 'reference' => '7b52598c2e9105ebcddf247fc523161581930367', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/pipeline', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/process' => array('pretty_version' => 'v2.0.3', 'version' => '2.0.3.0', 'reference' => '52e08c09dec7511d5fbc1fb00d3e4e79fc77d58d', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/process', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/serialization' => array('pretty_version' => 'v1.0.0', 'version' => '1.0.0.0', 'reference' => '693e77b2fb0b266c3c7d622317f881de44ae94a1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/serialization', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/socket' => array('pretty_version' => 'v2.3.1', 'version' => '2.3.1.0', 'reference' => '58e0422221825b79681b72c50c47a930be7bf1e1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/socket', 'aliases' => array(), 'dev_requirement' => \false), 'amphp/sync' => array('pretty_version' => 'v2.3.0', 'version' => '2.3.0.0', 'reference' => '217097b785130d77cfcc58ff583cf26cd1770bf1', 'type' => 'library', 'install_path' => __DIR__ . '/../amphp/sync', 'aliases' => array(), 'dev_requirement' => \false), 'daverandom/libdns' => array('pretty_version' => 'v2.1.0', 'version' => '2.1.0.0', 'reference' => 'b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a', 'type' => 'library', 'install_path' => __DIR__ . '/../daverandom/libdns', 'aliases' => array(), 'dev_requirement' => \false), 'gdata/vaas' => array('pretty_version' => '11.0.1', 'version' => '11.0.1.0', 'reference' => '32d6c8818479af4b93385277c78bda1262e6c18b', 'type' => 'library', 'install_path' => __DIR__ . '/../gdata/vaas', 'aliases' => array(), 'dev_requirement' => \false), 'gdatacyberdefenseag/gdata-antivirus' => array('pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v11.44.2', 'version' => '11.44.2.0', 'reference' => '4dcc3fcbab92e734fc0c08d9cfd97f5a1aef18ca', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v11.44.2', 'version' => '11.44.2.0', 'reference' => 'b350a3cd8450846325cb49e1cbc1293598b18898', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'kelunik/certificate' => array('pretty_version' => 'v1.1.3', 'version' => '1.1.3.0', 'reference' => '7e00d498c264d5eb4f78c69f41c8bd6719c0199e', 'type' => 'library', 'install_path' => __DIR__ . '/../kelunik/certificate', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '81fb5145d2644324614cc532b28efd0215bda430', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-components' => array('pretty_version' => '7.5.1', 'version' => '7.5.1.0', 'reference' => '4aabf0e2f2f9421ffcacab35be33e4fb5e63c44f', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-components', 'aliases' => array(), 'dev_requirement' => \false), 'league/uri-interfaces' => array('pretty_version' => '7.5.0', 'version' => '7.5.0.0', 'reference' => '08cfc6c4f3d811584fb09c37e2849e6a7f9b0742', 'type' => 'library', 'install_path' => __DIR__ . '/../league/uri-interfaces', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/http-factory' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '2.0', 'version' => '2.0.0.0', 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'revolt/event-loop' => array('pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'reference' => '09bf1bf7f7f574453efe43044b06fafe12216eb3', 'type' => 'library', 'install_path' => __DIR__ . '/../revolt/event-loop', 'aliases' => array(), 'dev_requirement' => \false)));
Note: See TracChangeset
for help on using the changeset viewer.