Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
vendor /
google /
cloud-core /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
Batch
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Compute
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Exception
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iam
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iterator
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Lock
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Logger
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
LongRunning
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Report
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Testing
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Upload
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
AnonymousCredentials.php
2.4
KB
-rw-r--r--
2026-03-17 23:07
ApiHelperTrait.php
8.01
KB
-rw-r--r--
2026-03-17 23:07
ArrayTrait.php
3.45
KB
-rw-r--r--
2026-03-17 23:07
Blob.php
2.02
KB
-rw-r--r--
2026-03-17 23:07
ClientTrait.php
8.36
KB
-rw-r--r--
2026-03-17 23:07
ConcurrencyControlTrait.php
1.35
KB
-rw-r--r--
2026-03-17 23:07
DebugInfoTrait.php
1.28
KB
-rw-r--r--
2026-03-17 23:07
DetectProjectIdTrait.php
2.98
KB
-rw-r--r--
2026-03-17 23:07
Duration.php
2.1
KB
-rw-r--r--
2026-03-17 23:07
EmulatorTrait.php
2.74
KB
-rw-r--r--
2026-03-17 23:07
ExponentialBackoff.php
4.71
KB
-rw-r--r--
2026-03-17 23:07
GeoPoint.php
5.99
KB
-rw-r--r--
2026-03-17 23:07
GrpcRequestWrapper.php
4.59
KB
-rw-r--r--
2026-03-17 23:07
GrpcTrait.php
8.92
KB
-rw-r--r--
2026-03-17 23:07
InsecureCredentialsWrapper.php
982
B
-rw-r--r--
2026-03-17 23:07
Int64.php
1.7
KB
-rw-r--r--
2026-03-17 23:07
JsonTrait.php
2.15
KB
-rw-r--r--
2026-03-17 23:07
OptionsValidator.php
4
KB
-rw-r--r--
2026-03-17 23:07
PhpArray.php
7.2
KB
-rw-r--r--
2026-03-17 23:07
RequestBuilder.php
5.18
KB
-rw-r--r--
2026-03-17 23:07
RequestHandler.php
4.18
KB
-rw-r--r--
2026-03-17 23:07
RequestProcessorTrait.php
4.47
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapper.php
20.98
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapperTrait.php
6.94
KB
-rw-r--r--
2026-03-17 23:07
RestTrait.php
4.78
KB
-rw-r--r--
2026-03-17 23:07
Retry.php
3.33
KB
-rw-r--r--
2026-03-17 23:07
RetryDeciderTrait.php
2.79
KB
-rw-r--r--
2026-03-17 23:07
ServiceBuilder.php
14.2
KB
-rw-r--r--
2026-03-17 23:07
SysvTrait.php
1.81
KB
-rw-r--r--
2026-03-17 23:07
TimeTrait.php
4.46
KB
-rw-r--r--
2026-03-17 23:07
Timestamp.php
4.02
KB
-rw-r--r--
2026-03-17 23:07
TimestampTrait.php
1.53
KB
-rw-r--r--
2026-03-17 23:07
UriTrait.php
1.78
KB
-rw-r--r--
2026-03-17 23:07
ValidateTrait.php
2.27
KB
-rw-r--r--
2026-03-17 23:07
ValueMapperTrait.php
1.74
KB
-rw-r--r--
2026-03-17 23:07
WhitelistTrait.php
1.13
KB
-rw-r--r--
2026-03-17 23:07
Save
Rename
<?php /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Cloud\Core; use Google\ApiCore\CredentialsWrapper; use Google\Auth\GetUniverseDomainInterface; use Google\Cloud\Core\Exception\NotFoundException; use Google\Cloud\Core\Exception\ServiceException; use Google\Protobuf\NullValue; /** * Provides shared functionality for gRPC service implementations. */ trait GrpcTrait { use WhitelistTrait; use ArrayTrait; /** * @var GrpcRequestWrapper Wrapper used to handle sending requests to the * gRPC API. */ private $requestWrapper; /** * Sets the request wrapper. * * @param GrpcRequestWrapper $requestWrapper */ public function setRequestWrapper(GrpcRequestWrapper $requestWrapper) { $this->requestWrapper = $requestWrapper; } /** * Get the GrpcRequestWrapper. * * @return GrpcRequestWrapper|null */ public function requestWrapper() { return $this->requestWrapper; } /** * Delivers a request. * * @param callable $request * @param array $args * @param bool $whitelisted * @return \Generator|array * @throws ServiceException */ public function send(callable $request, array $args, $whitelisted = false) { $requestOptions = $this->pluckArray([ 'grpcOptions', 'retries', 'requestTimeout', 'grpcRetryFunction' ], $args[count($args) - 1]); try { return $this->requestWrapper->send($request, $args, $requestOptions); } catch (NotFoundException $e) { if ($whitelisted) { throw $this->modifyWhitelistedError($e); } throw $e; } } /** * Gets the default configuration for generated clients. * * @param string $version * @param callable|null $authHttpHandler * @param string|null $universeDomain * @return array */ private function getGaxConfig( $version, ?callable $authHttpHandler = null, ?string $universeDomain = null ) { $config = [ 'libName' => 'gccl', 'libVersion' => $version, 'transport' => 'grpc' ]; // GAX v0.32.0 introduced the CredentialsWrapper class and a different // way to configure credentials. If the class exists, use this new method // otherwise default to legacy usage. if (class_exists(CredentialsWrapper::class)) { $config['credentials'] = new CredentialsWrapper( $this->requestWrapper->getCredentialsFetcher(), $authHttpHandler, // If the universe domain hasn't been explicitly set, check the the environment variable, // otherwise assume GDU ("googleapis.com"). $universeDomain ?: getenv('GOOGLE_CLOUD_UNIVERSE_DOMAIN') ?: GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN ); } else { $config += [ 'credentialsLoader' => $this->requestWrapper->getCredentialsFetcher(), 'authHttpHandler' => $authHttpHandler, 'enableCaching' => false ]; } return $config; } use TimeTrait; /** * Format a struct for the API. * * @param array $fields * @return array */ private function formatStructForApi(array $fields) { $fFields = []; foreach ($fields as $key => $value) { $fFields[$key] = $this->formatValueForApi($value); } return ['fields' => $fFields]; } private function unpackStructFromApi(array $struct) { $vals = []; foreach ($struct['fields'] as $key => $val) { $vals[$key] = $this->unpackValue($val); } return $vals; } private function unpackValue($value) { if (count($value) > 1) { throw new \RuntimeException("Unexpected fields in struct: $value"); } foreach ($value as $setField => $setValue) { switch ($setField) { case 'listValue': $valueList = []; foreach ($setValue['values'] as $innerValue) { $valueList[] = $this->unpackValue($innerValue); } return $valueList; case 'structValue': return $this->unpackStructFromApi($value['structValue']); default: return $setValue; } } } private function flattenStruct(array $struct) { return $struct['fields']; } private function flattenValue(array $value) { if (count($value) > 1) { throw new \RuntimeException("Unexpected fields in struct: $value"); } if (isset($value['nullValue'])) { return null; } return array_pop($value); } private function flattenListValue(array $value) { return $value['values']; } /** * Format a list for the API. * * @param array $list * @return array */ private function formatListForApi(array $list) { $values = []; foreach ($list as $value) { $values[] = $this->formatValueForApi($value); } return ['values' => $values]; } /** * Format a value for the API. * * @param mixed $value * @return array */ private function formatValueForApi($value) { $type = gettype($value); switch ($type) { case 'string': return ['string_value' => $value]; case 'double': case 'integer': return ['number_value' => $value]; case 'boolean': return ['bool_value' => $value]; case 'NULL': return ['null_value' => NullValue::NULL_VALUE]; case 'array': if (!empty($value) && $this->isAssoc($value)) { return ['struct_value' => $this->formatStructForApi($value)]; } return ['list_value' => $this->formatListForApi($value)]; } return []; } /** * Format a gRPC timestamp to match the format returned by the REST API. * * @param array $timestamp * @return string */ private function formatTimestampFromApi(array $timestamp) { $timestamp += [ 'seconds' => 0, 'nanos' => 0 ]; $dt = $this->createDateTimeFromSeconds($timestamp['seconds']); return $this->formatTimeAsString($dt, $timestamp['nanos']); } /** * Format a timestamp for the API with nanosecond precision. * * @param string $value * @return array */ private function formatTimestampForApi($value) { list($dt, $nanos) = $this->parseTimeString($value); return [ 'seconds' => (int) $dt->format('U'), 'nanos' => (int) $nanos ]; } /** * Format a duration for the API. * * @param string|mixed $value * @return array */ private function formatDurationForApi($value) { if (is_string($value)) { $d = explode('.', trim($value, 's')); if (count($d) < 2) { $seconds = $d[0]; $nanos = 0; } else { $seconds = (int) $d[0]; $nanos = $this->convertFractionToNanoSeconds($d[1]); } } elseif ($value instanceof Duration) { $d = $value->get(); $seconds = $d['seconds']; $nanos = $d['nanos']; } return [ 'seconds' => $seconds, 'nanos' => $nanos ]; } /** * Format a duration from the API * * @param array $value * @return string */ private function formatDurationFromApi($value): string { $seconds = $value['seconds']; $nanos = str_pad($value['nanos'], 9, 0, STR_PAD_LEFT); return "{$seconds}.{$nanos}s"; } /** * Construct a gapic client. Allows for tests to intercept. * * @param string $gapicName * @param array $config * @return mixed */ protected function constructGapic($gapicName, array $config) { return new $gapicName($config); } }