Compare commits
36 Commits
master
...
fix_protob
| Author | SHA1 | Date |
|---|---|---|
|
|
e428bc75ef | |
|
|
c6c1c6a507 | |
|
|
e1c48acce6 | |
|
|
de66d2161b | |
|
|
c2aa95dc6e | |
|
|
e69454cd94 | |
|
|
4fa5a3daab | |
|
|
15e95ad2a3 | |
|
|
8626f0caee | |
|
|
eb17c571db | |
|
|
5ddbb02ccd | |
|
|
93b15e3647 | |
|
|
1f5e571ab0 | |
|
|
c1a25d016b | |
|
|
0e113e3246 | |
|
|
459e3e16f0 | |
|
|
b574253085 | |
|
|
8afc137f61 | |
|
|
f233c2fc36 | |
|
|
05ce571f04 | |
|
|
3147bb8bec | |
|
|
65d4dff416 | |
|
|
ee57fd9e0e | |
|
|
114263530e | |
|
|
62f12eb488 | |
|
|
411e74a818 | |
|
|
d72503be6f | |
|
|
c2386ad510 | |
|
|
d31cd38fdd | |
|
|
8fc189d725 | |
|
|
74bbbdd1f0 | |
|
|
ad582f45f8 | |
|
|
a9c0e357b9 | |
|
|
94acf8c234 | |
|
|
c650280ce0 | |
|
|
dadf64d407 |
|
|
@ -14,12 +14,10 @@ third_party/envoy-api
|
|||
third_party/googleapis
|
||||
third_party/googletest
|
||||
third_party/opencensus-proto
|
||||
third_party/opentelemetry-cpp
|
||||
third_party/protobuf
|
||||
third_party/protoc-gen-validate
|
||||
third_party/re2
|
||||
third_party/upb
|
||||
third_party/utf8_range
|
||||
third_party/xds
|
||||
|
||||
test/distrib/bazel/cpp
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7.1.0
|
||||
6.4.0
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ DerivePointerAlignment: false
|
|||
PointerAlignment: Left
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
# port_platform.h is before almost everything
|
||||
- Regex: '^<grpc/(support|impl/codegen)/port_platform.h>'
|
||||
Priority: -100
|
||||
# ruby.h is even more first if it's included
|
||||
- Regex: '^<ruby/ruby.h>'
|
||||
Priority: -200
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
# - bugprone-not-null-terminated-result
|
||||
# - bugprone-signed-char-misuse
|
||||
# - bugprone-sizeof-expression
|
||||
# - bugprone-switch-missing-default-case
|
||||
# - bugprone-too-small-loop-variable
|
||||
# - bugprone-unchecked-optional-access
|
||||
# - clang-diagnostic-deprecated-declarations
|
||||
|
|
@ -51,10 +50,8 @@
|
|||
# - modernize-use-equals-default
|
||||
# - modernize-use-equals-delete
|
||||
# - modernize-use-using
|
||||
# - performance-avoid-endl
|
||||
# - performance-no-automatic-move
|
||||
# - performance-no-int-to-ptr
|
||||
# - performance-noexcept-swap
|
||||
# - performance-unnecessary-copy-initialization
|
||||
# - performance-unnecessary-value-param
|
||||
# - readability-else-after-return
|
||||
|
|
@ -70,7 +67,6 @@ Checks: '-*,
|
|||
-bugprone-assignment-in-if-condition,
|
||||
-bugprone-branch-clone,
|
||||
-bugprone-easily-swappable-parameters,
|
||||
-bugprone-empty-catch,
|
||||
-bugprone-exception-escape,
|
||||
-bugprone-implicit-widening-of-multiplication-result,
|
||||
-bugprone-infinite-loop,
|
||||
|
|
@ -79,7 +75,6 @@ Checks: '-*,
|
|||
-bugprone-reserved-identifier,
|
||||
-bugprone-signed-char-misuse,
|
||||
-bugprone-sizeof-expression,
|
||||
-bugprone-switch-missing-default-case,
|
||||
-bugprone-too-small-loop-variable,
|
||||
-bugprone-unchecked-optional-access,
|
||||
google-*,
|
||||
|
|
@ -87,10 +82,8 @@ Checks: '-*,
|
|||
-google-runtime-int,
|
||||
-google-runtime-references,
|
||||
performance-*,
|
||||
-performance-avoid-endl,
|
||||
-performance-no-automatic-move,
|
||||
-performance-no-int-to-ptr,
|
||||
-performance-noexcept-swap,
|
||||
-performance-unnecessary-copy-initialization,
|
||||
-performance-unnecessary-value-param,
|
||||
clang-diagnostic-deprecated-declarations,
|
||||
|
|
|
|||
|
|
@ -12,8 +12,10 @@ gRPC-ProtoRPC.podspec linguist-generated=true
|
|||
gRPC-RxLibrary.podspec linguist-generated=true
|
||||
gRPC.podspec linguist-generated=true
|
||||
grpc.gemspec linguist-generated=true
|
||||
grpc.gyp linguist-generated=true
|
||||
grpc.def linguist-generated=true
|
||||
package.xml linguist-generated=true
|
||||
binding.gyp linguist-generated=true
|
||||
Package.swift linguist-generated=true
|
||||
src/python/grpcio/grpc_core_dependencies.py linguist-generated=true
|
||||
src/ruby/ext/grpc/rb_grpc_imports.generated.h linguist-generated=true
|
||||
|
|
@ -29,13 +31,9 @@ tools/run_tests/tests.json linguist-generated=true
|
|||
tools/run_tests/generated/tests.json linguist-generated=true
|
||||
tools/run_tests/generated/sources_and_headers.json linguist-generated=true
|
||||
src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h linguist-generated=true
|
||||
src/core/telemetry/stats_data.h linguist-generated=true
|
||||
src/core/telemetry/stats_data.cc linguist-generated=true
|
||||
src/core/lib/debug/stats_data.h linguist-generated=true
|
||||
src/core/lib/debug/stats_data.cc linguist-generated=true
|
||||
src/core/lib/experiments/experiments.h linguist-generated=true
|
||||
src/core/lib/experiments/experiments.cc linguist-generated=true
|
||||
bazel/experiments.bzl linguist-generated=true
|
||||
test/cpp/microbenchmarks/huffman_geometries/** linguist-generated=true
|
||||
doc/trace_flags.md linguist-generated=true
|
||||
src/core/lib/debug/trace_flags.h linguist-generated=true
|
||||
src/core/lib/debug/trace_flags.cc linguist-generated=true
|
||||
src/python/grpcio_observability/observability_lib_deps.py linguist-generated=true
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
/**/OWNERS @markdroth @a11r
|
||||
/bazel/** @veblush @gnossen
|
||||
/bazel/experiments.yaml
|
||||
/cmake/** @veblush @apolcyn
|
||||
/src/core/client_channel/** @markdroth
|
||||
/src/core/ext/filters/client_channel/** @markdroth
|
||||
/src/core/ext/transport/chttp2/transport/** @ctiller
|
||||
/src/core/load_balancing/** @markdroth
|
||||
/src/core/resolver/** @markdroth
|
||||
/src/core/server/xds* @markdroth
|
||||
/src/core/service_config/** @markdroth
|
||||
/src/core/xds/** @markdroth
|
||||
/src/core/ext/xds/** @markdroth
|
||||
/src/core/lib/resolver/** @markdroth
|
||||
/src/core/lib/service_config/** @markdroth
|
||||
/tools/dockerfile/** @drfloob @apolcyn @gnossen
|
||||
/tools/run_tests/xds_k8s_test_driver/** @sergiitk @XuanWang-Amos @gnossen
|
||||
|
|
|
|||
|
|
@ -1,65 +1,54 @@
|
|||
lang/core:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- src/abseil-cpp/**
|
||||
- src/boringssl/**
|
||||
- src/c-ares/**
|
||||
- src/core/**
|
||||
- src/proto/**
|
||||
- src/re2/**
|
||||
- src/upb/**
|
||||
- src/zlib/**
|
||||
- include/grpc/**
|
||||
- test/core/**
|
||||
- tools/codegen/core/**
|
||||
- src/abseil-cpp/**
|
||||
- src/boringssl/**
|
||||
- src/c-ares/**
|
||||
- src/core/**
|
||||
- src/proto/**
|
||||
- src/re2/**
|
||||
- src/upb/**
|
||||
- src/zlib/**
|
||||
- include/grpc/**
|
||||
- test/core/**
|
||||
- tools/codegen/core/**
|
||||
|
||||
lang/c++:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/cpp/**
|
||||
- src/cpp/**
|
||||
- include/grpc++/**
|
||||
- include/grpcpp/**
|
||||
- test/cpp/**
|
||||
- examples/cpp/**
|
||||
- src/cpp/**
|
||||
- include/grpc++/**
|
||||
- include/grpcpp/**
|
||||
- test/cpp/**
|
||||
|
||||
area/infra:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/**
|
||||
- .github/**
|
||||
|
||||
lang/node:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/node/**
|
||||
- src/compiler/node*
|
||||
- examples/node/**
|
||||
- src/compiler/node*
|
||||
|
||||
lang/ObjC:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/objective-c/**
|
||||
- src/compiler/objective_c*
|
||||
- src/objective-c/**
|
||||
- examples/objective-c/**
|
||||
- src/compiler/objective_c*
|
||||
- src/objective-c/**
|
||||
|
||||
lang/php:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/php/**
|
||||
- src/compiler/php*
|
||||
- src/php/**
|
||||
- examples/php/**
|
||||
- src/compiler/php*
|
||||
- src/php/**
|
||||
|
||||
lang/python:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- bazel/python_rules.bzl
|
||||
- examples/python/**
|
||||
- requirements.bazel.txt
|
||||
- src/compiler/python*
|
||||
- all-globs-to-any-file:
|
||||
- src/python/**
|
||||
- '!src/python/grpcio/grpc_core_dependencies.py'
|
||||
- '!src/python/grpcio_observability/observability_lib_deps.py'
|
||||
- bazel/python_rules.bzl
|
||||
- examples/python/**
|
||||
- requirements.bazel.txt
|
||||
- src/compiler/python*
|
||||
- any:
|
||||
- src/python/**
|
||||
- "!src/python/grpcio/grpc_core_dependencies.py"
|
||||
|
||||
lang/ruby:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- examples/ruby/**
|
||||
- src/compiler/ruby*
|
||||
- src/ruby/**
|
||||
'lang/C#':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- src/compiler/csharp*
|
||||
- src/csharp/**
|
||||
- examples/ruby/**
|
||||
- src/compiler/ruby*
|
||||
- src/ruby/**
|
||||
|
||||
"lang/C#":
|
||||
- src/compiler/csharp*
|
||||
- src/csharp/**
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ jobs:
|
|||
with:
|
||||
format: YYYYWWd
|
||||
- name: Cache bazel
|
||||
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
||||
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2
|
||||
env:
|
||||
cache-name: bazel-cache
|
||||
with:
|
||||
path: ~/.cache/bazel
|
||||
# formattedTime here is like 2021323 - the year concatenated with the week then
|
||||
# the day of that week.
|
||||
# As this changes every day, we cycle to a new cache once per day, with lookup
|
||||
# As this changes every day, we cycle to a new cache once per day, with lookup
|
||||
# across the week (and then the year).
|
||||
key: ${{ runner.os }}-${{ steps.current-time-with-day.outputs.formattedTime }}
|
||||
restore-keys: |
|
||||
|
|
@ -38,23 +38,23 @@ jobs:
|
|||
# Cancel current runs if they're still running
|
||||
# (saves processing on fast pushes)
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # 0.12.1
|
||||
uses: styfle/cancel-workflow-action@01ce38bf961b4e243a6342cbade0dbc8ba3f0432 # 0.12.0
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
# Allow opt-out for some users
|
||||
- name: Should I Stay Or Should I Go
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@e69ef5462fd455e02edcaf4dd7708eda96b9eda0 # v7.0.0
|
||||
id: check
|
||||
with:
|
||||
script: |
|
||||
// If you'd like not to run this code on your commits, add your github user id here:
|
||||
const NO_AUTOFIX_USERS = ["copybara-service[bot]"];
|
||||
const { owner, repo } = context.repo;
|
||||
NO_AUTOFIX_USERS = ["copybara-service[bot]"]
|
||||
const { owner, repo } = context.repo
|
||||
console.log("Actor: " + context.actor);
|
||||
if (NO_AUTOFIX_USERS.includes(context.actor)) {
|
||||
console.log('Cancelling');
|
||||
const run_id = "${{ github.run_id }}";
|
||||
await github.rest.actions.cancelWorkflowRun({ owner, repo, run_id });
|
||||
await github.actions.cancelWorkflowRun({ owner, repo, run_id });
|
||||
return 'go';
|
||||
} else {
|
||||
return 'stay';
|
||||
|
|
@ -66,7 +66,7 @@ jobs:
|
|||
run: test "${{ steps.check.outputs.result }}" = "stay"
|
||||
# Setup to run sanity suite
|
||||
- name: Install Python Interpreter
|
||||
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
|
||||
uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install Python Packages
|
||||
|
|
@ -75,7 +75,7 @@ jobs:
|
|||
sudo apt-get update
|
||||
sudo apt-get install python3-dev
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
with:
|
||||
submodules: True
|
||||
- name: Get the upstream code
|
||||
|
|
@ -90,7 +90,7 @@ jobs:
|
|||
run: ANDROID_NDK_HOME= ${{ github.workspace }}/tools/distrib/sanitize.sh
|
||||
# Report back with a PR if things are broken
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e # v6.0.5
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2
|
||||
with:
|
||||
delete-branch: true
|
||||
branch-suffix: short-commit-hash
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
|
||||
- uses: actions/labeler@ac9175f8a1f3625fd0d4fb234536d26811351594 # v4.3.0
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
sync-labels: false
|
||||
sync-labels: ""
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
name: PSM Interop
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
unittest:
|
||||
# By default, only version is printed out in parens, e.g. "unittest (3.10)"
|
||||
# This changes it to "unittest (python3.10)"
|
||||
name: "unittest (python${{ matrix.python_version }})"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python_version: ["3.9", "3.10", "3.11"]
|
||||
fail-fast: false
|
||||
permissions:
|
||||
pull-requests: read # Used by paths-filter to read the diff.
|
||||
defaults:
|
||||
run:
|
||||
working-directory: 'tools/run_tests/xds_k8s_test_driver'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||
|
||||
# To add this job to required GitHub checks, it's not enough to use
|
||||
# the on.pull_request.paths filter. For required checks, the job needs to
|
||||
# return the success status, and not be skipped.
|
||||
# Using paths-filter action, we skip the setup/test steps when psm interop
|
||||
# files are unchanged, and the job returns success.
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: paths_filter
|
||||
with:
|
||||
filters: |
|
||||
psm_interop_src:
|
||||
- 'tools/run_tests/xds_k8s_test_driver/**'
|
||||
- 'src/proto/grpc/testing/empty.proto'
|
||||
- 'src/proto/grpc/testing/messages.proto'
|
||||
- 'src/proto/grpc/testing/test.proto'
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4.7.1
|
||||
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
|
||||
with:
|
||||
python-version: "${{ matrix.python_version }}"
|
||||
cache: 'pip'
|
||||
cache-dependency-path: 'tools/run_tests/xds_k8s_test_driver/requirements.lock'
|
||||
|
||||
- name: "Install requirements"
|
||||
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
|
||||
run: |
|
||||
pip list
|
||||
pip install --upgrade pip setuptools
|
||||
pip list
|
||||
pip install -r requirements.lock
|
||||
pip list
|
||||
|
||||
- name: "Generate protos"
|
||||
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
|
||||
run: >
|
||||
python -m grpc_tools.protoc --proto_path=../../../
|
||||
--python_out=. --grpc_python_out=.
|
||||
src/proto/grpc/testing/empty.proto
|
||||
src/proto/grpc/testing/messages.proto
|
||||
src/proto/grpc/testing/test.proto
|
||||
|
||||
- name: "Run unit tests"
|
||||
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
|
||||
run: python -m tests.unit
|
||||
|
|
@ -47,6 +47,3 @@
|
|||
# generated file that makes Git consider the submodule dirty. This
|
||||
# state can be ignored for day-to-day development on gRPC.
|
||||
ignore = dirty
|
||||
[submodule "third_party/opentelemetry-cpp"]
|
||||
path = third_party/opentelemetry-cpp
|
||||
url = https://github.com/open-telemetry/opentelemetry-cpp
|
||||
|
|
|
|||
|
|
@ -1,323 +0,0 @@
|
|||
// swift-tools-version:5.5
|
||||
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
||||
import PackageDescription
|
||||
import Foundation
|
||||
|
||||
let basePath = "third_party/boringssl-with-bazel"
|
||||
let privacyInfoPath = "../../src/objective-c/PrivacyInfo.xcprivacy"
|
||||
let testPath = "test/boringssl_spm_build"
|
||||
|
||||
|
||||
|
||||
let package = Package(
|
||||
name: "BoringSSL-GRPC",
|
||||
products: [
|
||||
.library(
|
||||
name: "openssl_grpc",
|
||||
targets: ["openssl_grpc"]
|
||||
)
|
||||
],
|
||||
|
||||
targets: [
|
||||
.target(
|
||||
name: "openssl_grpc",
|
||||
path: basePath,
|
||||
exclude: [
|
||||
],
|
||||
|
||||
sources: [
|
||||
"src/crypto/asn1/a_bitstr.c",
|
||||
"src/crypto/asn1/a_bool.c",
|
||||
"src/crypto/asn1/a_d2i_fp.c",
|
||||
"src/crypto/asn1/a_dup.c",
|
||||
"src/crypto/asn1/a_gentm.c",
|
||||
"src/crypto/asn1/a_i2d_fp.c",
|
||||
"src/crypto/asn1/a_int.c",
|
||||
"src/crypto/asn1/a_mbstr.c",
|
||||
"src/crypto/asn1/a_object.c",
|
||||
"src/crypto/asn1/a_octet.c",
|
||||
"src/crypto/asn1/a_strex.c",
|
||||
"src/crypto/asn1/a_strnid.c",
|
||||
"src/crypto/asn1/a_time.c",
|
||||
"src/crypto/asn1/a_type.c",
|
||||
"src/crypto/asn1/a_utctm.c",
|
||||
"src/crypto/asn1/asn1_lib.c",
|
||||
"src/crypto/asn1/asn1_par.c",
|
||||
"src/crypto/asn1/asn_pack.c",
|
||||
"src/crypto/asn1/f_int.c",
|
||||
"src/crypto/asn1/f_string.c",
|
||||
"src/crypto/asn1/posix_time.c",
|
||||
"src/crypto/asn1/tasn_dec.c",
|
||||
"src/crypto/asn1/tasn_enc.c",
|
||||
"src/crypto/asn1/tasn_fre.c",
|
||||
"src/crypto/asn1/tasn_new.c",
|
||||
"src/crypto/asn1/tasn_typ.c",
|
||||
"src/crypto/asn1/tasn_utl.c",
|
||||
"src/crypto/base64/base64.c",
|
||||
"src/crypto/bio/bio.c",
|
||||
"src/crypto/bio/bio_mem.c",
|
||||
"src/crypto/bio/connect.c",
|
||||
"src/crypto/bio/errno.c",
|
||||
"src/crypto/bio/fd.c",
|
||||
"src/crypto/bio/file.c",
|
||||
"src/crypto/bio/hexdump.c",
|
||||
"src/crypto/bio/pair.c",
|
||||
"src/crypto/bio/printf.c",
|
||||
"src/crypto/bio/socket.c",
|
||||
"src/crypto/bio/socket_helper.c",
|
||||
"src/crypto/blake2/blake2.c",
|
||||
"src/crypto/bn_extra/bn_asn1.c",
|
||||
"src/crypto/bn_extra/convert.c",
|
||||
"src/crypto/buf/buf.c",
|
||||
"src/crypto/bytestring/asn1_compat.c",
|
||||
"src/crypto/bytestring/ber.c",
|
||||
"src/crypto/bytestring/cbb.c",
|
||||
"src/crypto/bytestring/cbs.c",
|
||||
"src/crypto/bytestring/unicode.c",
|
||||
"src/crypto/chacha/chacha.c",
|
||||
"src/crypto/cipher_extra/cipher_extra.c",
|
||||
"src/crypto/cipher_extra/derive_key.c",
|
||||
"src/crypto/cipher_extra/e_aesctrhmac.c",
|
||||
"src/crypto/cipher_extra/e_aesgcmsiv.c",
|
||||
"src/crypto/cipher_extra/e_chacha20poly1305.c",
|
||||
"src/crypto/cipher_extra/e_des.c",
|
||||
"src/crypto/cipher_extra/e_null.c",
|
||||
"src/crypto/cipher_extra/e_rc2.c",
|
||||
"src/crypto/cipher_extra/e_rc4.c",
|
||||
"src/crypto/cipher_extra/e_tls.c",
|
||||
"src/crypto/cipher_extra/tls_cbc.c",
|
||||
"src/crypto/conf/conf.c",
|
||||
"src/crypto/cpu_aarch64_apple.c",
|
||||
"src/crypto/cpu_aarch64_fuchsia.c",
|
||||
"src/crypto/cpu_aarch64_linux.c",
|
||||
"src/crypto/cpu_aarch64_openbsd.c",
|
||||
"src/crypto/cpu_aarch64_sysreg.c",
|
||||
"src/crypto/cpu_aarch64_win.c",
|
||||
"src/crypto/cpu_arm_freebsd.c",
|
||||
"src/crypto/cpu_arm_linux.c",
|
||||
"src/crypto/cpu_intel.c",
|
||||
"src/crypto/crypto.c",
|
||||
"src/crypto/curve25519/curve25519.c",
|
||||
"src/crypto/curve25519/curve25519_64_adx.c",
|
||||
"src/crypto/curve25519/spake25519.c",
|
||||
"src/crypto/des/des.c",
|
||||
"src/crypto/dh_extra/dh_asn1.c",
|
||||
"src/crypto/dh_extra/params.c",
|
||||
"src/crypto/digest_extra/digest_extra.c",
|
||||
"src/crypto/dilithium/dilithium.c",
|
||||
"src/crypto/dsa/dsa.c",
|
||||
"src/crypto/dsa/dsa_asn1.c",
|
||||
"src/crypto/ec_extra/ec_asn1.c",
|
||||
"src/crypto/ec_extra/ec_derive.c",
|
||||
"src/crypto/ec_extra/hash_to_curve.c",
|
||||
"src/crypto/ecdh_extra/ecdh_extra.c",
|
||||
"src/crypto/ecdsa_extra/ecdsa_asn1.c",
|
||||
"src/crypto/engine/engine.c",
|
||||
"src/crypto/err/err.c",
|
||||
"src/crypto/evp/evp.c",
|
||||
"src/crypto/evp/evp_asn1.c",
|
||||
"src/crypto/evp/evp_ctx.c",
|
||||
"src/crypto/evp/p_dh.c",
|
||||
"src/crypto/evp/p_dh_asn1.c",
|
||||
"src/crypto/evp/p_dsa_asn1.c",
|
||||
"src/crypto/evp/p_ec.c",
|
||||
"src/crypto/evp/p_ec_asn1.c",
|
||||
"src/crypto/evp/p_ed25519.c",
|
||||
"src/crypto/evp/p_ed25519_asn1.c",
|
||||
"src/crypto/evp/p_hkdf.c",
|
||||
"src/crypto/evp/p_rsa.c",
|
||||
"src/crypto/evp/p_rsa_asn1.c",
|
||||
"src/crypto/evp/p_x25519.c",
|
||||
"src/crypto/evp/p_x25519_asn1.c",
|
||||
"src/crypto/evp/pbkdf.c",
|
||||
"src/crypto/evp/print.c",
|
||||
"src/crypto/evp/scrypt.c",
|
||||
"src/crypto/evp/sign.c",
|
||||
"src/crypto/ex_data.c",
|
||||
"src/crypto/fipsmodule/bcm.c",
|
||||
"src/crypto/fipsmodule/fips_shared_support.c",
|
||||
"src/crypto/hpke/hpke.c",
|
||||
"src/crypto/hrss/hrss.c",
|
||||
"src/crypto/keccak/keccak.c",
|
||||
"src/crypto/kyber/kyber.c",
|
||||
"src/crypto/lhash/lhash.c",
|
||||
"src/crypto/mem.c",
|
||||
"src/crypto/obj/obj.c",
|
||||
"src/crypto/obj/obj_xref.c",
|
||||
"src/crypto/pem/pem_all.c",
|
||||
"src/crypto/pem/pem_info.c",
|
||||
"src/crypto/pem/pem_lib.c",
|
||||
"src/crypto/pem/pem_oth.c",
|
||||
"src/crypto/pem/pem_pk8.c",
|
||||
"src/crypto/pem/pem_pkey.c",
|
||||
"src/crypto/pem/pem_x509.c",
|
||||
"src/crypto/pem/pem_xaux.c",
|
||||
"src/crypto/pkcs7/pkcs7.c",
|
||||
"src/crypto/pkcs7/pkcs7_x509.c",
|
||||
"src/crypto/pkcs8/p5_pbev2.c",
|
||||
"src/crypto/pkcs8/pkcs8.c",
|
||||
"src/crypto/pkcs8/pkcs8_x509.c",
|
||||
"src/crypto/poly1305/poly1305.c",
|
||||
"src/crypto/poly1305/poly1305_arm.c",
|
||||
"src/crypto/poly1305/poly1305_vec.c",
|
||||
"src/crypto/pool/pool.c",
|
||||
"src/crypto/rand_extra/deterministic.c",
|
||||
"src/crypto/rand_extra/forkunsafe.c",
|
||||
"src/crypto/rand_extra/getentropy.c",
|
||||
"src/crypto/rand_extra/ios.c",
|
||||
"src/crypto/rand_extra/passive.c",
|
||||
"src/crypto/rand_extra/rand_extra.c",
|
||||
"src/crypto/rand_extra/trusty.c",
|
||||
"src/crypto/rand_extra/windows.c",
|
||||
"src/crypto/rc4/rc4.c",
|
||||
"src/crypto/refcount.c",
|
||||
"src/crypto/rsa_extra/rsa_asn1.c",
|
||||
"src/crypto/rsa_extra/rsa_crypt.c",
|
||||
"src/crypto/rsa_extra/rsa_print.c",
|
||||
"src/crypto/siphash/siphash.c",
|
||||
"src/crypto/spx/address.c",
|
||||
"src/crypto/spx/fors.c",
|
||||
"src/crypto/spx/merkle.c",
|
||||
"src/crypto/spx/spx.c",
|
||||
"src/crypto/spx/spx_util.c",
|
||||
"src/crypto/spx/thash.c",
|
||||
"src/crypto/spx/wots.c",
|
||||
"src/crypto/stack/stack.c",
|
||||
"src/crypto/thread.c",
|
||||
"src/crypto/thread_none.c",
|
||||
"src/crypto/thread_pthread.c",
|
||||
"src/crypto/thread_win.c",
|
||||
"src/crypto/trust_token/pmbtoken.c",
|
||||
"src/crypto/trust_token/trust_token.c",
|
||||
"src/crypto/trust_token/voprf.c",
|
||||
"src/crypto/x509/a_digest.c",
|
||||
"src/crypto/x509/a_sign.c",
|
||||
"src/crypto/x509/a_verify.c",
|
||||
"src/crypto/x509/algorithm.c",
|
||||
"src/crypto/x509/asn1_gen.c",
|
||||
"src/crypto/x509/by_dir.c",
|
||||
"src/crypto/x509/by_file.c",
|
||||
"src/crypto/x509/i2d_pr.c",
|
||||
"src/crypto/x509/name_print.c",
|
||||
"src/crypto/x509/policy.c",
|
||||
"src/crypto/x509/rsa_pss.c",
|
||||
"src/crypto/x509/t_crl.c",
|
||||
"src/crypto/x509/t_req.c",
|
||||
"src/crypto/x509/t_x509.c",
|
||||
"src/crypto/x509/t_x509a.c",
|
||||
"src/crypto/x509/v3_akey.c",
|
||||
"src/crypto/x509/v3_akeya.c",
|
||||
"src/crypto/x509/v3_alt.c",
|
||||
"src/crypto/x509/v3_bcons.c",
|
||||
"src/crypto/x509/v3_bitst.c",
|
||||
"src/crypto/x509/v3_conf.c",
|
||||
"src/crypto/x509/v3_cpols.c",
|
||||
"src/crypto/x509/v3_crld.c",
|
||||
"src/crypto/x509/v3_enum.c",
|
||||
"src/crypto/x509/v3_extku.c",
|
||||
"src/crypto/x509/v3_genn.c",
|
||||
"src/crypto/x509/v3_ia5.c",
|
||||
"src/crypto/x509/v3_info.c",
|
||||
"src/crypto/x509/v3_int.c",
|
||||
"src/crypto/x509/v3_lib.c",
|
||||
"src/crypto/x509/v3_ncons.c",
|
||||
"src/crypto/x509/v3_ocsp.c",
|
||||
"src/crypto/x509/v3_pcons.c",
|
||||
"src/crypto/x509/v3_pmaps.c",
|
||||
"src/crypto/x509/v3_prn.c",
|
||||
"src/crypto/x509/v3_purp.c",
|
||||
"src/crypto/x509/v3_skey.c",
|
||||
"src/crypto/x509/v3_utl.c",
|
||||
"src/crypto/x509/x509.c",
|
||||
"src/crypto/x509/x509_att.c",
|
||||
"src/crypto/x509/x509_cmp.c",
|
||||
"src/crypto/x509/x509_d2.c",
|
||||
"src/crypto/x509/x509_def.c",
|
||||
"src/crypto/x509/x509_ext.c",
|
||||
"src/crypto/x509/x509_lu.c",
|
||||
"src/crypto/x509/x509_obj.c",
|
||||
"src/crypto/x509/x509_req.c",
|
||||
"src/crypto/x509/x509_set.c",
|
||||
"src/crypto/x509/x509_trs.c",
|
||||
"src/crypto/x509/x509_txt.c",
|
||||
"src/crypto/x509/x509_v3.c",
|
||||
"src/crypto/x509/x509_vfy.c",
|
||||
"src/crypto/x509/x509_vpm.c",
|
||||
"src/crypto/x509/x509cset.c",
|
||||
"src/crypto/x509/x509name.c",
|
||||
"src/crypto/x509/x509rset.c",
|
||||
"src/crypto/x509/x509spki.c",
|
||||
"src/crypto/x509/x_algor.c",
|
||||
"src/crypto/x509/x_all.c",
|
||||
"src/crypto/x509/x_attrib.c",
|
||||
"src/crypto/x509/x_crl.c",
|
||||
"src/crypto/x509/x_exten.c",
|
||||
"src/crypto/x509/x_name.c",
|
||||
"src/crypto/x509/x_pubkey.c",
|
||||
"src/crypto/x509/x_req.c",
|
||||
"src/crypto/x509/x_sig.c",
|
||||
"src/crypto/x509/x_spki.c",
|
||||
"src/crypto/x509/x_val.c",
|
||||
"src/crypto/x509/x_x509.c",
|
||||
"src/crypto/x509/x_x509a.c",
|
||||
"src/gen/crypto/err_data.c",
|
||||
"src/ssl/bio_ssl.cc",
|
||||
"src/ssl/d1_both.cc",
|
||||
"src/ssl/d1_lib.cc",
|
||||
"src/ssl/d1_pkt.cc",
|
||||
"src/ssl/d1_srtp.cc",
|
||||
"src/ssl/dtls_method.cc",
|
||||
"src/ssl/dtls_record.cc",
|
||||
"src/ssl/encrypted_client_hello.cc",
|
||||
"src/ssl/extensions.cc",
|
||||
"src/ssl/handoff.cc",
|
||||
"src/ssl/handshake.cc",
|
||||
"src/ssl/handshake_client.cc",
|
||||
"src/ssl/handshake_server.cc",
|
||||
"src/ssl/s3_both.cc",
|
||||
"src/ssl/s3_lib.cc",
|
||||
"src/ssl/s3_pkt.cc",
|
||||
"src/ssl/ssl_aead_ctx.cc",
|
||||
"src/ssl/ssl_asn1.cc",
|
||||
"src/ssl/ssl_buffer.cc",
|
||||
"src/ssl/ssl_cert.cc",
|
||||
"src/ssl/ssl_cipher.cc",
|
||||
"src/ssl/ssl_credential.cc",
|
||||
"src/ssl/ssl_file.cc",
|
||||
"src/ssl/ssl_key_share.cc",
|
||||
"src/ssl/ssl_lib.cc",
|
||||
"src/ssl/ssl_privkey.cc",
|
||||
"src/ssl/ssl_session.cc",
|
||||
"src/ssl/ssl_stat.cc",
|
||||
"src/ssl/ssl_transcript.cc",
|
||||
"src/ssl/ssl_versions.cc",
|
||||
"src/ssl/ssl_x509.cc",
|
||||
"src/ssl/t1_enc.cc",
|
||||
"src/ssl/tls13_both.cc",
|
||||
"src/ssl/tls13_client.cc",
|
||||
"src/ssl/tls13_enc.cc",
|
||||
"src/ssl/tls13_server.cc",
|
||||
"src/ssl/tls_method.cc",
|
||||
"src/ssl/tls_record.cc",
|
||||
],
|
||||
resources: [
|
||||
.copy(privacyInfoPath),
|
||||
],
|
||||
publicHeadersPath: "src/include",
|
||||
|
||||
cSettings: [
|
||||
.define("OPENSSL_NO_ASM", to: "1"),
|
||||
.headerSearchPath("./"),
|
||||
.headerSearchPath("include/"),
|
||||
]
|
||||
),
|
||||
.testTarget(
|
||||
name: "build-test",
|
||||
dependencies: [
|
||||
"openssl_grpc",
|
||||
],
|
||||
path: testPath
|
||||
),
|
||||
],
|
||||
cxxLanguageStandard: .cxx14
|
||||
)
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
# Contributing to gRPC: A Step-By-Step Guide
|
||||
|
||||
Note: This document is not meant for Google employees.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To contribute to the gRPC codebase, you need the following:
|
||||
|
||||
1. An
|
||||
[active GitHub account](https://docs.github.com/en/get-started/quickstart/creating-an-account-on-github)
|
||||
1. [An understanding of Git and GitHub](https://docs.github.com/en/get-started/using-git/about-git)
|
||||
1. [Knowledge of how to fork a repository, clone a repository, merge, rebase,
|
||||
resolve, push, pull, fetch
|
||||
etc.](https://docs.github.com/en/get-started/using-git/about-git)
|
||||
1. [git installed and working on your machine](https://github.com/git-guides/install-git)
|
||||
1. Knowledge of the language being used, which can be C++, Python, Ruby,
|
||||
Objective-C, PHP, or C#.
|
||||
|
||||
## Steps to Contribute gRPC C++ Code
|
||||
|
||||
The GitHub repository for the C-based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
|
||||
is at https://github.com/grpc/grpc.
|
||||
|
||||
### Fork and Clone the Repository
|
||||
|
||||
If you want to contribute to the gRPC code base, you need to make a fork of the
|
||||
repository.
|
||||
|
||||
1. Create your
|
||||
[own fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo)
|
||||
from https://github.com/grpc/grpc.
|
||||
|
||||

|
||||
|
||||
1. [Clone your fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#cloning-your-forked-repository)
|
||||
on your local machine.
|
||||
|
||||
### Prepare and Push Your Commit
|
||||
|
||||
1. In your cloned repository, create a new branch from `master`.
|
||||
1. Then prepare a commit for the files that you want to contribute.
|
||||
1. Commit to this branch.
|
||||
1. Push the commit to your fork on GitHub.
|
||||
|
||||
Take care that your commits are aligned with these
|
||||
[guidelines](https://github.com/grpc/grpc/blob/master/CONTRIBUTING.md#guidelines-for-pull-requests).
|
||||
|
||||
### Prepare a Pull Request
|
||||
|
||||
After pushing your commit, visit https://github.com/grpc/grpc . If the
|
||||
forking, branch creation, commit and push have been successful, you will see
|
||||
the following message:
|
||||
|
||||

|
||||
|
||||
Take care to allow edits by maintainers. If there is a specific issue
|
||||
with your pull request, the maintainer can help if needed. This access to help will reduce
|
||||
the turnaround time for your submission.
|
||||
|
||||

|
||||
|
||||
Create a pull request.
|
||||
|
||||
### Pull Request Status - Safe Review
|
||||
|
||||
Once the pull request is ready, you must wait for a reviewer to be
|
||||
assigned to your pull request.
|
||||
|
||||
If you see *Not Covered* in the EasyCLA screen, as shown in the following image,
|
||||
click on the mentioned link to start the authorization process.
|
||||
|
||||

|
||||
|
||||
You will see a series of screens:
|
||||
|
||||
1. Select *Authorize LF-Engineering:
|
||||
|
||||

|
||||
|
||||
1. Select your contributor type:
|
||||
|
||||

|
||||
|
||||
1. Select *SIGN CLA*:
|
||||
|
||||

|
||||
|
||||
Some time after you've digitally signed the document, the EasyCLA will appear as
|
||||
*Covered*.
|
||||
|
||||

|
||||
|
||||
After a few hours, you will notice a new "assignee" assigned to the pull request.
|
||||
|
||||

|
||||
|
||||
After a reviewer is assigned to you, they will help with the next
|
||||
steps, which are as follows:
|
||||
|
||||
1. You complete the code review and address the comments.
|
||||
1. Your reviewer may add a few labels as needed.
|
||||
|
||||
### Pull Request Status - Green
|
||||
|
||||
Once you have approval from the reviewer, check if the tests are running. After
|
||||
the tests are complete, look at the status of all the tests. If
|
||||
everything is green, everything is good. But usually some failures exist. If
|
||||
there are failures, select each failure. The selection will take you to a page
|
||||
that has error details. Try to fix the issue.
|
||||
|
||||
### Pull Request Approval
|
||||
|
||||
For pull requests that are non-trivial, there is a thorough code review process.
|
||||
You can read more about the process and requirements
|
||||
[here](https://github.com/grpc/grpc/blob/master/CONTRIBUTING.md#guidelines-for-pull-requests).
|
||||
|
||||
After you fix the code review, you will finally get an approval. After getting
|
||||
approval, you can submit the pull request.
|
||||
|
||||

|
||||
|
||||
### Submission
|
||||
|
||||
You **cannot** do submission or merge of a pull request through Github.
|
||||
|
||||

|
||||
|
||||
After you have approval from a reviewer, a Google employee will trigger
|
||||
the submission process. When the submission happens:
|
||||
|
||||
1. A commit with your changes, along with a few additional formatting changes, will
|
||||
be committed to the `grpc/master` branch.
|
||||

|
||||
|
||||
1. The pull request you originally created will be closed.
|
||||

|
||||
|
||||
|
|
@ -8,7 +8,6 @@ See [CONTRIBUTING.md](https://github.com/grpc/grpc-community/blob/master/CONTRIB
|
|||
for general contribution guidelines.
|
||||
|
||||
## Maintainers (in alphabetical order)
|
||||
<!-- go/keep-sorted start case=no -->
|
||||
- [a11r](https://github.com/a11r), Google LLC
|
||||
- [apolcyn](https://github.com/apolcyn), Google LLC
|
||||
- [arjunroy](https://github.com/arjunroy), Google LLC
|
||||
|
|
@ -31,22 +30,17 @@ for general contribution guidelines.
|
|||
- [pfreixes](https://github.com/pfreixes), Skyscanner Ltd
|
||||
- [ran-su](https://github.com/ran-su), Google LLC
|
||||
- [sanjaypujare](https://github.com/sanjaypujare), Google LLC
|
||||
- [sastryvp](https://github.com/sastryvp), Google LLC
|
||||
- [sergiitk](https://github.com/sergiitk), Google LLC
|
||||
- [soheilhy](https://github.com/soheilhy), Google LLC
|
||||
- [stanley-cheung](https://github.com/stanley-cheung), Google LLC
|
||||
- [thisisnotapril](https://github.com/thisisnotapril), Google LLC
|
||||
- [tjagtap](https://github.com/tjagtap), Google LLC
|
||||
- [veblush](https://github.com/veblush), Google LLC
|
||||
- [vishalpowar](https://github.com/vishalpowar), Google LLC
|
||||
- [wenbozhu](https://github.com/wenbozhu), Google LLC
|
||||
- [yashykt](https://github.com/yashykt), Google LLC
|
||||
- [yijiem](https://github.com/yijiem), Google LLC
|
||||
- [ZhouyihaiDing](https://github.com/ZhouyihaiDing), Google LLC
|
||||
<!-- go/keep-sorted end -->
|
||||
|
||||
## Emeritus Maintainers (in alphabetical order)
|
||||
<!-- go/keep-sorted start case=no -->
|
||||
- [adelez](https://github.com/adelez), Google LLC
|
||||
- [AspirinSJL](https://github.com/AspirinSJL), Google LLC
|
||||
- [billfeng327](https://github.com/billfeng327), Google LLC
|
||||
|
|
@ -93,4 +87,3 @@ for general contribution guidelines.
|
|||
- [yihuazhang](https://github.com/yihuazhang), Google LLC
|
||||
- [zpencer](https://github.com/zpencer), Google LLC
|
||||
- [ZhenLian](https://github.com/ZhenLian), Google LLC
|
||||
<!-- go/keep-sorted end -->
|
||||
|
|
|
|||
72
README.md
|
|
@ -26,21 +26,20 @@ runtime comes as a package available in a user's language package manager.
|
|||
For instructions on how to use the language-specific gRPC runtime for a project,
|
||||
please refer to these documents
|
||||
|
||||
- [C++](src/cpp): follow the instructions under the `src/cpp` directory
|
||||
- [C#/.NET](https://github.com/grpc/grpc-dotnet): NuGet packages
|
||||
`Grpc.Net.Client`, `Grpc.AspNetCore.Server`
|
||||
- [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
|
||||
- [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
|
||||
- [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central
|
||||
Repository
|
||||
- [Kotlin](https://github.com/grpc/grpc-kotlin): Use JARs from Maven Central
|
||||
Repository
|
||||
- [Node](https://github.com/grpc/grpc-node): `npm install @grpc/grpc-js`
|
||||
- [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
|
||||
- [PHP](src/php): `pecl install grpc`
|
||||
- [Python](src/python/grpcio): `pip install grpcio`
|
||||
- [Ruby](src/ruby): `gem install grpc`
|
||||
- [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
|
||||
- [C++](src/cpp): follow the instructions under the `src/cpp` directory
|
||||
- [C#/.NET](https://github.com/grpc/grpc-dotnet): NuGet packages `Grpc.Net.Client`, `Grpc.AspNetCore.Server`
|
||||
- [Dart](https://github.com/grpc/grpc-dart): pub package `grpc`
|
||||
- [Go](https://github.com/grpc/grpc-go): `go get google.golang.org/grpc`
|
||||
- [Java](https://github.com/grpc/grpc-java): Use JARs from Maven Central
|
||||
Repository
|
||||
- [Kotlin](https://github.com/grpc/grpc-kotlin): Use JARs from Maven Central
|
||||
Repository
|
||||
- [Node](https://github.com/grpc/grpc-node): `npm install @grpc/grpc-js`
|
||||
- [Objective-C](src/objective-c): Add `gRPC-ProtoRPC` dependency to podspec
|
||||
- [PHP](src/php): `pecl install grpc`
|
||||
- [Python](src/python/grpcio): `pip install grpcio`
|
||||
- [Ruby](src/ruby): `gem install grpc`
|
||||
- [WebJS](https://github.com/grpc/grpc-web): follow the grpc-web instructions
|
||||
|
||||
Per-language quickstart guides and tutorials can be found in the
|
||||
[documentation section on the grpc.io website](https://grpc.io/docs/). Code
|
||||
|
|
@ -67,7 +66,8 @@ gRPC.
|
|||
|
||||
## Performance
|
||||
|
||||
See the [Performance dashboard](https://grafana-dot-grpc-testing.appspot.com/)
|
||||
See the
|
||||
[Performance dashboard](https://grafana-dot-grpc-testing.appspot.com/)
|
||||
for performance numbers of master branch daily builds.
|
||||
|
||||
## Concepts
|
||||
|
|
@ -77,28 +77,28 @@ See [gRPC Concepts](CONCEPTS.md)
|
|||
## About This Repository
|
||||
|
||||
This repository contains source code for gRPC libraries implemented in multiple
|
||||
languages written on top of a shared C++ core library [src/core](src/core).
|
||||
languages written on top of a shared C core library [src/core](src/core).
|
||||
|
||||
Libraries in different languages may be in various states of development. We are
|
||||
seeking contributions for all of these libraries:
|
||||
|
||||
Language | Source
|
||||
------------------------- | ----------------------------------
|
||||
Shared C++ [core library] | [src/core](src/core)
|
||||
C++ | [src/cpp](src/cpp)
|
||||
Ruby | [src/ruby](src/ruby)
|
||||
Python | [src/python](src/python)
|
||||
PHP | [src/php](src/php)
|
||||
C# (core library based) | [src/csharp](src/csharp)
|
||||
Objective-C | [src/objective-c](src/objective-c)
|
||||
| Language | Source |
|
||||
| ----------------------- | ---------------------------------- |
|
||||
| Shared C [core library] | [src/core](src/core) |
|
||||
| C++ | [src/cpp](src/cpp) |
|
||||
| Ruby | [src/ruby](src/ruby) |
|
||||
| Python | [src/python](src/python) |
|
||||
| PHP | [src/php](src/php) |
|
||||
| C# (core library based) | [src/csharp](src/csharp) |
|
||||
| Objective-C | [src/objective-c](src/objective-c) |
|
||||
|
||||
Language | Source repo
|
||||
-------------------- | --------------------------------------------------
|
||||
Java | [grpc-java](https://github.com/grpc/grpc-java)
|
||||
Kotlin | [grpc-kotlin](https://github.com/grpc/grpc-kotlin)
|
||||
Go | [grpc-go](https://github.com/grpc/grpc-go)
|
||||
NodeJS | [grpc-node](https://github.com/grpc/grpc-node)
|
||||
WebJS | [grpc-web](https://github.com/grpc/grpc-web)
|
||||
Dart | [grpc-dart](https://github.com/grpc/grpc-dart)
|
||||
.NET (pure C# impl.) | [grpc-dotnet](https://github.com/grpc/grpc-dotnet)
|
||||
Swift | [grpc-swift](https://github.com/grpc/grpc-swift)
|
||||
| Language | Source repo |
|
||||
| -------------------- | -------------------------------------------------- |
|
||||
| Java | [grpc-java](https://github.com/grpc/grpc-java) |
|
||||
| Kotlin | [grpc-kotlin](https://github.com/grpc/grpc-kotlin) |
|
||||
| Go | [grpc-go](https://github.com/grpc/grpc-go) |
|
||||
| NodeJS | [grpc-node](https://github.com/grpc/grpc-node) |
|
||||
| WebJS | [grpc-web](https://github.com/grpc/grpc-web) |
|
||||
| Dart | [grpc-dart](https://github.com/grpc/grpc-dart) |
|
||||
| .NET (pure C# impl.) | [grpc-dotnet](https://github.com/grpc/grpc-dotnet) |
|
||||
| Swift | [grpc-swift](https://github.com/grpc/grpc-swift) |
|
||||
|
|
|
|||
3
Rakefile
|
|
@ -109,6 +109,7 @@ task 'dlls', [:plat] do |t, args|
|
|||
env += 'SYSTEM=MINGW32 '
|
||||
env += 'EMBED_ZLIB=true '
|
||||
env += 'EMBED_OPENSSL=true '
|
||||
env += 'EMBED_CARES=true '
|
||||
env += 'BUILDDIR=/tmp '
|
||||
env += "V=#{verbose} "
|
||||
env += "GRPC_RUBY_BUILD_PROCS=#{nproc_override} "
|
||||
|
|
@ -143,7 +144,7 @@ task 'gem:native', [:plat] do |t, args|
|
|||
verbose = ENV['V'] || '0'
|
||||
|
||||
grpc_config = ENV['GRPC_CONFIG'] || 'opt'
|
||||
ruby_cc_versions = ['3.3.0', '3.2.0', '3.1.0', '3.0.0', '2.7.0'].join(':')
|
||||
ruby_cc_versions = ['3.2.0', '3.1.0', '3.0.0', '2.7.0'].join(':')
|
||||
selected_plat = "#{args[:plat]}"
|
||||
|
||||
# use env variable to set artifact build paralellism
|
||||
|
|
|
|||
|
|
@ -4,27 +4,16 @@ This guide is for troubleshooting gRPC implementations based on C core library (
|
|||
|
||||
## Enabling extra logging and tracing
|
||||
|
||||
Extra logging can be very useful for diagnosing problems. It can be used to increase the amount of information
|
||||
Extra logging can be very useful for diagnosing problems. All gRPC implementations based on C core library support
|
||||
the `GRPC_VERBOSITY` and `GRPC_TRACE` environment variables that can be used to increase the amount of information
|
||||
that gets printed to stderr.
|
||||
|
||||
## GRPC_VERBOSITY
|
||||
|
||||
<!-- BEGIN_GOOGLE_INTERNAL_DOCUMENTATION
|
||||
GRPC_VERBOSITY has been disabled for internal usage and will not work anymore.
|
||||
If anyone wants to debug, we need to set verbose logs using absl.
|
||||
END_GOOGLE_INTERNAL_DOCUMENTATION -->
|
||||
|
||||
<!-- BEGIN_OPEN_SOURCE_DOCUMENTATION -->
|
||||
`GRPC_VERBOSITY` is used to set the minimum level of log messages printed by gRPC (supported values are `DEBUG`, `INFO` and `ERROR`). If this environment variable is unset, only `ERROR` logs will be printed. `ERROR` is recomeded for production systems.
|
||||
<!-- END_OPEN_SOURCE_DOCUMENTATION -->
|
||||
`GRPC_VERBOSITY` is used to set the minimum level of log messages printed by gRPC (supported values are `DEBUG`, `INFO` and `ERROR`). If this environment variable is unset, only `ERROR` logs will be printed.
|
||||
|
||||
## GRPC_TRACE
|
||||
|
||||
<!-- BEGIN_GOOGLE_INTERNAL_DOCUMENTATION
|
||||
GRPC_VERBOSITY has been disabled for internal usage and will not work anymore.
|
||||
If anyone wants to debug, we need to set verbose logs using absl.
|
||||
END_GOOGLE_INTERNAL_DOCUMENTATION -->
|
||||
|
||||
`GRPC_TRACE` can be used to enable extra logging for some internal gRPC components. Enabling the right traces can be invaluable
|
||||
for diagnosing for what is going wrong when things aren't working as intended. Possible values for `GRPC_TRACE` are listed in [Environment Variables Overview](doc/environment_variables.md).
|
||||
Multiple traces can be enabled at once (use comma as separator).
|
||||
|
|
|
|||
43
WORKSPACE
|
|
@ -27,34 +27,19 @@ custom_exec_properties(
|
|||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
http_archive(
|
||||
name = "platforms",
|
||||
sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
|
||||
urls = ["https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"],
|
||||
name = "build_bazel_rules_android",
|
||||
sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
|
||||
strip_prefix = "rules_android-0.1.1",
|
||||
urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"],
|
||||
)
|
||||
|
||||
RULES_ANDROID_NDK_COMMIT = "010f4f17dd13a8baaaacc28ba6c8c2c75f54c68b"
|
||||
load("//third_party/android:android_configure.bzl", "android_configure")
|
||||
|
||||
RULES_ANDROID_NDK_SHA = "2ab6a97748772f289331d75caaaee0593825935d1d9d982231a437fb8ab5a14d"
|
||||
android_configure(name = "local_config_android")
|
||||
|
||||
http_archive(
|
||||
name = "rules_android_ndk",
|
||||
sha256 = RULES_ANDROID_NDK_SHA,
|
||||
strip_prefix = "rules_android_ndk-%s" % RULES_ANDROID_NDK_COMMIT,
|
||||
url = "https://github.com/bazelbuild/rules_android_ndk/archive/%s.zip" % RULES_ANDROID_NDK_COMMIT,
|
||||
)
|
||||
load("@local_config_android//:android_configure.bzl", "android_workspace")
|
||||
|
||||
android_sdk_repository(
|
||||
name = "androidsdk",
|
||||
build_tools_version = "34.0.0",
|
||||
)
|
||||
|
||||
load("@rules_android_ndk//:rules.bzl", "android_ndk_repository")
|
||||
|
||||
android_ndk_repository(name = "androidndk")
|
||||
|
||||
# Note that we intentionally avoid calling `register_toolchains("@androidndk//:all")`
|
||||
# here, because the toolchain rule fails when $ANDROID_NDK_HOME is not set.
|
||||
# Use `--extra_toolchains=@androidndk//:all` to manually register it when building for Android.
|
||||
android_workspace()
|
||||
|
||||
# Prevents bazel's '...' expansion from including the following folder.
|
||||
# This is required because the BUILD file in the following folder
|
||||
|
|
@ -128,12 +113,6 @@ load("@com_github_google_benchmark//:bazel/benchmark_deps.bzl", "benchmark_deps"
|
|||
|
||||
benchmark_deps()
|
||||
|
||||
# This is a transitive dependency from google_cloud_cpp
|
||||
bind(
|
||||
name = "cares",
|
||||
actual = "@com_github_cares_cares//:ares",
|
||||
)
|
||||
|
||||
load("@io_opentelemetry_cpp//bazel:repository.bzl", "opentelemetry_cpp_deps")
|
||||
|
||||
opentelemetry_cpp_deps()
|
||||
|
|
@ -142,12 +121,6 @@ load("@io_opentelemetry_cpp//bazel:extra_deps.bzl", "opentelemetry_extra_deps")
|
|||
|
||||
opentelemetry_extra_deps()
|
||||
|
||||
# Transitive dependency of opentelemetry_extra_deps()
|
||||
bind(
|
||||
name = "madler_zlib",
|
||||
actual = "@zlib//:zlib",
|
||||
)
|
||||
|
||||
# TODO: Enable below once https://github.com/bazel-xcode/PodToBUILD/issues/232 is resolved
|
||||
#
|
||||
#http_archive(
|
||||
|
|
|
|||
|
|
@ -14,4 +14,4 @@
|
|||
|
||||
# AUTO-GENERATED FROM `$REPO_ROOT/templates/_metadata.py.template`!!!
|
||||
|
||||
__version__ = """1.65.0.dev0"""
|
||||
__version__ = """1.61.0.dev0"""
|
||||
|
|
|
|||
100
bazel/copts.bzl
|
|
@ -57,107 +57,7 @@ GRPC_LLVM_WARNING_FLAGS = [
|
|||
"-Wno-unused-function",
|
||||
]
|
||||
|
||||
GRPC_LLVM_WINDOWS_WARNING_FLAGS = GRPC_LLVM_WARNING_FLAGS + [
|
||||
### Some checks that are missing with clang-cl
|
||||
"-Wthread-safety",
|
||||
"-Wreorder-ctor",
|
||||
|
||||
### Avoid some checks that are default on clang-cl
|
||||
"-Wno-c++98-compat-pedantic",
|
||||
"-Wno-missing-prototypes",
|
||||
"-Wno-thread-safety-precise", # too many aliases
|
||||
|
||||
# abseil offenses
|
||||
"-Wno-comma",
|
||||
"-Wno-deprecated-redundant-constexpr-static-def",
|
||||
"-Wno-deprecated", # remove when the above works in all clang versions we test with
|
||||
"-Wno-float-equal",
|
||||
"-Wno-gcc-compat",
|
||||
"-Wno-reserved-identifier",
|
||||
"-Wno-thread-safety-negative",
|
||||
"-Wno-sign-compare",
|
||||
|
||||
# re2 offenses
|
||||
"-Wno-zero-as-null-pointer-constant",
|
||||
|
||||
# ares offenses
|
||||
"-Wno-macro-redefined",
|
||||
|
||||
# protobuf offenses
|
||||
"-Wno-cast-align",
|
||||
"-Wno-inconsistent-missing-destructor-override",
|
||||
|
||||
# xxhash offenses
|
||||
"-Wno-disabled-macro-expansion",
|
||||
|
||||
# benchmark offenses
|
||||
"-Wno-shift-sign-overflow",
|
||||
|
||||
# Evidently nodiscard is inappropriately pinned as a C++17 feature
|
||||
"-Wno-c++17-attribute-extensions",
|
||||
|
||||
# declarations are not used in many places
|
||||
"-Wno-missing-variable-declarations",
|
||||
|
||||
# TODO: delete iomgr
|
||||
"-Wno-old-style-cast",
|
||||
"-Wno-cast-qual",
|
||||
"-Wno-unused-member-function",
|
||||
"-Wno-unused-template",
|
||||
|
||||
# TODO(hork): see if the TraceFlag offense can be removed
|
||||
"-Wno-global-constructors",
|
||||
# TODO(hork): clean up EE offenses
|
||||
"-Wno-missing-field-initializers",
|
||||
"-Wno-non-virtual-dtor",
|
||||
"-Wno-thread-safety-reference-return",
|
||||
|
||||
# TODO(ctiller): offense: dump_args. signed to unsigned
|
||||
"-Wno-sign-conversion",
|
||||
"-Wno-shorten-64-to-32",
|
||||
|
||||
# TODO: general cleanup required. Maybe new developer or rainy day projects.
|
||||
"-Wno-unreachable-code-break",
|
||||
"-Wno-unreachable-code-return",
|
||||
"-Wno-unreachable-code",
|
||||
"-Wno-used-but-marked-unused",
|
||||
"-Wno-newline-eof",
|
||||
"-Wno-unused-const-variable",
|
||||
"-Wno-extra-semi",
|
||||
"-Wno-extra-semi-stmt",
|
||||
"-Wno-suggest-destructor-override",
|
||||
"-Wno-shadow",
|
||||
"-Wno-missing-noreturn",
|
||||
"-Wno-nested-anon-types",
|
||||
"-Wno-gnu-anonymous-struct",
|
||||
"-Wno-nonportable-system-include-path",
|
||||
"-Wno-microsoft-cast",
|
||||
"-Wno-exit-time-destructors",
|
||||
"-Wno-undef", # #if <MACRO_NAME> to #ifdef <MACRO_NAME>
|
||||
"-Wno-unused-macros",
|
||||
"-Wno-redundant-parens",
|
||||
"-Wno-undefined-func-template",
|
||||
"-Wno-gnu-zero-variadic-macro-arguments",
|
||||
"-Wno-double-promotion",
|
||||
"-Wno-implicit-float-conversion",
|
||||
"-Wno-implicit-int-conversion",
|
||||
"-Wno-float-conversion",
|
||||
"-Wno-unused-parameter",
|
||||
"-Wno-suggest-override",
|
||||
"-Wno-documentation",
|
||||
"-Wno-documentation-unknown-command",
|
||||
"-Wno-unsafe-buffer-usage",
|
||||
|
||||
### possibly bad warnings for this codebase
|
||||
"-Wno-covered-switch-default",
|
||||
"-Wno-switch-default",
|
||||
"-Wno-switch-enum",
|
||||
"-Wno-c99-extensions",
|
||||
"-Wno-unused-private-field", # GRPC_UNUSED does not appear to work for private fields
|
||||
]
|
||||
|
||||
GRPC_DEFAULT_COPTS = select({
|
||||
"//:use_strict_warning": GRPC_LLVM_WARNING_FLAGS + ["-DUSE_STRICT_WARNING=1"],
|
||||
"//:use_strict_warning_windows": GRPC_LLVM_WINDOWS_WARNING_FLAGS + ["-DUSE_STRICT_WARNING=1"],
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
EXPERIMENT_ENABLES = {
|
||||
"call_status_override_on_cancellation": "call_status_override_on_cancellation",
|
||||
"canary_client_privacy": "canary_client_privacy",
|
||||
"client_idleness": "client_idleness",
|
||||
"client_privacy": "client_privacy",
|
||||
"event_engine_client": "event_engine_client",
|
||||
"event_engine_dns": "event_engine_dns",
|
||||
|
|
@ -27,12 +28,18 @@ EXPERIMENT_ENABLES = {
|
|||
"http2_stats_fix": "http2_stats_fix",
|
||||
"keepalive_fix": "keepalive_fix",
|
||||
"keepalive_server_fix": "keepalive_server_fix",
|
||||
"max_pings_wo_data_throttle": "max_pings_wo_data_throttle",
|
||||
"monitoring_experiment": "monitoring_experiment",
|
||||
"multiping": "multiping",
|
||||
"peer_state_based_framing": "peer_state_based_framing",
|
||||
"pick_first_new": "pick_first_new",
|
||||
"promise_based_inproc_transport": "promise_based_inproc_transport",
|
||||
"pending_queue_cap": "pending_queue_cap",
|
||||
"pick_first_happy_eyeballs": "pick_first_happy_eyeballs",
|
||||
"promise_based_client_call": "promise_based_client_call",
|
||||
"promise_based_server_call": "promise_based_server_call",
|
||||
"registered_method_lookup_in_transport": "registered_method_lookup_in_transport",
|
||||
"promise_based_inproc_transport": "promise_based_client_call,promise_based_inproc_transport,promise_based_server_call,registered_method_lookup_in_transport",
|
||||
"registered_methods_map": "registered_methods_map",
|
||||
"rfc_max_concurrent_streams": "rfc_max_concurrent_streams",
|
||||
"round_robin_delegate_to_pick_first": "round_robin_delegate_to_pick_first",
|
||||
"rstpit": "rstpit",
|
||||
"schedule_cancellation_over_write": "schedule_cancellation_over_write",
|
||||
"server_privacy": "server_privacy",
|
||||
|
|
@ -40,21 +47,37 @@ EXPERIMENT_ENABLES = {
|
|||
"tcp_rcv_lowat": "tcp_rcv_lowat",
|
||||
"trace_record_callops": "trace_record_callops",
|
||||
"unconstrained_max_quota_buffer_size": "unconstrained_max_quota_buffer_size",
|
||||
"v3_backend_metric_filter": "v3_backend_metric_filter",
|
||||
"v3_channel_idle_filters": "v3_channel_idle_filters",
|
||||
"v3_compression_filter": "v3_compression_filter",
|
||||
"v3_server_auth_filter": "v3_server_auth_filter",
|
||||
"work_serializer_clears_time_cache": "work_serializer_clears_time_cache",
|
||||
"work_serializer_dispatch": "work_serializer_dispatch",
|
||||
"write_size_policy": "write_size_policy",
|
||||
"write_size_cap": "write_size_cap,write_size_policy",
|
||||
"wrr_delegate_to_pick_first": "wrr_delegate_to_pick_first",
|
||||
}
|
||||
|
||||
EXPERIMENT_POLLERS = [
|
||||
"event_engine_client",
|
||||
"event_engine_dns",
|
||||
"event_engine_listener",
|
||||
]
|
||||
|
||||
EXPERIMENTS = {
|
||||
"windows": {
|
||||
"dbg": {
|
||||
},
|
||||
"off": {
|
||||
"bad_client_test": [
|
||||
"rfc_max_concurrent_streams",
|
||||
],
|
||||
"compression_test": [
|
||||
"v3_compression_filter",
|
||||
],
|
||||
"core_end2end_test": [
|
||||
"promise_based_client_call",
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"cpp_end2end_test": [
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"endpoint_test": [
|
||||
"tcp_frame_size_tuning",
|
||||
"tcp_rcv_lowat",
|
||||
|
|
@ -66,36 +89,52 @@ EXPERIMENTS = {
|
|||
"tcp_frame_size_tuning",
|
||||
"tcp_rcv_lowat",
|
||||
],
|
||||
"lame_client_test": [
|
||||
"promise_based_client_call",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"logging_test": [
|
||||
"promise_based_server_call",
|
||||
],
|
||||
"resource_quota_test": [
|
||||
"free_large_allocator",
|
||||
"unconstrained_max_quota_buffer_size",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
},
|
||||
"on": {
|
||||
"cancel_ares_query_test": [
|
||||
"event_engine_dns",
|
||||
],
|
||||
"core_end2end_test": [
|
||||
"event_engine_client",
|
||||
"event_engine_listener",
|
||||
],
|
||||
"cpp_lb_end2end_test": [
|
||||
"pick_first_new",
|
||||
],
|
||||
"event_engine_client_test": [
|
||||
"event_engine_client",
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"event_engine_listener_test": [
|
||||
"event_engine_listener",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"pick_first_new",
|
||||
"flow_control_test": [
|
||||
"write_size_cap",
|
||||
"write_size_policy",
|
||||
],
|
||||
"resolver_component_tests_runner_invoker": [
|
||||
"event_engine_dns",
|
||||
"lb_unit_test": [
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"surface_registered_method_lookup": [
|
||||
"registered_method_lookup_in_transport",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"pick_first_new",
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
},
|
||||
},
|
||||
|
|
@ -103,6 +142,21 @@ EXPERIMENTS = {
|
|||
"dbg": {
|
||||
},
|
||||
"off": {
|
||||
"bad_client_test": [
|
||||
"rfc_max_concurrent_streams",
|
||||
],
|
||||
"compression_test": [
|
||||
"v3_compression_filter",
|
||||
],
|
||||
"core_end2end_test": [
|
||||
"promise_based_client_call",
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"cpp_end2end_test": [
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"endpoint_test": [
|
||||
"tcp_frame_size_tuning",
|
||||
"tcp_rcv_lowat",
|
||||
|
|
@ -114,20 +168,46 @@ EXPERIMENTS = {
|
|||
"tcp_frame_size_tuning",
|
||||
"tcp_rcv_lowat",
|
||||
],
|
||||
"lame_client_test": [
|
||||
"promise_based_client_call",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"logging_test": [
|
||||
"promise_based_server_call",
|
||||
],
|
||||
"resource_quota_test": [
|
||||
"free_large_allocator",
|
||||
"unconstrained_max_quota_buffer_size",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
},
|
||||
"on": {
|
||||
"cpp_lb_end2end_test": [
|
||||
"pick_first_new",
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"flow_control_test": [
|
||||
"write_size_cap",
|
||||
"write_size_policy",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"pick_first_new",
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"surface_registered_method_lookup": [
|
||||
"registered_method_lookup_in_transport",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"pick_first_new",
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
},
|
||||
},
|
||||
|
|
@ -135,8 +215,24 @@ EXPERIMENTS = {
|
|||
"dbg": {
|
||||
},
|
||||
"off": {
|
||||
"bad_client_test": [
|
||||
"rfc_max_concurrent_streams",
|
||||
],
|
||||
"cancel_ares_query_test": [
|
||||
"event_engine_dns",
|
||||
],
|
||||
"compression_test": [
|
||||
"v3_compression_filter",
|
||||
],
|
||||
"core_end2end_test": [
|
||||
"event_engine_client",
|
||||
"promise_based_client_call",
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"cpp_end2end_test": [
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"endpoint_test": [
|
||||
"tcp_frame_size_tuning",
|
||||
|
|
@ -152,39 +248,56 @@ EXPERIMENTS = {
|
|||
"tcp_frame_size_tuning",
|
||||
"tcp_rcv_lowat",
|
||||
],
|
||||
"resource_quota_test": [
|
||||
"free_large_allocator",
|
||||
"unconstrained_max_quota_buffer_size",
|
||||
],
|
||||
},
|
||||
"on": {
|
||||
"cancel_ares_query_test": [
|
||||
"event_engine_dns",
|
||||
],
|
||||
"core_end2end_test": [
|
||||
"event_engine_listener",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"cpp_end2end_test": [
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"cpp_lb_end2end_test": [
|
||||
"pick_first_new",
|
||||
],
|
||||
"event_engine_listener_test": [
|
||||
"event_engine_listener",
|
||||
"lame_client_test": [
|
||||
"promise_based_client_call",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"pick_first_new",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
"logging_test": [
|
||||
"promise_based_server_call",
|
||||
],
|
||||
"resolver_component_tests_runner_invoker": [
|
||||
"event_engine_dns",
|
||||
],
|
||||
"resource_quota_test": [
|
||||
"free_large_allocator",
|
||||
"unconstrained_max_quota_buffer_size",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"pick_first_new",
|
||||
"promise_based_server_call",
|
||||
"work_serializer_dispatch",
|
||||
],
|
||||
},
|
||||
"on": {
|
||||
"core_end2end_test": [
|
||||
"event_engine_listener",
|
||||
],
|
||||
"cpp_lb_end2end_test": [
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"event_engine_listener_test": [
|
||||
"event_engine_listener",
|
||||
],
|
||||
"flow_control_test": [
|
||||
"write_size_cap",
|
||||
"write_size_policy",
|
||||
],
|
||||
"lb_unit_test": [
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
"surface_registered_method_lookup": [
|
||||
"registered_method_lookup_in_transport",
|
||||
],
|
||||
"xds_end2end_test": [
|
||||
"pick_first_happy_eyeballs",
|
||||
"round_robin_delegate_to_pick_first",
|
||||
"wrr_delegate_to_pick_first",
|
||||
],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ _generate_cc = rule(
|
|||
mandatory = False,
|
||||
),
|
||||
"_protoc": attr.label(
|
||||
default = Label("@com_google_protobuf//:protoc"),
|
||||
default = Label("//external:protocol_compiler"),
|
||||
executable = True,
|
||||
cfg = "exec",
|
||||
),
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ generate_objc = rule(
|
|||
default = "@com_google_protobuf//:well_known_type_protos",
|
||||
),
|
||||
"_protoc": attr.label(
|
||||
default = Label("@com_google_protobuf//:protoc"),
|
||||
default = Label("//external:protocol_compiler"),
|
||||
executable = True,
|
||||
cfg = "exec",
|
||||
),
|
||||
|
|
|
|||
|
|
@ -27,13 +27,13 @@
|
|||
Contains macros used throughout the repo.
|
||||
"""
|
||||
|
||||
load("//bazel:cc_grpc_library.bzl", "cc_grpc_library")
|
||||
load("//bazel:copts.bzl", "GRPC_DEFAULT_COPTS")
|
||||
load("//bazel:experiments.bzl", "EXPERIMENTS", "EXPERIMENT_ENABLES")
|
||||
load("//bazel:test_experiments.bzl", "TEST_EXPERIMENTS", "TEST_EXPERIMENT_ENABLES")
|
||||
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test")
|
||||
load("@build_bazel_rules_apple//apple/testing/default_runner:ios_test_runner.bzl", "ios_test_runner")
|
||||
load("@com_google_protobuf//bazel:upb_proto_library.bzl", "upb_proto_library", "upb_proto_reflection_library")
|
||||
load("//bazel:cc_grpc_library.bzl", "cc_grpc_library")
|
||||
load("//bazel:copts.bzl", "GRPC_DEFAULT_COPTS")
|
||||
load("//bazel:experiments.bzl", "EXPERIMENTS", "EXPERIMENT_ENABLES", "EXPERIMENT_POLLERS")
|
||||
load("//bazel:test_experiments.bzl", "TEST_EXPERIMENTS", "TEST_EXPERIMENT_ENABLES", "TEST_EXPERIMENT_POLLERS")
|
||||
|
||||
# The set of pollers to test against if a test exercises polling
|
||||
POLLERS = ["epoll1", "poll"]
|
||||
|
|
@ -45,7 +45,6 @@ def if_not_windows(a):
|
|||
return select({
|
||||
"//:windows": [],
|
||||
"//:windows_msvc": [],
|
||||
"//:windows_clang": [],
|
||||
"//conditions:default": a,
|
||||
})
|
||||
|
||||
|
|
@ -53,23 +52,20 @@ def if_windows(a):
|
|||
return select({
|
||||
"//:windows": a,
|
||||
"//:windows_msvc": a,
|
||||
"//:windows_clang": a,
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
def _get_external_deps(external_deps):
|
||||
ret = []
|
||||
for dep in external_deps:
|
||||
if dep.startswith("@"):
|
||||
ret.append(dep)
|
||||
elif dep == "address_sorting":
|
||||
if dep == "address_sorting":
|
||||
ret.append("//third_party/address_sorting")
|
||||
elif dep == "xxhash":
|
||||
ret.append("//third_party/xxhash")
|
||||
elif dep == "cares":
|
||||
ret += select({
|
||||
"//:grpc_no_ares": [],
|
||||
"//conditions:default": ["//third_party:cares"],
|
||||
"//conditions:default": ["//external:cares"],
|
||||
})
|
||||
elif dep == "cronet_c_for_grpc":
|
||||
ret.append("//third_party/objective_c/Cronet:cronet_c_for_grpc")
|
||||
|
|
@ -81,10 +77,8 @@ def _get_external_deps(external_deps):
|
|||
ret.append(dep.replace("otel/", "@io_opentelemetry_cpp//"))
|
||||
elif dep.startswith("google_cloud_cpp"):
|
||||
ret.append(dep.replace("google_cloud_cpp", "@google_cloud_cpp//"))
|
||||
elif dep == "libprotobuf_mutator":
|
||||
ret.append("@com_google_libprotobuf_mutator//:libprotobuf_mutator")
|
||||
else:
|
||||
ret.append("//third_party:" + dep)
|
||||
ret.append("//external:" + dep)
|
||||
return ret
|
||||
|
||||
def _update_visibility(visibility):
|
||||
|
|
@ -101,28 +95,22 @@ def _update_visibility(visibility):
|
|||
"alt_grpc++_base_unsecure_legacy": PRIVATE,
|
||||
"alts_frame_protector": PRIVATE,
|
||||
"channelz": PRIVATE,
|
||||
"chaotic_good": PRIVATE,
|
||||
"client_channel": PRIVATE,
|
||||
"cli": PRIVATE,
|
||||
"core_credentials": PRIVATE,
|
||||
"debug_location": PRIVATE,
|
||||
"endpoint_tests": PRIVATE,
|
||||
"exec_ctx": PRIVATE,
|
||||
"gpr_public_hdrs": PRIVATE,
|
||||
"grpclb": PRIVATE,
|
||||
"grpc_experiments": PRIVATE,
|
||||
"grpc_opencensus_plugin": PUBLIC,
|
||||
"grpc_public_hdrs": PRIVATE,
|
||||
"grpcpp_gcp_observability": PUBLIC,
|
||||
"grpc_resolver_fake": PRIVATE,
|
||||
"grpc++_public_hdrs": PUBLIC,
|
||||
"grpc++_test": PRIVATE,
|
||||
"http": PRIVATE,
|
||||
"httpcli": PRIVATE,
|
||||
"iomgr_internal_errqueue": PRIVATE,
|
||||
"iomgr_buffer_list": PRIVATE,
|
||||
"json_reader_legacy": PRIVATE,
|
||||
"otel_plugin": PRIVATE,
|
||||
"public": PUBLIC,
|
||||
"ref_counted_ptr": PRIVATE,
|
||||
"tcp_tracer": PRIVATE,
|
||||
|
|
@ -131,7 +119,6 @@ def _update_visibility(visibility):
|
|||
"tsi": PRIVATE,
|
||||
"xds": PRIVATE,
|
||||
"xds_client_core": PRIVATE,
|
||||
"xds_end2end_test_utils": PRIVATE,
|
||||
"grpc_python_observability": PRIVATE,
|
||||
"event_engine_base_hdrs": PRIVATE,
|
||||
"useful": PRIVATE,
|
||||
|
|
@ -216,6 +203,7 @@ def grpc_cc_library(
|
|||
testonly = testonly,
|
||||
linkopts = linkopts,
|
||||
includes = [
|
||||
"api/include",
|
||||
"include",
|
||||
"src/core/ext/upb-gen", # Once upb code-gen issue is resolved, remove this.
|
||||
"src/core/ext/upbdefs-gen", # Once upb code-gen issue is resolved, remove this.
|
||||
|
|
@ -237,7 +225,6 @@ def grpc_proto_library(
|
|||
name,
|
||||
srcs = [],
|
||||
deps = [],
|
||||
visibility = None,
|
||||
well_known_protos = False,
|
||||
has_services = True,
|
||||
use_external = False,
|
||||
|
|
@ -246,7 +233,6 @@ def grpc_proto_library(
|
|||
name = name,
|
||||
srcs = srcs,
|
||||
deps = deps,
|
||||
visibility = visibility,
|
||||
well_known_protos = well_known_protos,
|
||||
proto_only = not has_services,
|
||||
use_external = use_external,
|
||||
|
|
@ -293,10 +279,8 @@ def ios_cc_test(
|
|||
deps = ios_test_deps,
|
||||
)
|
||||
|
||||
def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_polling, uses_event_engine, flaky):
|
||||
"""Common logic used to parameterize tests for every poller and EventEngine.
|
||||
|
||||
Used by expand_tests (repeatedly) to form base lists of pollers for each experiment.
|
||||
def expand_tests(name, srcs, deps, tags, args, exclude_pollers, uses_polling, uses_event_engine, flaky):
|
||||
"""Common logic used to parameterize tests for every poller and EventEngine and experiment.
|
||||
|
||||
Args:
|
||||
name: base name of the test
|
||||
|
|
@ -313,12 +297,8 @@ def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_pol
|
|||
Returns:
|
||||
A list of dictionaries containing modified values of name, srcs, deps, tags, and args.
|
||||
"""
|
||||
|
||||
poller_config = []
|
||||
|
||||
# See work_stealing_thread_pool.cc for details.
|
||||
default_env = {"GRPC_THREAD_POOL_VERBOSE_FAILURES": "true"}
|
||||
|
||||
if not uses_polling:
|
||||
tags = tags + ["no_uses_polling"]
|
||||
|
||||
|
|
@ -329,7 +309,7 @@ def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_pol
|
|||
"tags": tags,
|
||||
"args": args,
|
||||
"flaky": flaky,
|
||||
"env": default_env,
|
||||
"env": {},
|
||||
})
|
||||
else:
|
||||
# On linux we run the same test with the default EventEngine, once for each
|
||||
|
|
@ -349,7 +329,7 @@ def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_pol
|
|||
"args": args,
|
||||
"env": {
|
||||
"GRPC_POLL_STRATEGY": poller,
|
||||
} | default_env,
|
||||
},
|
||||
"flaky": flaky,
|
||||
})
|
||||
|
||||
|
|
@ -366,7 +346,7 @@ def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_pol
|
|||
"deps": deps,
|
||||
"tags": tags + ["no_linux"],
|
||||
"args": args,
|
||||
"env": default_env,
|
||||
"env": {},
|
||||
"flaky": flaky,
|
||||
})
|
||||
else:
|
||||
|
|
@ -386,31 +366,10 @@ def expand_poller_config(name, srcs, deps, tags, args, exclude_pollers, uses_pol
|
|||
"deps": deps,
|
||||
"tags": test_tags,
|
||||
"args": test_args,
|
||||
"env": default_env,
|
||||
"env": {},
|
||||
"flaky": flaky,
|
||||
})
|
||||
|
||||
return poller_config
|
||||
|
||||
def expand_tests(name, srcs, deps, tags, args, exclude_pollers, uses_polling, uses_event_engine, flaky):
|
||||
"""Common logic used to parameterize tests for every poller and EventEngine and experiment.
|
||||
|
||||
Args:
|
||||
name: base name of the test
|
||||
srcs: source files
|
||||
deps: base deps
|
||||
tags: base tags
|
||||
args: base args
|
||||
flaky: base flaky
|
||||
exclude_pollers: list of poller names to exclude for this set of tests.
|
||||
uses_polling: set to False if the test is not sensitive to polling methodology.
|
||||
uses_event_engine: set to False if the test is not sensitive to
|
||||
EventEngine implementation differences
|
||||
|
||||
Returns:
|
||||
A list of dictionaries containing modified values of name, srcs, deps, tags, and args.
|
||||
"""
|
||||
|
||||
experiments = {}
|
||||
|
||||
# buildifier: disable=uninitialized
|
||||
|
|
@ -459,28 +418,13 @@ def expand_tests(name, srcs, deps, tags, args, exclude_pollers, uses_polling, us
|
|||
tags.append("no_test_ios")
|
||||
return tags
|
||||
|
||||
base_params = {
|
||||
"name": name,
|
||||
"srcs": srcs,
|
||||
"deps": deps,
|
||||
"tags": tags,
|
||||
"args": args,
|
||||
"exclude_pollers": exclude_pollers,
|
||||
"uses_polling": uses_polling,
|
||||
"uses_event_engine": uses_event_engine,
|
||||
"flaky": flaky,
|
||||
}
|
||||
|
||||
experiment_config = expand_poller_config(**base_params)
|
||||
experiment_config = list(poller_config)
|
||||
experiment_enables = {k: v for k, v in EXPERIMENT_ENABLES.items() + TEST_EXPERIMENT_ENABLES.items()}
|
||||
experiment_pollers = EXPERIMENT_POLLERS + TEST_EXPERIMENT_POLLERS
|
||||
for mode, config in mode_config.items():
|
||||
enabled_tags, disabled_tags = config
|
||||
if enabled_tags != None:
|
||||
for experiment in experiments[mode].keys():
|
||||
experiment_params = dict(base_params)
|
||||
experiment_params["uses_polling"] = uses_polling and (experiment in experiment_pollers)
|
||||
for config in expand_poller_config(**experiment_params):
|
||||
for config in poller_config:
|
||||
config = dict(config)
|
||||
config["name"] = config["name"] + "@experiment=" + experiment
|
||||
env = dict(config["env"])
|
||||
|
|
@ -496,9 +440,7 @@ def expand_tests(name, srcs, deps, tags, args, exclude_pollers, uses_polling, us
|
|||
experiment_config.append(config)
|
||||
if disabled_tags != None:
|
||||
for experiment in experiments[mode].keys():
|
||||
experiment_params = dict(base_params)
|
||||
experiment_params["uses_polling"] = uses_polling and (experiment in experiment_pollers)
|
||||
for config in expand_poller_config(**experiment_params):
|
||||
for config in poller_config:
|
||||
config = dict(config)
|
||||
config["name"] = config["name"] + "@experiment=no_" + experiment
|
||||
env = dict(config["env"])
|
||||
|
|
@ -543,7 +485,7 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
|
|||
if language.upper() == "C":
|
||||
copts = copts + if_not_windows(["-std=c11"])
|
||||
|
||||
core_deps = deps + _get_external_deps(external_deps) + ["//test/core/test_util:grpc_suppressions"]
|
||||
core_deps = deps + _get_external_deps(external_deps) + ["//test/core/util:grpc_suppressions"]
|
||||
|
||||
# Test args for all tests
|
||||
test_args = {
|
||||
|
|
@ -569,22 +511,11 @@ def grpc_cc_test(name, srcs = [], deps = [], external_deps = [], args = [], data
|
|||
**test_args
|
||||
)
|
||||
|
||||
native.cc_library(
|
||||
name = "%s_TEST_LIBRARY" % name,
|
||||
testonly = 1,
|
||||
srcs = srcs,
|
||||
deps = core_deps,
|
||||
tags = tags,
|
||||
)
|
||||
|
||||
for poller_config in expand_tests(name, srcs, core_deps, tags, args, exclude_pollers, uses_polling, uses_event_engine, flaky):
|
||||
if poller_config["srcs"] != srcs:
|
||||
fail("srcs changed")
|
||||
if poller_config["deps"] != core_deps:
|
||||
fail("deps changed: %r --> %r" % (deps, poller_config["deps"]))
|
||||
native.cc_test(
|
||||
name = poller_config["name"],
|
||||
deps = ["%s_TEST_LIBRARY" % name],
|
||||
srcs = poller_config["srcs"],
|
||||
deps = poller_config["deps"],
|
||||
tags = poller_config["tags"],
|
||||
args = poller_config["args"],
|
||||
env = poller_config["env"],
|
||||
|
|
@ -621,7 +552,7 @@ def grpc_cc_binary(name, srcs = [], deps = [], external_deps = [], args = [], da
|
|||
data = data,
|
||||
testonly = testonly,
|
||||
linkshared = linkshared,
|
||||
deps = deps + _get_external_deps(external_deps) + ["//test/core/test_util:grpc_suppressions"],
|
||||
deps = deps + _get_external_deps(external_deps) + ["//test/core/util:grpc_suppressions"],
|
||||
copts = GRPC_DEFAULT_COPTS + copts,
|
||||
linkopts = if_not_windows(["-pthread"]) + linkopts,
|
||||
tags = tags,
|
||||
|
|
@ -739,13 +670,6 @@ def grpc_package(name, visibility = "private", features = []):
|
|||
features = features,
|
||||
)
|
||||
|
||||
def grpc_filegroup(name, srcs, **kwargs):
|
||||
native.filegroup(
|
||||
name = name,
|
||||
srcs = srcs,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def grpc_objc_library(
|
||||
name,
|
||||
srcs = [],
|
||||
|
|
@ -804,22 +728,3 @@ def python_config_settings():
|
|||
name = "python3",
|
||||
flag_values = {"@bazel_tools//tools/python:python_version": "PY3"},
|
||||
)
|
||||
|
||||
# buildifier: disable=unnamed-macro
|
||||
def grpc_clang_cl_settings():
|
||||
native.platform(
|
||||
name = "x64_windows-clang-cl",
|
||||
constraint_values = [
|
||||
"@platforms//cpu:x86_64",
|
||||
"@platforms//os:windows",
|
||||
"@bazel_tools//tools/cpp:clang-cl",
|
||||
],
|
||||
)
|
||||
native.config_setting(
|
||||
name = "windows_clang",
|
||||
constraint_values = [
|
||||
"@platforms//cpu:x86_64",
|
||||
"@platforms//os:windows",
|
||||
"@bazel_tools//tools/cpp:clang-cl",
|
||||
],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -14,12 +14,222 @@
|
|||
"""Load dependencies needed to compile and test the grpc library as a 3rd-party consumer."""
|
||||
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
load("//bazel:grpc_python_deps.bzl", "grpc_python_deps")
|
||||
load("@com_github_grpc_grpc//bazel:grpc_python_deps.bzl", "grpc_python_deps")
|
||||
|
||||
# buildifier: disable=unnamed-macro
|
||||
def grpc_deps():
|
||||
"""Loads dependencies need to compile and test the grpc library."""
|
||||
|
||||
native.bind(
|
||||
name = "upb_lib",
|
||||
actual = "@com_google_protobuf//upb",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_amalgamation_lib",
|
||||
actual = "@com_google_protobuf//upb:amalgamation",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_base_lib",
|
||||
actual = "@com_google_protobuf//upb/base",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_collections_lib",
|
||||
actual = "@com_google_protobuf//upb/collections",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_mem_lib",
|
||||
actual = "@com_google_protobuf//upb/mem",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_reflection",
|
||||
actual = "@com_google_protobuf//upb:reflection",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_lib_descriptor",
|
||||
actual = "@com_google_protobuf//upb:descriptor_upb_proto",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_lib_descriptor_reflection",
|
||||
actual = "@com_google_protobuf//upb:descriptor_upb_proto_reflection",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_textformat_lib",
|
||||
actual = "@com_google_protobuf//upb/text",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_json_lib",
|
||||
actual = "@com_google_protobuf//upb/json",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "upb_generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
|
||||
actual = "@com_google_protobuf//upb:generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "libssl",
|
||||
actual = "@boringssl//:ssl",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "libcrypto",
|
||||
actual = "@boringssl//:crypto",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "madler_zlib",
|
||||
actual = "@zlib//:zlib",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "protobuf",
|
||||
actual = "@com_google_protobuf//:protobuf",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "protobuf_clib",
|
||||
actual = "@com_google_protobuf//:protoc_lib",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "protobuf_headers",
|
||||
actual = "@com_google_protobuf//:protobuf_headers",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "protocol_compiler",
|
||||
actual = "@com_google_protobuf//:protoc",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "cares",
|
||||
actual = "@com_github_cares_cares//:ares",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "gtest",
|
||||
actual = "@com_google_googletest//:gtest",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "fuzztest",
|
||||
actual = "@com_google_fuzztest//fuzztest",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "fuzztest_main",
|
||||
actual = "@com_google_fuzztest//fuzztest:fuzztest_gtest_main",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "benchmark",
|
||||
actual = "@com_github_google_benchmark//:benchmark",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "re2",
|
||||
actual = "@com_googlesource_code_re2//:re2",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "grpc_cpp_plugin",
|
||||
actual = "@com_github_grpc_grpc//src/compiler:grpc_cpp_plugin",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "grpc++_codegen_proto",
|
||||
actual = "@com_github_grpc_grpc//:grpc++_codegen_proto",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-context",
|
||||
actual = "@io_opencensus_cpp//opencensus/context:context",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-trace",
|
||||
actual = "@io_opencensus_cpp//opencensus/trace:trace",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-trace-context_util",
|
||||
actual = "@io_opencensus_cpp//opencensus/trace:context_util",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-trace-propagation",
|
||||
actual = "@io_opencensus_cpp//opencensus/trace:grpc_trace_bin",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-trace-span_context",
|
||||
actual = "@io_opencensus_cpp//opencensus/trace:span_context",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-stats",
|
||||
actual = "@io_opencensus_cpp//opencensus/stats:stats",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-stats-test",
|
||||
actual = "@io_opencensus_cpp//opencensus/stats:test_utils",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-with-tag-map",
|
||||
actual = "@io_opencensus_cpp//opencensus/tags:with_tag_map",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-tags",
|
||||
actual = "@io_opencensus_cpp//opencensus/tags:tags",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-tags-context_util",
|
||||
actual = "@io_opencensus_cpp//opencensus/tags:context_util",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-trace-stackdriver_exporter",
|
||||
actual = "@io_opencensus_cpp//opencensus/exporters/trace/stackdriver:stackdriver_exporter",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "opencensus-stats-stackdriver_exporter",
|
||||
actual = "@io_opencensus_cpp//opencensus/exporters/stats/stackdriver:stackdriver_exporter",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "googleapis_trace_grpc_service",
|
||||
actual = "@com_google_googleapis//google/devtools/cloudtrace/v2:cloudtrace_cc_grpc",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "googleapis_monitoring_grpc_service",
|
||||
actual = "@com_google_googleapis//google/monitoring/v3:monitoring_cc_grpc",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "googleapis_logging_grpc_service",
|
||||
actual = "@com_google_googleapis//google/logging/v2:logging_cc_grpc",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "googleapis_logging_cc_proto",
|
||||
actual = "@com_google_googleapis//google/logging/v2:logging_cc_proto",
|
||||
)
|
||||
|
||||
if "platforms" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "platforms",
|
||||
|
|
@ -35,11 +245,11 @@ def grpc_deps():
|
|||
name = "boringssl",
|
||||
# Use github mirror instead of https://boringssl.googlesource.com/boringssl
|
||||
# to obtain a boringssl archive with consistent sha256
|
||||
sha256 = "9f441d72fccb9a3faf96470478c8ccfaaeb8db1cffd4d78b698f782124dad1b0",
|
||||
strip_prefix = "boringssl-b8a2bffc598f230484ff48a247526a9820facfc2",
|
||||
sha256 = "b21994a857a7aa6d5256ffe355c735ad4c286de44c6c81dfc04edc41a8feaeef",
|
||||
strip_prefix = "boringssl-2ff4b968a7e0cfee66d9f151cb95635b43dc1d5b",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/b8a2bffc598f230484ff48a247526a9820facfc2.tar.gz",
|
||||
"https://github.com/google/boringssl/archive/b8a2bffc598f230484ff48a247526a9820facfc2.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/2ff4b968a7e0cfee66d9f151cb95635b43dc1d5b.tar.gz",
|
||||
"https://github.com/google/boringssl/archive/2ff4b968a7e0cfee66d9f151cb95635b43dc1d5b.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -58,16 +268,15 @@ def grpc_deps():
|
|||
if "com_google_protobuf" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "com_google_protobuf",
|
||||
sha256 = "387478260190c540388839a3449c635a69708d92fc38ea6e2364b1196db90ea5",
|
||||
strip_prefix = "protobuf-2434ef2adf0c74149b9d547ac5fb545a1ff8b6b5",
|
||||
sha256 = "70f480fe9cb0c6829dbf6be3c388103313aacb65de667b86d981bbc9eaedb905",
|
||||
strip_prefix = "protobuf-7f94235e552599141950d7a4a3eaf93bc87d1b22",
|
||||
urls = [
|
||||
# https://github.com/protocolbuffers/protobuf/commits/v26.1
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/2434ef2adf0c74149b9d547ac5fb545a1ff8b6b5.tar.gz",
|
||||
"https://github.com/protocolbuffers/protobuf/archive/2434ef2adf0c74149b9d547ac5fb545a1ff8b6b5.tar.gz",
|
||||
# https://github.com/protocolbuffers/protobuf/commits/v25.0
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/7f94235e552599141950d7a4a3eaf93bc87d1b22.tar.gz",
|
||||
"https://github.com/protocolbuffers/protobuf/archive/7f94235e552599141950d7a4a3eaf93bc87d1b22.tar.gz",
|
||||
],
|
||||
patches = [
|
||||
"@com_github_grpc_grpc//third_party:protobuf.patch",
|
||||
"@com_github_grpc_grpc//third_party:protobuf.10007.patch",
|
||||
],
|
||||
patch_args = ["-p1"],
|
||||
)
|
||||
|
|
@ -144,11 +353,11 @@ def grpc_deps():
|
|||
if "com_google_absl" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "com_google_absl",
|
||||
sha256 = "338420448b140f0dfd1a1ea3c3ce71b3bc172071f24f4d9a57d59b45037da440",
|
||||
strip_prefix = "abseil-cpp-20240116.0",
|
||||
sha256 = "59d2976af9d6ecf001a81a35749a6e551a335b949d34918cfade07737b9d93c5",
|
||||
strip_prefix = "abseil-cpp-20230802.0",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/20240116.0.tar.gz",
|
||||
"https://github.com/abseil/abseil-cpp/archive/20240116.0.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/20230802.0.tar.gz",
|
||||
"https://github.com/abseil/abseil-cpp/archive/20230802.0.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -199,11 +408,11 @@ def grpc_deps():
|
|||
if "envoy_api" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "envoy_api",
|
||||
sha256 = "ddd3beedda1178a79e0d988f76f362002aced09749452515853f106e22bd2249",
|
||||
strip_prefix = "data-plane-api-78f198cf96ecdc7120ef640406770aa01af775c4",
|
||||
sha256 = "fff067a5d6d776fc88549b5dd4773a6f8f0187b26a859de8b29bd4226a28ee63",
|
||||
strip_prefix = "data-plane-api-9d6ffa70677c4dbf23f6ed569676206c4e2edff4",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/78f198cf96ecdc7120ef640406770aa01af775c4.tar.gz",
|
||||
"https://github.com/envoyproxy/data-plane-api/archive/78f198cf96ecdc7120ef640406770aa01af775c4.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9d6ffa70677c4dbf23f6ed569676206c4e2edff4.tar.gz",
|
||||
"https://github.com/envoyproxy/data-plane-api/archive/9d6ffa70677c4dbf23f6ed569676206c4e2edff4.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -252,10 +461,10 @@ def grpc_deps():
|
|||
if "bazel_gazelle" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "bazel_gazelle",
|
||||
sha256 = "d76bf7a60fd8b050444090dfa2837a4eaf9829e1165618ee35dceca5cbdf58d5",
|
||||
sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
|
||||
urls = [
|
||||
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz",
|
||||
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz",
|
||||
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
|
||||
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -282,14 +491,14 @@ def grpc_deps():
|
|||
patch_args = ["-p1"],
|
||||
)
|
||||
|
||||
if "com_github_cncf_xds" not in native.existing_rules():
|
||||
if "com_github_cncf_udpa" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "com_github_cncf_xds",
|
||||
sha256 = "dc305e20c9fa80822322271b50aa2ffa917bf4fd3973bcec52bfc28dc32c5927",
|
||||
strip_prefix = "xds-3a472e524827f72d1ad621c4983dd5af54c46776",
|
||||
name = "com_github_cncf_udpa",
|
||||
sha256 = "0d33b83f8c6368954e72e7785539f0d272a8aba2f6e2e336ed15fd1514bc9899",
|
||||
strip_prefix = "xds-e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz",
|
||||
"https://github.com/cncf/xds/archive/3a472e524827f72d1ad621c4983dd5af54c46776.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz",
|
||||
"https://github.com/cncf/xds/archive/e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -313,11 +522,11 @@ def grpc_deps():
|
|||
if "io_opentelemetry_cpp" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "io_opentelemetry_cpp",
|
||||
sha256 = "ed681d20a684b7d485a49288e7cfb2d182bf882e5c112c5f2fa3f9e9da2278fc",
|
||||
strip_prefix = "opentelemetry-cpp-4bd64c9a336fd438d6c4c9dad2e6b61b0585311f",
|
||||
sha256 = "7735cc56507149686e6019e06f588317099d4522480be5f38a2a09ec69af1706",
|
||||
strip_prefix = "opentelemetry-cpp-1.13.0",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/open-telemetry/opentelemetry-cpp/archive/4bd64c9a336fd438d6c4c9dad2e6b61b0585311f.tar.gz",
|
||||
"https://github.com/open-telemetry/opentelemetry-cpp/archive/4bd64c9a336fd438d6c4c9dad2e6b61b0585311f.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.13.0.tar.gz",
|
||||
"https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.13.0.tar.gz",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
@ -341,6 +550,15 @@ def grpc_test_only_deps():
|
|||
|
||||
Loads dependencies that are only needed to run grpc library's tests.
|
||||
"""
|
||||
native.bind(
|
||||
name = "twisted",
|
||||
actual = "@com_github_twisted_twisted//:twisted",
|
||||
)
|
||||
|
||||
native.bind(
|
||||
name = "yaml",
|
||||
actual = "@com_github_yaml_pyyaml//:yaml",
|
||||
)
|
||||
|
||||
if "com_github_twisted_twisted" not in native.existing_rules():
|
||||
http_archive(
|
||||
|
|
@ -405,11 +623,11 @@ def grpc_test_only_deps():
|
|||
if "com_google_libprotobuf_mutator" not in native.existing_rules():
|
||||
http_archive(
|
||||
name = "com_google_libprotobuf_mutator",
|
||||
sha256 = "9c8f800aed088cdf89adc3eaaa66b56b4da7da041f26338aa71a2ab43d860d46",
|
||||
sha256 = "11ab4c57b4051977d8fedb86dba5c9092e578bc293c47be146e0b0596b6a0bdc",
|
||||
urls = [
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/libprotobuf-mutator/archive/1f95f8083066f5b38fd2db172e7e7f9aa7c49d2d.tar.gz",
|
||||
"https://github.com/google/libprotobuf-mutator/archive/1f95f8083066f5b38fd2db172e7e7f9aa7c49d2d.tar.gz",
|
||||
"https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/libprotobuf-mutator/archive/c390388561be36f94a559a4aed7e2fe60470f60b.tar.gz",
|
||||
"https://github.com/google/libprotobuf-mutator/archive/c390388561be36f94a559a4aed7e2fe60470f60b.tar.gz",
|
||||
],
|
||||
strip_prefix = "libprotobuf-mutator-1f95f8083066f5b38fd2db172e7e7f9aa7c49d2d",
|
||||
strip_prefix = "libprotobuf-mutator-c390388561be36f94a559a4aed7e2fe60470f60b",
|
||||
build_file = "@com_github_grpc_grpc//third_party:libprotobuf_mutator.BUILD",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ def grpc_extra_deps(ignore_version_differences = False):
|
|||
api_dependencies()
|
||||
|
||||
go_rules_dependencies()
|
||||
go_register_toolchains(version = "1.20")
|
||||
go_register_toolchains(version = "1.18")
|
||||
gazelle_dependencies()
|
||||
|
||||
# Pull-in the go 3rd party dependencies for protoc_gen_validate, which is
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
# Copyright 2024 gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
platform(
|
||||
name = "x86_64",
|
||||
constraint_values = [
|
||||
"@platforms//os:android",
|
||||
"@platforms//cpu:x86_64",
|
||||
],
|
||||
)
|
||||
|
||||
platform(
|
||||
name = "arm64-v8a",
|
||||
constraint_values = [
|
||||
"@platforms//os:android",
|
||||
"@platforms//cpu:arm64",
|
||||
],
|
||||
)
|
||||
|
||||
platform(
|
||||
name = "armeabi-v7a",
|
||||
constraint_values = [
|
||||
"@platforms//os:android",
|
||||
"@platforms//cpu:armv7",
|
||||
],
|
||||
)
|
||||
|
|
@ -110,7 +110,7 @@ _gen_py_aspect = aspect(
|
|||
fragments = ["py"],
|
||||
attrs = {
|
||||
"_protoc": attr.label(
|
||||
default = Label("@com_google_protobuf//:protoc"),
|
||||
default = Label("//external:protocol_compiler"),
|
||||
providers = ["files_to_run"],
|
||||
executable = True,
|
||||
cfg = "exec",
|
||||
|
|
@ -166,7 +166,7 @@ py_proto_library = rule(
|
|||
aspects = [_gen_py_aspect],
|
||||
),
|
||||
"_protoc": attr.label(
|
||||
default = Label("@com_google_protobuf//:protoc"),
|
||||
default = Label("//external:protocol_compiler"),
|
||||
providers = ["files_to_run"],
|
||||
executable = True,
|
||||
cfg = "exec",
|
||||
|
|
@ -222,11 +222,11 @@ def _generate_pb2_grpc_src_impl(context):
|
|||
py_info = _merge_pyinfos(
|
||||
[
|
||||
p,
|
||||
context.attr.grpc_library[PyInfo],
|
||||
context.attr._grpc_library[PyInfo],
|
||||
] + [dep[PyInfo] for dep in context.attr.py_deps],
|
||||
)
|
||||
|
||||
runfiles = context.runfiles(files = out_files, transitive_files = py_info.transitive_sources).merge(context.attr.grpc_library[DefaultInfo].data_runfiles)
|
||||
runfiles = context.runfiles(files = out_files, transitive_files = py_info.transitive_sources).merge(context.attr._grpc_library[DefaultInfo].data_runfiles)
|
||||
|
||||
return [
|
||||
DefaultInfo(
|
||||
|
|
@ -259,9 +259,9 @@ _generate_pb2_grpc_src = rule(
|
|||
executable = True,
|
||||
providers = ["files_to_run"],
|
||||
cfg = "exec",
|
||||
default = Label("@com_google_protobuf//:protoc"),
|
||||
default = Label("//external:protocol_compiler"),
|
||||
),
|
||||
"grpc_library": attr.label(
|
||||
"_grpc_library": attr.label(
|
||||
default = Label("//src/python/grpcio/grpc:grpcio"),
|
||||
providers = [PyInfo],
|
||||
),
|
||||
|
|
@ -274,7 +274,6 @@ def py_grpc_library(
|
|||
srcs,
|
||||
deps,
|
||||
strip_prefixes = [],
|
||||
grpc_library = Label("//src/python/grpcio/grpc:grpcio"),
|
||||
**kwargs):
|
||||
"""Generate python code for gRPC services defined in a protobuf.
|
||||
|
||||
|
|
@ -288,9 +287,6 @@ def py_grpc_library(
|
|||
stripped from the beginning of foo_pb2 modules imported by the
|
||||
generated stubs. This is useful in combination with the `imports`
|
||||
attribute of the `py_library` rule.
|
||||
grpc_library: (`label`) a single `py_library` target representing the
|
||||
python gRPC library target to be depended upon. This can be used to
|
||||
generate code that depends on `grpcio` from the Python Package Index.
|
||||
**kwargs: Additional arguments to be supplied to the invocation of
|
||||
py_library.
|
||||
"""
|
||||
|
|
@ -305,6 +301,5 @@ def py_grpc_library(
|
|||
deps = srcs,
|
||||
py_deps = deps,
|
||||
strip_prefixes = strip_prefixes,
|
||||
grpc_library = grpc_library,
|
||||
**kwargs
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
7.1.0
|
||||
6.5.0
|
||||
6.4.0
|
||||
7.0.0
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ TEST_EXPERIMENT_ENABLES = {
|
|||
"test_experiment_4": "test_experiment_4",
|
||||
}
|
||||
|
||||
TEST_EXPERIMENT_POLLERS = [
|
||||
]
|
||||
|
||||
TEST_EXPERIMENTS = {
|
||||
"windows": {
|
||||
"dbg": {
|
||||
|
|
|
|||
|
|
@ -57,12 +57,12 @@ function upload {
|
|||
# upload "github.com/google/boringssl/archive/1c2769383f027befac5b75b6cedd25daf3bf4dcf.tar.gz"
|
||||
|
||||
# bazel binaries used by the tools/bazel wrapper script
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.5.0/bazel-6.5.0-linux-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.5.0/bazel-6.5.0-darwin-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.5.0/bazel-6.5.0-windows-x86_64.exe
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.1.0/bazel-7.1.0-linux-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.1.0/bazel-7.1.0-darwin-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.1.0/bazel-7.1.0-windows-x86_64.exe
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-linux-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-darwin-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-windows-x86_64.exe
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.0.0/bazel-7.0.0-linux-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.0.0/bazel-7.0.0-darwin-x86_64
|
||||
upload github.com/bazelbuild/bazel/releases/download/7.0.0/bazel-7.0.0-windows-x86_64.exe
|
||||
|
||||
# Collect the github archives to mirror from grpc_deps.bzl
|
||||
grep -o '"https://github.com/[^"]*"' bazel/grpc_deps.bzl | sed 's/^"https:\/\///' | sed 's/"$//' | while read -r line ; do
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ extend-exclude = '''
|
|||
| src/python/grpcio/grpc/_grpcio_metadata.py
|
||||
# AUTO-GENERATED BY make_grpcio_tools.py
|
||||
| tools/distrib/python/grpcio_tools/protoc_lib_deps.py
|
||||
# AUTO-GENERATED BY make_grpcio_observability.py
|
||||
| src/python/grpcio_observability/observability_lib_deps.py
|
||||
| .*_pb2.py # autogenerated Protocol Buffer files
|
||||
| .*_pb2_grpc.py # autogenerated Protocol Buffer gRPC files
|
||||
# AUTO-GENERATED By tools/distrib/python/xds_protos/build.py
|
||||
|
|
@ -34,6 +32,7 @@ line_length = 80
|
|||
src_paths = [
|
||||
"examples/python/data_transmission",
|
||||
"examples/python/async_streaming",
|
||||
"tools/run_tests/xds_k8s_test_driver",
|
||||
"src/python/grpcio_tests",
|
||||
"tools/run_tests",
|
||||
]
|
||||
|
|
@ -43,7 +42,7 @@ known_first_party = [
|
|||
]
|
||||
known_third_party = ["grpc"]
|
||||
skip_glob = [
|
||||
"*/third_party/*",
|
||||
"third_party/*",
|
||||
"*/env/*",
|
||||
"*pb2*.py",
|
||||
"*pb2*.pyi",
|
||||
|
|
|
|||
|
|
@ -13,5 +13,5 @@
|
|||
# limitations under the License.
|
||||
|
||||
module GrpcBuildConfig
|
||||
CORE_WINDOWS_DLL = '/tmp/libs/opt/grpc-42.dll'
|
||||
CORE_WINDOWS_DLL = '/tmp/libs/opt/grpc-37.dll'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ settings:
|
|||
'#08': Use "-preN" suffixes to identify pre-release versions
|
||||
'#09': Per-language overrides are possible with (eg) ruby_version tag here
|
||||
'#10': See the expand_version.py for all the quirks here
|
||||
core_version: 42.0.0
|
||||
core_version: 37.0.0
|
||||
csharp_major_version: 2
|
||||
g_stands_for: gnarly
|
||||
protobuf_version: 3.26.1
|
||||
version: 1.65.0-dev
|
||||
g_stands_for: grand
|
||||
protobuf_version: 3.25.1
|
||||
version: 1.61.0-dev
|
||||
configs:
|
||||
asan:
|
||||
CC: clang
|
||||
|
|
@ -29,7 +29,7 @@ configs:
|
|||
compile_the_world: true
|
||||
test_environ:
|
||||
ASAN_OPTIONS: detect_leaks=1:color=always
|
||||
LSAN_OPTIONS: suppressions=test/core/test_util/lsan_suppressions.txt:report_objects=1
|
||||
LSAN_OPTIONS: suppressions=test/core/util/lsan_suppressions.txt:report_objects=1
|
||||
asan-noleaks:
|
||||
CC: clang
|
||||
CPPFLAGS: -O0 -fsanitize-coverage=edge,trace-pc-guard -fsanitize=address -fno-omit-frame-pointer
|
||||
|
|
@ -53,7 +53,7 @@ configs:
|
|||
compile_the_world: true
|
||||
test_environ:
|
||||
ASAN_OPTIONS: detect_leaks=1:color=always
|
||||
LSAN_OPTIONS: suppressions=test/core/test_util/lsan_suppressions.txt:report_objects=1
|
||||
LSAN_OPTIONS: suppressions=test/core/util/lsan_suppressions.txt:report_objects=1
|
||||
c++-compat:
|
||||
CFLAGS: -Wc++-compat
|
||||
CPPFLAGS: -O0
|
||||
|
|
@ -115,7 +115,7 @@ configs:
|
|||
LDXX: clang++
|
||||
compile_the_world: true
|
||||
test_environ:
|
||||
TSAN_OPTIONS: suppressions=test/core/test_util/tsan_suppressions.txt:halt_on_error=1:second_deadlock_stack=1
|
||||
TSAN_OPTIONS: suppressions=test/core/util/tsan_suppressions.txt:halt_on_error=1:second_deadlock_stack=1
|
||||
ubsan:
|
||||
CC: clang
|
||||
CPPFLAGS: -O0 -stdlib=libc++ -fsanitize-coverage=edge,trace-pc-guard -fsanitize=undefined
|
||||
|
|
@ -127,8 +127,12 @@ configs:
|
|||
LDXX: clang++
|
||||
compile_the_world: true
|
||||
test_environ:
|
||||
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1:suppressions=test/core/test_util/ubsan_suppressions.txt
|
||||
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1:suppressions=test/core/util/ubsan_suppressions.txt
|
||||
defaults:
|
||||
abseil:
|
||||
CPPFLAGS: -g -Ithird_party/abseil-cpp
|
||||
benchmark:
|
||||
CPPFLAGS: -Ithird_party/benchmark/include -DHAVE_POSIX_REGEX
|
||||
boringssl:
|
||||
CFLAGS: -g
|
||||
CPPFLAGS: -Ithird_party/boringssl-with-bazel/src/include -fvisibility=hidden -DOPENSSL_NO_ASM
|
||||
|
|
@ -146,8 +150,7 @@ defaults:
|
|||
COREFLAGS: -fno-exceptions
|
||||
CPPFLAGS: -g -Wall -Wextra -DOSATOMIC_USE_INLINED=1 -Ithird_party/abseil-cpp -Ithird_party/re2
|
||||
-Ithird_party/upb -Isrc/core/ext/upb-gen -Isrc/core/ext/upbdefs-gen -Ithird_party/utf8_range
|
||||
-Ithird_party/xxhash -Ithird_party/cares/cares/include -Ithird_party/cares -Ithird_party/cares/cares
|
||||
-Ithird_party/address_sorting/include
|
||||
-Ithird_party/xxhash
|
||||
LDFLAGS: -g
|
||||
zlib:
|
||||
CFLAGS: -fvisibility=hidden
|
||||
|
|
@ -199,17 +202,12 @@ ruby_gem:
|
|||
- boringssl
|
||||
- re2
|
||||
- z
|
||||
swift_boringssl_package:
|
||||
deps:
|
||||
- boringssl
|
||||
swift_package:
|
||||
deps:
|
||||
- grpc
|
||||
- grpc_authorization_provider
|
||||
- gpr
|
||||
- upb_base_lib
|
||||
- upb_mem_lib
|
||||
- upb_message_lib
|
||||
- upb
|
||||
- upb_json_lib
|
||||
- upb_textformat_lib
|
||||
- utf8_range_lib
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules)
|
|||
@_gRPC_FIND_CARES@
|
||||
@_gRPC_FIND_ABSL@
|
||||
@_gRPC_FIND_RE2@
|
||||
@_gRPC_FIND_OPENTELEMETRY@
|
||||
|
||||
# Targets
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright 2024 gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
if(TARGET opentelemetry-cpp::api)
|
||||
# If opentelemetry is included already, skip including it.
|
||||
# OpenTelemetry does not work with "module" mode at present.
|
||||
# elseif(gRPC_OPENTELEMETRY_PROVIDER STREQUAL "module")
|
||||
# if(NOT OPENTELEMETRY_ROOT_DIR)
|
||||
# set(OPENTELEMETRY_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/opentelemetry-cpp)
|
||||
# endif()
|
||||
# set(BUILD_TESTING OFF)
|
||||
# if(NOT gRPC_BUILD_TESTS)
|
||||
# set(WITH_API_ONLY ON)
|
||||
# endif()
|
||||
# set(WITH_ABSEIL ON)
|
||||
# include_directories(${OPENTELEMETRY_ROOT_DIR} "${OPENTELEMETRY_ROOT_DIR}/api/include")
|
||||
# add_subdirectory(${OPENTELEMETRY_ROOT_DIR} third_party/opentelemetry-cpp)
|
||||
# if(EXISTS "${OPENTELEMETRY_ROOT_DIR}/CMakeLists.txt")
|
||||
# Unclear whether we should install OpenTelemetry along with gRPC
|
||||
# if(gRPC_INSTALL AND _gRPC_INSTALL_SUPPORTED_FROM_MODULE)
|
||||
# set(OPENTELEMETRY_INSTALL ON)
|
||||
# endif()
|
||||
# else()
|
||||
# message(WARNING "gRPC_OPENTELEMETRY_PROVIDER is \"module\" but OPENTELEMETRY_ROOT_DIR is wrong")
|
||||
# endif()
|
||||
# if(gRPC_INSTALL AND NOT _gRPC_INSTALL_SUPPORTED_FROM_MODULE)
|
||||
# message(WARNING "gRPC_INSTALL will be forced to FALSE because gRPC_OPENTELEMETRY_PROVIDER is \"module\" and CMake version (${CMAKE_VERSION}) is less than 3.13.")
|
||||
# set(gRPC_INSTALL FALSE)
|
||||
# endif()
|
||||
elseif(gRPC_OPENTELEMETRY_PROVIDER STREQUAL "package")
|
||||
find_package(opentelemetry-cpp CONFIG REQUIRED)
|
||||
endif()
|
||||
set(_gRPC_FIND_OPENTELEMETRY "if(NOT TARGET opentelemetry-cpp::opentelemetry_api)\n find_package(opentelemetry-cpp)\nendif()")
|
||||
|
|
@ -12,20 +12,9 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(gRPC_USE_SYSTEMD "AUTO" CACHE STRING "Build with libsystemd support if available. Can be ON, OFF or AUTO")
|
||||
|
||||
if (NOT gRPC_USE_SYSTEMD STREQUAL "OFF")
|
||||
if (gRPC_USE_SYSTEMD STREQUAL "ON")
|
||||
find_package(systemd REQUIRED)
|
||||
elseif (gRPC_USE_SYSTEMD STREQUAL "AUTO")
|
||||
find_package(systemd)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown value for gRPC_USE_SYSTEMD = ${gRPC_USE_SYSTEMD}")
|
||||
endif()
|
||||
|
||||
if(TARGET systemd)
|
||||
set(_gRPC_SYSTEMD_LIBRARIES systemd ${SYSTEMD_LINK_LIBRARIES})
|
||||
add_definitions(-DHAVE_LIBSYSTEMD)
|
||||
endif()
|
||||
set(_gRPC_FIND_SYSTEMD "if(NOT systemd_FOUND)\n find_package(systemd)\nendif()")
|
||||
find_package(systemd)
|
||||
if(TARGET systemd)
|
||||
set(_gRPC_SYSTEMD_LIBRARIES systemd ${SYSTEMD_LINK_LIBRARIES})
|
||||
add_definitions(-DHAVE_LIBSYSTEMD)
|
||||
endif()
|
||||
set(_gRPC_FIND_SYSTEMD "if(NOT systemd_FOUND)\n find_package(systemd)\nendif()")
|
||||
|
|
|
|||
|
|
@ -41,43 +41,90 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_SUBST(GRPC_SHARED_LIBADD)
|
||||
|
||||
PHP_NEW_EXTENSION(grpc,
|
||||
src/core/channelz/channel_trace.cc \
|
||||
src/core/channelz/channelz.cc \
|
||||
src/core/channelz/channelz_registry.cc \
|
||||
src/core/client_channel/backup_poller.cc \
|
||||
src/core/client_channel/client_channel.cc \
|
||||
src/core/client_channel/client_channel_factory.cc \
|
||||
src/core/client_channel/client_channel_filter.cc \
|
||||
src/core/client_channel/client_channel_plugin.cc \
|
||||
src/core/client_channel/client_channel_service_config.cc \
|
||||
src/core/client_channel/config_selector.cc \
|
||||
src/core/client_channel/dynamic_filters.cc \
|
||||
src/core/client_channel/global_subchannel_pool.cc \
|
||||
src/core/client_channel/load_balanced_call_destination.cc \
|
||||
src/core/client_channel/local_subchannel_pool.cc \
|
||||
src/core/client_channel/retry_filter.cc \
|
||||
src/core/client_channel/retry_filter_legacy_call_data.cc \
|
||||
src/core/client_channel/retry_service_config.cc \
|
||||
src/core/client_channel/retry_throttle.cc \
|
||||
src/core/client_channel/subchannel.cc \
|
||||
src/core/client_channel/subchannel_pool_interface.cc \
|
||||
src/core/client_channel/subchannel_stream_client.cc \
|
||||
src/core/ext/filters/backend_metrics/backend_metric_filter.cc \
|
||||
src/core/ext/filters/census/grpc_context.cc \
|
||||
src/core/ext/filters/channel_idle/channel_idle_filter.cc \
|
||||
src/core/ext/filters/channel_idle/idle_filter_state.cc \
|
||||
src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc \
|
||||
src/core/ext/filters/client_channel/backend_metric.cc \
|
||||
src/core/ext/filters/client_channel/backup_poller.cc \
|
||||
src/core/ext/filters/client_channel/channel_connectivity.cc \
|
||||
src/core/ext/filters/client_channel/client_channel.cc \
|
||||
src/core/ext/filters/client_channel/client_channel_channelz.cc \
|
||||
src/core/ext/filters/client_channel/client_channel_factory.cc \
|
||||
src/core/ext/filters/client_channel/client_channel_plugin.cc \
|
||||
src/core/ext/filters/client_channel/client_channel_service_config.cc \
|
||||
src/core/ext/filters/client_channel/config_selector.cc \
|
||||
src/core/ext/filters/client_channel/dynamic_filters.cc \
|
||||
src/core/ext/filters/client_channel/global_subchannel_pool.cc \
|
||||
src/core/ext/filters/client_channel/http_proxy_mapper.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/address_filtering.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/endpoint_list.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/health_check_client.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/priority/priority.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/rls/rls.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/xds/cds.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc \
|
||||
src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc \
|
||||
src/core/ext/filters/client_channel/local_subchannel_pool.cc \
|
||||
src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc \
|
||||
src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/polling_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/xds/xds_dependency_manager.cc \
|
||||
src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc \
|
||||
src/core/ext/filters/client_channel/resolver/xds/xds_resolver_trace.cc \
|
||||
src/core/ext/filters/client_channel/retry_filter.cc \
|
||||
src/core/ext/filters/client_channel/retry_filter_legacy_call_data.cc \
|
||||
src/core/ext/filters/client_channel/retry_service_config.cc \
|
||||
src/core/ext/filters/client_channel/retry_throttle.cc \
|
||||
src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc \
|
||||
src/core/ext/filters/client_channel/subchannel.cc \
|
||||
src/core/ext/filters/client_channel/subchannel_pool_interface.cc \
|
||||
src/core/ext/filters/client_channel/subchannel_stream_client.cc \
|
||||
src/core/ext/filters/deadline/deadline_filter.cc \
|
||||
src/core/ext/filters/fault_injection/fault_injection_filter.cc \
|
||||
src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc \
|
||||
src/core/ext/filters/http/client/http_client_filter.cc \
|
||||
src/core/ext/filters/http/client_authority_filter.cc \
|
||||
src/core/ext/filters/http/http_filters_plugin.cc \
|
||||
src/core/ext/filters/http/message_compress/compression_filter.cc \
|
||||
src/core/ext/filters/http/message_compress/legacy_compression_filter.cc \
|
||||
src/core/ext/filters/http/server/http_server_filter.cc \
|
||||
src/core/ext/filters/message_size/message_size_filter.cc \
|
||||
src/core/ext/filters/rbac/rbac_filter.cc \
|
||||
src/core/ext/filters/rbac/rbac_service_config_parser.cc \
|
||||
src/core/ext/filters/server_config_selector/server_config_selector_filter.cc \
|
||||
src/core/ext/filters/stateful_session/stateful_session_filter.cc \
|
||||
src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc \
|
||||
src/core/ext/gcp/metadata_query.cc \
|
||||
src/core/ext/transport/chttp2/alpn/alpn.cc \
|
||||
src/core/ext/transport/chttp2/client/chttp2_connector.cc \
|
||||
src/core/ext/transport/chttp2/server/chttp2_server.cc \
|
||||
|
|
@ -86,7 +133,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/transport/chttp2/transport/chttp2_transport.cc \
|
||||
src/core/ext/transport/chttp2/transport/decode_huff.cc \
|
||||
src/core/ext/transport/chttp2/transport/flow_control.cc \
|
||||
src/core/ext/transport/chttp2/transport/frame.cc \
|
||||
src/core/ext/transport/chttp2/transport/frame_data.cc \
|
||||
src/core/ext/transport/chttp2/transport/frame_goaway.cc \
|
||||
src/core/ext/transport/chttp2/transport/frame_ping.cc \
|
||||
|
|
@ -99,6 +145,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/transport/chttp2/transport/hpack_parser.cc \
|
||||
src/core/ext/transport/chttp2/transport/hpack_parser_table.cc \
|
||||
src/core/ext/transport/chttp2/transport/http2_settings.cc \
|
||||
src/core/ext/transport/chttp2/transport/http_trace.cc \
|
||||
src/core/ext/transport/chttp2/transport/huffsyms.cc \
|
||||
src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc \
|
||||
src/core/ext/transport/chttp2/transport/parsing.cc \
|
||||
|
|
@ -109,6 +156,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/transport/chttp2/transport/varint.cc \
|
||||
src/core/ext/transport/chttp2/transport/write_size_policy.cc \
|
||||
src/core/ext/transport/chttp2/transport/writing.cc \
|
||||
src/core/ext/transport/inproc/inproc_plugin.cc \
|
||||
src/core/ext/transport/inproc/inproc_transport.cc \
|
||||
src/core/ext/transport/inproc/legacy_inproc_transport.cc \
|
||||
src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c \
|
||||
|
|
@ -140,7 +188,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c \
|
||||
src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c \
|
||||
|
|
@ -305,7 +352,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c \
|
||||
|
|
@ -428,26 +474,49 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c \
|
||||
src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c \
|
||||
src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc \
|
||||
src/core/handshaker/handshaker.cc \
|
||||
src/core/handshaker/handshaker_registry.cc \
|
||||
src/core/handshaker/http_connect/http_connect_handshaker.cc \
|
||||
src/core/handshaker/http_connect/http_proxy_mapper.cc \
|
||||
src/core/handshaker/proxy_mapper_registry.cc \
|
||||
src/core/handshaker/security/secure_endpoint.cc \
|
||||
src/core/handshaker/security/security_handshaker.cc \
|
||||
src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc \
|
||||
src/core/ext/xds/certificate_provider_store.cc \
|
||||
src/core/ext/xds/file_watcher_certificate_provider_factory.cc \
|
||||
src/core/ext/xds/xds_api.cc \
|
||||
src/core/ext/xds/xds_audit_logger_registry.cc \
|
||||
src/core/ext/xds/xds_bootstrap.cc \
|
||||
src/core/ext/xds/xds_bootstrap_grpc.cc \
|
||||
src/core/ext/xds/xds_certificate_provider.cc \
|
||||
src/core/ext/xds/xds_channel_stack_modifier.cc \
|
||||
src/core/ext/xds/xds_client.cc \
|
||||
src/core/ext/xds/xds_client_grpc.cc \
|
||||
src/core/ext/xds/xds_client_stats.cc \
|
||||
src/core/ext/xds/xds_cluster.cc \
|
||||
src/core/ext/xds/xds_cluster_specifier_plugin.cc \
|
||||
src/core/ext/xds/xds_common_types.cc \
|
||||
src/core/ext/xds/xds_endpoint.cc \
|
||||
src/core/ext/xds/xds_health_status.cc \
|
||||
src/core/ext/xds/xds_http_fault_filter.cc \
|
||||
src/core/ext/xds/xds_http_filters.cc \
|
||||
src/core/ext/xds/xds_http_rbac_filter.cc \
|
||||
src/core/ext/xds/xds_http_stateful_session_filter.cc \
|
||||
src/core/ext/xds/xds_lb_policy_registry.cc \
|
||||
src/core/ext/xds/xds_listener.cc \
|
||||
src/core/ext/xds/xds_route_config.cc \
|
||||
src/core/ext/xds/xds_routing.cc \
|
||||
src/core/ext/xds/xds_server_config_fetcher.cc \
|
||||
src/core/ext/xds/xds_transport_grpc.cc \
|
||||
src/core/lib/address_utils/parse_address.cc \
|
||||
src/core/lib/address_utils/sockaddr_utils.cc \
|
||||
src/core/lib/backoff/backoff.cc \
|
||||
src/core/lib/backoff/random_early_detection.cc \
|
||||
src/core/lib/channel/call_tracer.cc \
|
||||
src/core/lib/channel/channel_args.cc \
|
||||
src/core/lib/channel/channel_args_preconditioning.cc \
|
||||
src/core/lib/channel/channel_stack.cc \
|
||||
src/core/lib/channel/channel_stack_builder.cc \
|
||||
src/core/lib/channel/channel_stack_builder_impl.cc \
|
||||
src/core/lib/channel/channel_stack_trace.cc \
|
||||
src/core/lib/channel/channel_trace.cc \
|
||||
src/core/lib/channel/channelz.cc \
|
||||
src/core/lib/channel/channelz_registry.cc \
|
||||
src/core/lib/channel/connected_channel.cc \
|
||||
src/core/lib/channel/promise_based_filter.cc \
|
||||
src/core/lib/channel/server_call_tracer_filter.cc \
|
||||
src/core/lib/channel/status_util.cc \
|
||||
src/core/lib/compression/compression.cc \
|
||||
src/core/lib/compression/compression_internal.cc \
|
||||
|
|
@ -457,8 +526,10 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/config/core_configuration.cc \
|
||||
src/core/lib/config/load_config.cc \
|
||||
src/core/lib/debug/event_log.cc \
|
||||
src/core/lib/debug/histogram_view.cc \
|
||||
src/core/lib/debug/stats.cc \
|
||||
src/core/lib/debug/stats_data.cc \
|
||||
src/core/lib/debug/trace.cc \
|
||||
src/core/lib/debug/trace_flags.cc \
|
||||
src/core/lib/event_engine/ares_resolver.cc \
|
||||
src/core/lib/event_engine/cf_engine/cf_engine.cc \
|
||||
src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc \
|
||||
|
|
@ -497,6 +568,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc \
|
||||
src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc \
|
||||
src/core/lib/event_engine/time_util.cc \
|
||||
src/core/lib/event_engine/trace.cc \
|
||||
src/core/lib/event_engine/utils.cc \
|
||||
src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc \
|
||||
src/core/lib/event_engine/windows/iocp.cc \
|
||||
|
|
@ -508,11 +580,36 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/event_engine/work_queue/basic_work_queue.cc \
|
||||
src/core/lib/experiments/config.cc \
|
||||
src/core/lib/experiments/experiments.cc \
|
||||
src/core/lib/gpr/alloc.cc \
|
||||
src/core/lib/gpr/android/log.cc \
|
||||
src/core/lib/gpr/atm.cc \
|
||||
src/core/lib/gpr/iphone/cpu.cc \
|
||||
src/core/lib/gpr/linux/cpu.cc \
|
||||
src/core/lib/gpr/linux/log.cc \
|
||||
src/core/lib/gpr/log.cc \
|
||||
src/core/lib/gpr/msys/tmpfile.cc \
|
||||
src/core/lib/gpr/posix/cpu.cc \
|
||||
src/core/lib/gpr/posix/log.cc \
|
||||
src/core/lib/gpr/posix/string.cc \
|
||||
src/core/lib/gpr/posix/sync.cc \
|
||||
src/core/lib/gpr/posix/time.cc \
|
||||
src/core/lib/gpr/posix/tmpfile.cc \
|
||||
src/core/lib/gpr/string.cc \
|
||||
src/core/lib/gpr/sync.cc \
|
||||
src/core/lib/gpr/sync_abseil.cc \
|
||||
src/core/lib/gpr/time.cc \
|
||||
src/core/lib/gpr/time_precise.cc \
|
||||
src/core/lib/gpr/windows/cpu.cc \
|
||||
src/core/lib/gpr/windows/log.cc \
|
||||
src/core/lib/gpr/windows/string.cc \
|
||||
src/core/lib/gpr/windows/string_util.cc \
|
||||
src/core/lib/gpr/windows/sync.cc \
|
||||
src/core/lib/gpr/windows/time.cc \
|
||||
src/core/lib/gpr/windows/tmpfile.cc \
|
||||
src/core/lib/gpr/wrap_memcpy.cc \
|
||||
src/core/lib/gprpp/crash.cc \
|
||||
src/core/lib/gprpp/dump_args.cc \
|
||||
src/core/lib/gprpp/examine_stack.cc \
|
||||
src/core/lib/gprpp/fork.cc \
|
||||
src/core/lib/gprpp/glob.cc \
|
||||
src/core/lib/gprpp/host_port.cc \
|
||||
src/core/lib/gprpp/linux/env.cc \
|
||||
src/core/lib/gprpp/load_file.cc \
|
||||
|
|
@ -529,13 +626,17 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/gprpp/time.cc \
|
||||
src/core/lib/gprpp/time_averaged_stats.cc \
|
||||
src/core/lib/gprpp/time_util.cc \
|
||||
src/core/lib/gprpp/uuid_v4.cc \
|
||||
src/core/lib/gprpp/validation_errors.cc \
|
||||
src/core/lib/gprpp/windows/directory_reader.cc \
|
||||
src/core/lib/gprpp/windows/env.cc \
|
||||
src/core/lib/gprpp/windows/stat.cc \
|
||||
src/core/lib/gprpp/windows/thd.cc \
|
||||
src/core/lib/gprpp/work_serializer.cc \
|
||||
src/core/lib/handshaker/proxy_mapper_registry.cc \
|
||||
src/core/lib/http/format_request.cc \
|
||||
src/core/lib/http/httpcli.cc \
|
||||
src/core/lib/http/httpcli_security_connector.cc \
|
||||
src/core/lib/http/parser.cc \
|
||||
src/core/lib/iomgr/buffer_list.cc \
|
||||
src/core/lib/iomgr/call_combiner.cc \
|
||||
src/core/lib/iomgr/cfstream_handle.cc \
|
||||
|
|
@ -552,6 +653,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/iomgr/ev_epoll1_linux.cc \
|
||||
src/core/lib/iomgr/ev_poll_posix.cc \
|
||||
src/core/lib/iomgr/ev_posix.cc \
|
||||
src/core/lib/iomgr/ev_windows.cc \
|
||||
src/core/lib/iomgr/event_engine_shims/closure.cc \
|
||||
src/core/lib/iomgr/event_engine_shims/endpoint.cc \
|
||||
src/core/lib/iomgr/event_engine_shims/tcp_client.cc \
|
||||
|
|
@ -571,6 +673,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/iomgr/iomgr_posix.cc \
|
||||
src/core/lib/iomgr/iomgr_posix_cfstream.cc \
|
||||
src/core/lib/iomgr/iomgr_windows.cc \
|
||||
src/core/lib/iomgr/load_file.cc \
|
||||
src/core/lib/iomgr/lockfree_event.cc \
|
||||
src/core/lib/iomgr/polling_entity.cc \
|
||||
src/core/lib/iomgr/pollset.cc \
|
||||
|
|
@ -612,17 +715,27 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/iomgr/wakeup_fd_nospecial.cc \
|
||||
src/core/lib/iomgr/wakeup_fd_pipe.cc \
|
||||
src/core/lib/iomgr/wakeup_fd_posix.cc \
|
||||
src/core/lib/json/json_object_loader.cc \
|
||||
src/core/lib/json/json_reader.cc \
|
||||
src/core/lib/json/json_util.cc \
|
||||
src/core/lib/json/json_writer.cc \
|
||||
src/core/lib/load_balancing/lb_policy.cc \
|
||||
src/core/lib/load_balancing/lb_policy_registry.cc \
|
||||
src/core/lib/matchers/matchers.cc \
|
||||
src/core/lib/promise/activity.cc \
|
||||
src/core/lib/promise/party.cc \
|
||||
src/core/lib/promise/sleep.cc \
|
||||
src/core/lib/promise/trace.cc \
|
||||
src/core/lib/resolver/endpoint_addresses.cc \
|
||||
src/core/lib/resolver/resolver.cc \
|
||||
src/core/lib/resolver/resolver_registry.cc \
|
||||
src/core/lib/resource_quota/api.cc \
|
||||
src/core/lib/resource_quota/arena.cc \
|
||||
src/core/lib/resource_quota/connection_quota.cc \
|
||||
src/core/lib/resource_quota/memory_quota.cc \
|
||||
src/core/lib/resource_quota/periodic_update.cc \
|
||||
src/core/lib/resource_quota/resource_quota.cc \
|
||||
src/core/lib/resource_quota/thread_quota.cc \
|
||||
src/core/lib/resource_quota/trace.cc \
|
||||
src/core/lib/security/authorization/audit_logging.cc \
|
||||
src/core/lib/security/authorization/authorization_policy_provider_vtable.cc \
|
||||
src/core/lib/security/authorization/evaluate_args.cc \
|
||||
|
|
@ -676,122 +789,65 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/lib/security/security_connector/insecure/insecure_security_connector.cc \
|
||||
src/core/lib/security/security_connector/load_system_roots_fallback.cc \
|
||||
src/core/lib/security/security_connector/load_system_roots_supported.cc \
|
||||
src/core/lib/security/security_connector/load_system_roots_windows.cc \
|
||||
src/core/lib/security/security_connector/local/local_security_connector.cc \
|
||||
src/core/lib/security/security_connector/security_connector.cc \
|
||||
src/core/lib/security/security_connector/ssl/ssl_security_connector.cc \
|
||||
src/core/lib/security/security_connector/ssl_utils.cc \
|
||||
src/core/lib/security/security_connector/tls/tls_security_connector.cc \
|
||||
src/core/lib/security/transport/client_auth_filter.cc \
|
||||
src/core/lib/security/transport/legacy_server_auth_filter.cc \
|
||||
src/core/lib/security/transport/secure_endpoint.cc \
|
||||
src/core/lib/security/transport/security_handshaker.cc \
|
||||
src/core/lib/security/transport/server_auth_filter.cc \
|
||||
src/core/lib/security/transport/tsi_error.cc \
|
||||
src/core/lib/security/util/json_util.cc \
|
||||
src/core/lib/service_config/service_config_impl.cc \
|
||||
src/core/lib/service_config/service_config_parser.cc \
|
||||
src/core/lib/slice/b64.cc \
|
||||
src/core/lib/slice/percent_encoding.cc \
|
||||
src/core/lib/slice/slice.cc \
|
||||
src/core/lib/slice/slice_buffer.cc \
|
||||
src/core/lib/slice/slice_refcount.cc \
|
||||
src/core/lib/slice/slice_string_helpers.cc \
|
||||
src/core/lib/surface/api_trace.cc \
|
||||
src/core/lib/surface/builtins.cc \
|
||||
src/core/lib/surface/byte_buffer.cc \
|
||||
src/core/lib/surface/byte_buffer_reader.cc \
|
||||
src/core/lib/surface/call.cc \
|
||||
src/core/lib/surface/call_details.cc \
|
||||
src/core/lib/surface/call_log_batch.cc \
|
||||
src/core/lib/surface/call_utils.cc \
|
||||
src/core/lib/surface/call_trace.cc \
|
||||
src/core/lib/surface/channel.cc \
|
||||
src/core/lib/surface/channel_create.cc \
|
||||
src/core/lib/surface/channel_init.cc \
|
||||
src/core/lib/surface/channel_ping.cc \
|
||||
src/core/lib/surface/channel_stack_type.cc \
|
||||
src/core/lib/surface/client_call.cc \
|
||||
src/core/lib/surface/completion_queue.cc \
|
||||
src/core/lib/surface/completion_queue_factory.cc \
|
||||
src/core/lib/surface/event_string.cc \
|
||||
src/core/lib/surface/filter_stack_call.cc \
|
||||
src/core/lib/surface/init.cc \
|
||||
src/core/lib/surface/init_internally.cc \
|
||||
src/core/lib/surface/lame_client.cc \
|
||||
src/core/lib/surface/legacy_channel.cc \
|
||||
src/core/lib/surface/metadata_array.cc \
|
||||
src/core/lib/surface/server_call.cc \
|
||||
src/core/lib/surface/server.cc \
|
||||
src/core/lib/surface/validate_metadata.cc \
|
||||
src/core/lib/surface/version.cc \
|
||||
src/core/lib/transport/batch_builder.cc \
|
||||
src/core/lib/transport/bdp_estimator.cc \
|
||||
src/core/lib/transport/call_arena_allocator.cc \
|
||||
src/core/lib/transport/call_filters.cc \
|
||||
src/core/lib/transport/call_final_info.cc \
|
||||
src/core/lib/transport/call_spine.cc \
|
||||
src/core/lib/transport/connectivity_state.cc \
|
||||
src/core/lib/transport/error_utils.cc \
|
||||
src/core/lib/transport/interception_chain.cc \
|
||||
src/core/lib/transport/message.cc \
|
||||
src/core/lib/transport/metadata.cc \
|
||||
src/core/lib/transport/handshaker.cc \
|
||||
src/core/lib/transport/handshaker_registry.cc \
|
||||
src/core/lib/transport/http_connect_handshaker.cc \
|
||||
src/core/lib/transport/metadata_batch.cc \
|
||||
src/core/lib/transport/metadata_info.cc \
|
||||
src/core/lib/transport/parsed_metadata.cc \
|
||||
src/core/lib/transport/status_conversion.cc \
|
||||
src/core/lib/transport/tcp_connect_handshaker.cc \
|
||||
src/core/lib/transport/timeout_encoding.cc \
|
||||
src/core/lib/transport/transport.cc \
|
||||
src/core/lib/transport/transport_op_string.cc \
|
||||
src/core/lib/uri/uri_parser.cc \
|
||||
src/core/load_balancing/address_filtering.cc \
|
||||
src/core/load_balancing/backend_metric_parser.cc \
|
||||
src/core/load_balancing/child_policy_handler.cc \
|
||||
src/core/load_balancing/endpoint_list.cc \
|
||||
src/core/load_balancing/grpclb/client_load_reporting_filter.cc \
|
||||
src/core/load_balancing/grpclb/grpclb.cc \
|
||||
src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc \
|
||||
src/core/load_balancing/grpclb/grpclb_client_stats.cc \
|
||||
src/core/load_balancing/grpclb/load_balancer_api.cc \
|
||||
src/core/load_balancing/health_check_client.cc \
|
||||
src/core/load_balancing/lb_policy.cc \
|
||||
src/core/load_balancing/lb_policy_registry.cc \
|
||||
src/core/load_balancing/oob_backend_metric.cc \
|
||||
src/core/load_balancing/outlier_detection/outlier_detection.cc \
|
||||
src/core/load_balancing/pick_first/pick_first.cc \
|
||||
src/core/load_balancing/priority/priority.cc \
|
||||
src/core/load_balancing/ring_hash/ring_hash.cc \
|
||||
src/core/load_balancing/rls/rls.cc \
|
||||
src/core/load_balancing/round_robin/round_robin.cc \
|
||||
src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc \
|
||||
src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc \
|
||||
src/core/load_balancing/weighted_target/weighted_target.cc \
|
||||
src/core/load_balancing/xds/cds.cc \
|
||||
src/core/load_balancing/xds/xds_cluster_impl.cc \
|
||||
src/core/load_balancing/xds/xds_cluster_manager.cc \
|
||||
src/core/load_balancing/xds/xds_override_host.cc \
|
||||
src/core/load_balancing/xds/xds_wrr_locality.cc \
|
||||
src/core/plugin_registry/grpc_plugin_registry.cc \
|
||||
src/core/plugin_registry/grpc_plugin_registry_extra.cc \
|
||||
src/core/resolver/binder/binder_resolver.cc \
|
||||
src/core/resolver/dns/c_ares/dns_resolver_ares.cc \
|
||||
src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc \
|
||||
src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc \
|
||||
src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc \
|
||||
src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc \
|
||||
src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
|
||||
src/core/resolver/dns/dns_resolver_plugin.cc \
|
||||
src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc \
|
||||
src/core/resolver/dns/event_engine/service_config_helper.cc \
|
||||
src/core/resolver/dns/native/dns_resolver.cc \
|
||||
src/core/resolver/endpoint_addresses.cc \
|
||||
src/core/resolver/fake/fake_resolver.cc \
|
||||
src/core/resolver/google_c2p/google_c2p_resolver.cc \
|
||||
src/core/resolver/polling_resolver.cc \
|
||||
src/core/resolver/resolver.cc \
|
||||
src/core/resolver/resolver_registry.cc \
|
||||
src/core/resolver/sockaddr/sockaddr_resolver.cc \
|
||||
src/core/resolver/xds/xds_dependency_manager.cc \
|
||||
src/core/resolver/xds/xds_resolver.cc \
|
||||
src/core/server/server.cc \
|
||||
src/core/server/server_call_tracer_filter.cc \
|
||||
src/core/server/server_config_selector_filter.cc \
|
||||
src/core/server/xds_channel_stack_modifier.cc \
|
||||
src/core/server/xds_server_config_fetcher.cc \
|
||||
src/core/service_config/service_config_channel_arg_filter.cc \
|
||||
src/core/service_config/service_config_impl.cc \
|
||||
src/core/service_config/service_config_parser.cc \
|
||||
src/core/telemetry/call_tracer.cc \
|
||||
src/core/telemetry/histogram_view.cc \
|
||||
src/core/telemetry/metrics.cc \
|
||||
src/core/telemetry/stats.cc \
|
||||
src/core/telemetry/stats_data.cc \
|
||||
src/core/tsi/alts/crypt/aes_gcm.cc \
|
||||
src/core/tsi/alts/crypt/gsec.cc \
|
||||
src/core/tsi/alts/frame_protector/alts_counter.cc \
|
||||
|
|
@ -821,65 +877,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
src/core/tsi/ssl_transport_security_utils.cc \
|
||||
src/core/tsi/transport_security.cc \
|
||||
src/core/tsi/transport_security_grpc.cc \
|
||||
src/core/util/alloc.cc \
|
||||
src/core/util/android/log.cc \
|
||||
src/core/util/atm.cc \
|
||||
src/core/util/gcp_metadata_query.cc \
|
||||
src/core/util/http_client/format_request.cc \
|
||||
src/core/util/http_client/httpcli.cc \
|
||||
src/core/util/http_client/httpcli_security_connector.cc \
|
||||
src/core/util/http_client/parser.cc \
|
||||
src/core/util/iphone/cpu.cc \
|
||||
src/core/util/json/json_object_loader.cc \
|
||||
src/core/util/json/json_reader.cc \
|
||||
src/core/util/json/json_util.cc \
|
||||
src/core/util/json/json_writer.cc \
|
||||
src/core/util/linux/cpu.cc \
|
||||
src/core/util/linux/log.cc \
|
||||
src/core/util/log.cc \
|
||||
src/core/util/msys/tmpfile.cc \
|
||||
src/core/util/posix/cpu.cc \
|
||||
src/core/util/posix/log.cc \
|
||||
src/core/util/posix/string.cc \
|
||||
src/core/util/posix/sync.cc \
|
||||
src/core/util/posix/time.cc \
|
||||
src/core/util/posix/tmpfile.cc \
|
||||
src/core/util/string.cc \
|
||||
src/core/util/sync.cc \
|
||||
src/core/util/sync_abseil.cc \
|
||||
src/core/util/time.cc \
|
||||
src/core/util/time_precise.cc \
|
||||
src/core/util/windows/cpu.cc \
|
||||
src/core/util/windows/log.cc \
|
||||
src/core/util/windows/string.cc \
|
||||
src/core/util/windows/string_util.cc \
|
||||
src/core/util/windows/sync.cc \
|
||||
src/core/util/windows/time.cc \
|
||||
src/core/util/windows/tmpfile.cc \
|
||||
src/core/xds/grpc/certificate_provider_store.cc \
|
||||
src/core/xds/grpc/file_watcher_certificate_provider_factory.cc \
|
||||
src/core/xds/grpc/xds_audit_logger_registry.cc \
|
||||
src/core/xds/grpc/xds_bootstrap_grpc.cc \
|
||||
src/core/xds/grpc/xds_certificate_provider.cc \
|
||||
src/core/xds/grpc/xds_client_grpc.cc \
|
||||
src/core/xds/grpc/xds_cluster.cc \
|
||||
src/core/xds/grpc/xds_cluster_specifier_plugin.cc \
|
||||
src/core/xds/grpc/xds_common_types.cc \
|
||||
src/core/xds/grpc/xds_endpoint.cc \
|
||||
src/core/xds/grpc/xds_health_status.cc \
|
||||
src/core/xds/grpc/xds_http_fault_filter.cc \
|
||||
src/core/xds/grpc/xds_http_filters.cc \
|
||||
src/core/xds/grpc/xds_http_rbac_filter.cc \
|
||||
src/core/xds/grpc/xds_http_stateful_session_filter.cc \
|
||||
src/core/xds/grpc/xds_lb_policy_registry.cc \
|
||||
src/core/xds/grpc/xds_listener.cc \
|
||||
src/core/xds/grpc/xds_route_config.cc \
|
||||
src/core/xds/grpc/xds_routing.cc \
|
||||
src/core/xds/grpc/xds_transport_grpc.cc \
|
||||
src/core/xds/xds_client/xds_api.cc \
|
||||
src/core/xds/xds_client/xds_bootstrap.cc \
|
||||
src/core/xds/xds_client/xds_client.cc \
|
||||
src/core/xds/xds_client/xds_client_stats.cc \
|
||||
src/php/ext/grpc/byte_buffer.c \
|
||||
src/php/ext/grpc/call.c \
|
||||
src/php/ext/grpc/call_credentials.c \
|
||||
|
|
@ -909,17 +906,17 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/abseil-cpp/absl/crc/internal/crc.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc \
|
||||
third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc \
|
||||
third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc \
|
||||
third_party/abseil-cpp/absl/debugging/internal/demangle.cc \
|
||||
third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc \
|
||||
third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc \
|
||||
third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc \
|
||||
third_party/abseil-cpp/absl/debugging/stacktrace.cc \
|
||||
third_party/abseil-cpp/absl/debugging/symbolize.cc \
|
||||
third_party/abseil-cpp/absl/flags/commandlineflag.cc \
|
||||
third_party/abseil-cpp/absl/flags/flag.cc \
|
||||
third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc \
|
||||
third_party/abseil-cpp/absl/flags/internal/flag.cc \
|
||||
third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc \
|
||||
|
|
@ -930,19 +927,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/abseil-cpp/absl/hash/internal/city.cc \
|
||||
third_party/abseil-cpp/absl/hash/internal/hash.cc \
|
||||
third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc \
|
||||
third_party/abseil-cpp/absl/log/globals.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/check_op.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/conditions.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/fnmatch.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/globals.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/log_format.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/log_message.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/log_sink_set.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/nullguard.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/proto.cc \
|
||||
third_party/abseil-cpp/absl/log/internal/vlog_config.cc \
|
||||
third_party/abseil-cpp/absl/log/log_entry.cc \
|
||||
third_party/abseil-cpp/absl/log/log_sink.cc \
|
||||
third_party/abseil-cpp/absl/numeric/int128.cc \
|
||||
third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc \
|
||||
third_party/abseil-cpp/absl/random/discrete_distribution.cc \
|
||||
|
|
@ -956,7 +940,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/abseil-cpp/absl/random/internal/seed_material.cc \
|
||||
third_party/abseil-cpp/absl/random/seed_gen_exception.cc \
|
||||
third_party/abseil-cpp/absl/random/seed_sequences.cc \
|
||||
third_party/abseil-cpp/absl/status/internal/status_internal.cc \
|
||||
third_party/abseil-cpp/absl/status/status.cc \
|
||||
third_party/abseil-cpp/absl/status/status_payload_printer.cc \
|
||||
third_party/abseil-cpp/absl/status/statusor.cc \
|
||||
|
|
@ -974,6 +957,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc \
|
||||
third_party/abseil-cpp/absl/strings/internal/cordz_info.cc \
|
||||
|
|
@ -1030,6 +1014,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/address_sorting/address_sorting.c \
|
||||
third_party/address_sorting/address_sorting_posix.c \
|
||||
third_party/address_sorting/address_sorting_windows.c \
|
||||
third_party/boringssl-with-bazel/err_data.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c \
|
||||
|
|
@ -1108,7 +1093,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c \
|
||||
|
|
@ -1121,8 +1105,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/evp/evp.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c \
|
||||
|
|
@ -1142,7 +1124,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/mem.c \
|
||||
|
|
@ -1179,13 +1161,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/address.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/fors.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/merkle.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/spx.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/thash.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/spx/wots.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/stack/stack.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/thread.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/thread_none.c \
|
||||
|
|
@ -1209,29 +1184,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/x509/t_req.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x509.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c \
|
||||
|
|
@ -1256,7 +1208,9 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_info.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_name.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_req.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c \
|
||||
|
|
@ -1264,7 +1218,29 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/crypto/x509/x_val.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c \
|
||||
third_party/boringssl-with-bazel/src/gen/crypto/err_data.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c \
|
||||
third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c \
|
||||
third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/d1_both.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/d1_lib.cc \
|
||||
|
|
@ -1286,7 +1262,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_file.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc \
|
||||
third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc \
|
||||
|
|
@ -1337,10 +1312,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/upb/upb/mem/arena.c \
|
||||
third_party/upb/upb/message/accessors.c \
|
||||
third_party/upb/upb/message/array.c \
|
||||
third_party/upb/upb/message/compat.c \
|
||||
third_party/upb/upb/message/copy.c \
|
||||
third_party/upb/upb/message/internal/extension.c \
|
||||
third_party/upb/upb/message/internal/message.c \
|
||||
third_party/upb/upb/message/map.c \
|
||||
third_party/upb/upb/message/map_sorter.c \
|
||||
third_party/upb/upb/message/message.c \
|
||||
|
|
@ -1371,23 +1342,46 @@ if test "$PHP_GRPC" != "no"; then
|
|||
third_party/upb/upb/reflection/service_def.c \
|
||||
third_party/upb/upb/text/encode.c \
|
||||
third_party/upb/upb/wire/decode.c \
|
||||
third_party/upb/upb/wire/decode_fast.c \
|
||||
third_party/upb/upb/wire/encode.c \
|
||||
third_party/upb/upb/wire/eps_copy_input_stream.c \
|
||||
third_party/upb/upb/wire/internal/decode_fast.c \
|
||||
third_party/upb/upb/wire/reader.c \
|
||||
third_party/utf8_range/utf8_range.c \
|
||||
third_party/utf8_range/naive.c \
|
||||
third_party/utf8_range/range2-neon.c \
|
||||
third_party/utf8_range/range2-sse.c \
|
||||
, $ext_shared, , -fvisibility=hidden \
|
||||
-DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN \
|
||||
-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 \
|
||||
-DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 \
|
||||
-DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' \
|
||||
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.65.0dev\""')
|
||||
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.61.0dev\""')
|
||||
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/channelz)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/client_channel)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/backend_metrics)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/census)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/channel_idle)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/grpclb)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/outlier_detection)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/pick_first)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/priority)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/ring_hash)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/rls)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/round_robin)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/weighted_target)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/lb_policy/xds)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/binder)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/c_ares)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/event_engine)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/dns/native)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/fake)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/google_c2p)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/sockaddr)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/client_channel/resolver/xds)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/deadline)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/fault_injection)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/http)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/http/client)
|
||||
|
|
@ -1395,7 +1389,9 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/http/server)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/message_size)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/rbac)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/server_config_selector)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/stateful_session)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/gcp)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/alpn)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/client)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server)
|
||||
|
|
@ -1503,11 +1499,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/core/v3)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/type/matcher/v3)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/upbdefs-gen/xds/type/v3)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/endpoint_info)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/http_connect)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/security)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/handshaker/tcp_connect)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/xds)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/address_utils)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/backoff)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
|
||||
|
|
@ -1522,14 +1514,26 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/windows)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/event_engine/work_queue)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/experiments)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/android)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/iphone)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/linux)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/msys)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/posix)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gpr/windows)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/linux)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/posix)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/gprpp/windows)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/handshaker)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/http)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr/event_engine_shims)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/json)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/load_balancing)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/matchers)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/promise)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resolver)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/resource_quota)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/authorization)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/certificate_provider)
|
||||
|
|
@ -1558,35 +1562,12 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/security_connector/tls)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/transport)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security/util)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/service_config)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/slice)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/surface)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/transport)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/uri)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/grpclb)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/outlier_detection)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/pick_first)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/priority)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/ring_hash)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/rls)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/round_robin)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/weighted_round_robin)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/weighted_target)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/load_balancing/xds)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/plugin_registry)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/binder)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/c_ares)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/event_engine)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/dns/native)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/fake)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/google_c2p)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/sockaddr)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/resolver/xds)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/server)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/service_config)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/telemetry)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/alts/crypt)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/alts/frame_protector)
|
||||
|
|
@ -1594,17 +1575,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/alts/zero_copy_frame_protector)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/ssl/key_logging)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/tsi/ssl/session_cache)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/android)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/http_client)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/iphone)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/json)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/linux)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/msys)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/posix)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/util/windows)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/xds/grpc)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/core/xds/xds_client)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/src/php/ext/grpc)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/base)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/base/internal)
|
||||
|
|
@ -1616,14 +1586,11 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/flags)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/flags/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/hash/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/log)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/log/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/numeric)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/profiling/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/random)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/random/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/status)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/status/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/strings/internal/str_format)
|
||||
|
|
@ -1633,6 +1600,7 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/time/internal/cctz/src)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/types)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/address_sorting)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/asn1)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/base64)
|
||||
|
|
@ -1648,7 +1616,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/des)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/dh_extra)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/digest_extra)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/dilithium)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/dsa)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/ec_extra)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/ecdh_extra)
|
||||
|
|
@ -1659,7 +1626,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/fipsmodule)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/hpke)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/hrss)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/keccak)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/kyber)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/lhash)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/obj)
|
||||
|
|
@ -1672,11 +1638,10 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/rc4)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/rsa_extra)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/siphash)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/spx)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/stack)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/trust_token)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/x509)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/gen/crypto)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/x509v3)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/ssl)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/re2/re2)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/re2/util)
|
||||
|
|
@ -1686,7 +1651,6 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/lex)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/mem)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/message)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/message/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/mini_descriptor)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/mini_descriptor/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/mini_table)
|
||||
|
|
@ -1695,6 +1659,5 @@ if test "$PHP_GRPC" != "no"; then
|
|||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/reflection/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/text)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/wire)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/upb/upb/wire/internal)
|
||||
PHP_ADD_BUILD_DIR($ext_builddir/third_party/utf8_range)
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -6,43 +6,90 @@ ARG_WITH("grpc", "grpc support", "no");
|
|||
if (PHP_GRPC != "no") {
|
||||
|
||||
EXTENSION("grpc",
|
||||
"src\\core\\channelz\\channel_trace.cc " +
|
||||
"src\\core\\channelz\\channelz.cc " +
|
||||
"src\\core\\channelz\\channelz_registry.cc " +
|
||||
"src\\core\\client_channel\\backup_poller.cc " +
|
||||
"src\\core\\client_channel\\client_channel.cc " +
|
||||
"src\\core\\client_channel\\client_channel_factory.cc " +
|
||||
"src\\core\\client_channel\\client_channel_filter.cc " +
|
||||
"src\\core\\client_channel\\client_channel_plugin.cc " +
|
||||
"src\\core\\client_channel\\client_channel_service_config.cc " +
|
||||
"src\\core\\client_channel\\config_selector.cc " +
|
||||
"src\\core\\client_channel\\dynamic_filters.cc " +
|
||||
"src\\core\\client_channel\\global_subchannel_pool.cc " +
|
||||
"src\\core\\client_channel\\load_balanced_call_destination.cc " +
|
||||
"src\\core\\client_channel\\local_subchannel_pool.cc " +
|
||||
"src\\core\\client_channel\\retry_filter.cc " +
|
||||
"src\\core\\client_channel\\retry_filter_legacy_call_data.cc " +
|
||||
"src\\core\\client_channel\\retry_service_config.cc " +
|
||||
"src\\core\\client_channel\\retry_throttle.cc " +
|
||||
"src\\core\\client_channel\\subchannel.cc " +
|
||||
"src\\core\\client_channel\\subchannel_pool_interface.cc " +
|
||||
"src\\core\\client_channel\\subchannel_stream_client.cc " +
|
||||
"src\\core\\ext\\filters\\backend_metrics\\backend_metric_filter.cc " +
|
||||
"src\\core\\ext\\filters\\census\\grpc_context.cc " +
|
||||
"src\\core\\ext\\filters\\channel_idle\\channel_idle_filter.cc " +
|
||||
"src\\core\\ext\\filters\\channel_idle\\idle_filter_state.cc " +
|
||||
"src\\core\\ext\\filters\\channel_idle\\legacy_channel_idle_filter.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\backend_metric.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\backup_poller.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\channel_connectivity.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\client_channel.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\client_channel_channelz.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\client_channel_factory.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\client_channel_plugin.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\client_channel_service_config.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\config_selector.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\dynamic_filters.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\global_subchannel_pool.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\http_proxy_mapper.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\address_filtering.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\child_policy_handler.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\endpoint_list.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\client_load_reporting_filter.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb_balancer_addresses.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\grpclb_client_stats.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb\\load_balancer_api.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\health_check_client.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\oob_backend_metric.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\outlier_detection\\outlier_detection.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\pick_first\\pick_first.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\priority\\priority.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\ring_hash\\ring_hash.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\rls\\rls.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\round_robin\\round_robin.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\weighted_round_robin\\static_stride_scheduler.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\weighted_round_robin\\weighted_round_robin.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\weighted_target\\weighted_target.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\xds\\cds.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\xds\\xds_cluster_impl.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\xds\\xds_cluster_manager.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\xds\\xds_override_host.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\lb_policy\\xds\\xds_wrr_locality.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\local_subchannel_pool.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\binder\\binder_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\dns_resolver_ares.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_windows.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_posix.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares\\grpc_ares_wrapper_windows.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\dns_resolver_plugin.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine\\event_engine_client_channel_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine\\service_config_helper.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\dns\\native\\dns_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\fake\\fake_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\google_c2p\\google_c2p_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\polling_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\sockaddr\\sockaddr_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_dependency_manager.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_resolver.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\resolver\\xds\\xds_resolver_trace.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\retry_filter.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\retry_filter_legacy_call_data.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\retry_service_config.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\retry_throttle.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\service_config_channel_arg_filter.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\subchannel.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\subchannel_pool_interface.cc " +
|
||||
"src\\core\\ext\\filters\\client_channel\\subchannel_stream_client.cc " +
|
||||
"src\\core\\ext\\filters\\deadline\\deadline_filter.cc " +
|
||||
"src\\core\\ext\\filters\\fault_injection\\fault_injection_filter.cc " +
|
||||
"src\\core\\ext\\filters\\fault_injection\\fault_injection_service_config_parser.cc " +
|
||||
"src\\core\\ext\\filters\\http\\client\\http_client_filter.cc " +
|
||||
"src\\core\\ext\\filters\\http\\client_authority_filter.cc " +
|
||||
"src\\core\\ext\\filters\\http\\http_filters_plugin.cc " +
|
||||
"src\\core\\ext\\filters\\http\\message_compress\\compression_filter.cc " +
|
||||
"src\\core\\ext\\filters\\http\\message_compress\\legacy_compression_filter.cc " +
|
||||
"src\\core\\ext\\filters\\http\\server\\http_server_filter.cc " +
|
||||
"src\\core\\ext\\filters\\message_size\\message_size_filter.cc " +
|
||||
"src\\core\\ext\\filters\\rbac\\rbac_filter.cc " +
|
||||
"src\\core\\ext\\filters\\rbac\\rbac_service_config_parser.cc " +
|
||||
"src\\core\\ext\\filters\\server_config_selector\\server_config_selector_filter.cc " +
|
||||
"src\\core\\ext\\filters\\stateful_session\\stateful_session_filter.cc " +
|
||||
"src\\core\\ext\\filters\\stateful_session\\stateful_session_service_config_parser.cc " +
|
||||
"src\\core\\ext\\gcp\\metadata_query.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\alpn\\alpn.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\client\\chttp2_connector.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\server\\chttp2_server.cc " +
|
||||
|
|
@ -51,7 +98,6 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\transport\\chttp2\\transport\\chttp2_transport.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\decode_huff.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\flow_control.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\frame.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\frame_data.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\frame_goaway.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\frame_ping.cc " +
|
||||
|
|
@ -64,6 +110,7 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\transport\\chttp2\\transport\\hpack_parser.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\hpack_parser_table.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\http2_settings.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\http_trace.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\huffsyms.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\max_concurrent_streams_policy.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\parsing.cc " +
|
||||
|
|
@ -74,6 +121,7 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\transport\\chttp2\\transport\\varint.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\write_size_policy.cc " +
|
||||
"src\\core\\ext\\transport\\chttp2\\transport\\writing.cc " +
|
||||
"src\\core\\ext\\transport\\inproc\\inproc_plugin.cc " +
|
||||
"src\\core\\ext\\transport\\inproc\\inproc_transport.cc " +
|
||||
"src\\core\\ext\\transport\\inproc\\legacy_inproc_transport.cc " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\admin\\v3\\certs.upb_minitable.c " +
|
||||
|
|
@ -105,7 +153,6 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\grpc_method_list.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\grpc_service.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\health_check.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\http_service.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\http_uri.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\protocol.upb_minitable.c " +
|
||||
"src\\core\\ext\\upb-gen\\envoy\\config\\core\\v3\\proxy_protocol.upb_minitable.c " +
|
||||
|
|
@ -270,7 +317,6 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\grpc_method_list.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\grpc_service.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\health_check.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\http_service.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\http_uri.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\protocol.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\envoy\\config\\core\\v3\\proxy_protocol.upbdefs.c " +
|
||||
|
|
@ -393,26 +439,49 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\cel.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\range.upbdefs.c " +
|
||||
"src\\core\\ext\\upbdefs-gen\\xds\\type\\v3\\typed_struct.upbdefs.c " +
|
||||
"src\\core\\handshaker\\endpoint_info\\endpoint_info_handshaker.cc " +
|
||||
"src\\core\\handshaker\\handshaker.cc " +
|
||||
"src\\core\\handshaker\\handshaker_registry.cc " +
|
||||
"src\\core\\handshaker\\http_connect\\http_connect_handshaker.cc " +
|
||||
"src\\core\\handshaker\\http_connect\\http_proxy_mapper.cc " +
|
||||
"src\\core\\handshaker\\proxy_mapper_registry.cc " +
|
||||
"src\\core\\handshaker\\security\\secure_endpoint.cc " +
|
||||
"src\\core\\handshaker\\security\\security_handshaker.cc " +
|
||||
"src\\core\\handshaker\\tcp_connect\\tcp_connect_handshaker.cc " +
|
||||
"src\\core\\ext\\xds\\certificate_provider_store.cc " +
|
||||
"src\\core\\ext\\xds\\file_watcher_certificate_provider_factory.cc " +
|
||||
"src\\core\\ext\\xds\\xds_api.cc " +
|
||||
"src\\core\\ext\\xds\\xds_audit_logger_registry.cc " +
|
||||
"src\\core\\ext\\xds\\xds_bootstrap.cc " +
|
||||
"src\\core\\ext\\xds\\xds_bootstrap_grpc.cc " +
|
||||
"src\\core\\ext\\xds\\xds_certificate_provider.cc " +
|
||||
"src\\core\\ext\\xds\\xds_channel_stack_modifier.cc " +
|
||||
"src\\core\\ext\\xds\\xds_client.cc " +
|
||||
"src\\core\\ext\\xds\\xds_client_grpc.cc " +
|
||||
"src\\core\\ext\\xds\\xds_client_stats.cc " +
|
||||
"src\\core\\ext\\xds\\xds_cluster.cc " +
|
||||
"src\\core\\ext\\xds\\xds_cluster_specifier_plugin.cc " +
|
||||
"src\\core\\ext\\xds\\xds_common_types.cc " +
|
||||
"src\\core\\ext\\xds\\xds_endpoint.cc " +
|
||||
"src\\core\\ext\\xds\\xds_health_status.cc " +
|
||||
"src\\core\\ext\\xds\\xds_http_fault_filter.cc " +
|
||||
"src\\core\\ext\\xds\\xds_http_filters.cc " +
|
||||
"src\\core\\ext\\xds\\xds_http_rbac_filter.cc " +
|
||||
"src\\core\\ext\\xds\\xds_http_stateful_session_filter.cc " +
|
||||
"src\\core\\ext\\xds\\xds_lb_policy_registry.cc " +
|
||||
"src\\core\\ext\\xds\\xds_listener.cc " +
|
||||
"src\\core\\ext\\xds\\xds_route_config.cc " +
|
||||
"src\\core\\ext\\xds\\xds_routing.cc " +
|
||||
"src\\core\\ext\\xds\\xds_server_config_fetcher.cc " +
|
||||
"src\\core\\ext\\xds\\xds_transport_grpc.cc " +
|
||||
"src\\core\\lib\\address_utils\\parse_address.cc " +
|
||||
"src\\core\\lib\\address_utils\\sockaddr_utils.cc " +
|
||||
"src\\core\\lib\\backoff\\backoff.cc " +
|
||||
"src\\core\\lib\\backoff\\random_early_detection.cc " +
|
||||
"src\\core\\lib\\channel\\call_tracer.cc " +
|
||||
"src\\core\\lib\\channel\\channel_args.cc " +
|
||||
"src\\core\\lib\\channel\\channel_args_preconditioning.cc " +
|
||||
"src\\core\\lib\\channel\\channel_stack.cc " +
|
||||
"src\\core\\lib\\channel\\channel_stack_builder.cc " +
|
||||
"src\\core\\lib\\channel\\channel_stack_builder_impl.cc " +
|
||||
"src\\core\\lib\\channel\\channel_stack_trace.cc " +
|
||||
"src\\core\\lib\\channel\\channel_trace.cc " +
|
||||
"src\\core\\lib\\channel\\channelz.cc " +
|
||||
"src\\core\\lib\\channel\\channelz_registry.cc " +
|
||||
"src\\core\\lib\\channel\\connected_channel.cc " +
|
||||
"src\\core\\lib\\channel\\promise_based_filter.cc " +
|
||||
"src\\core\\lib\\channel\\server_call_tracer_filter.cc " +
|
||||
"src\\core\\lib\\channel\\status_util.cc " +
|
||||
"src\\core\\lib\\compression\\compression.cc " +
|
||||
"src\\core\\lib\\compression\\compression_internal.cc " +
|
||||
|
|
@ -422,8 +491,10 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\config\\core_configuration.cc " +
|
||||
"src\\core\\lib\\config\\load_config.cc " +
|
||||
"src\\core\\lib\\debug\\event_log.cc " +
|
||||
"src\\core\\lib\\debug\\histogram_view.cc " +
|
||||
"src\\core\\lib\\debug\\stats.cc " +
|
||||
"src\\core\\lib\\debug\\stats_data.cc " +
|
||||
"src\\core\\lib\\debug\\trace.cc " +
|
||||
"src\\core\\lib\\debug\\trace_flags.cc " +
|
||||
"src\\core\\lib\\event_engine\\ares_resolver.cc " +
|
||||
"src\\core\\lib\\event_engine\\cf_engine\\cf_engine.cc " +
|
||||
"src\\core\\lib\\event_engine\\cf_engine\\cfstream_endpoint.cc " +
|
||||
|
|
@ -462,6 +533,7 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\event_engine\\thread_pool\\work_stealing_thread_pool.cc " +
|
||||
"src\\core\\lib\\event_engine\\thready_event_engine\\thready_event_engine.cc " +
|
||||
"src\\core\\lib\\event_engine\\time_util.cc " +
|
||||
"src\\core\\lib\\event_engine\\trace.cc " +
|
||||
"src\\core\\lib\\event_engine\\utils.cc " +
|
||||
"src\\core\\lib\\event_engine\\windows\\grpc_polled_fd_windows.cc " +
|
||||
"src\\core\\lib\\event_engine\\windows\\iocp.cc " +
|
||||
|
|
@ -473,11 +545,36 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\event_engine\\work_queue\\basic_work_queue.cc " +
|
||||
"src\\core\\lib\\experiments\\config.cc " +
|
||||
"src\\core\\lib\\experiments\\experiments.cc " +
|
||||
"src\\core\\lib\\gpr\\alloc.cc " +
|
||||
"src\\core\\lib\\gpr\\android\\log.cc " +
|
||||
"src\\core\\lib\\gpr\\atm.cc " +
|
||||
"src\\core\\lib\\gpr\\iphone\\cpu.cc " +
|
||||
"src\\core\\lib\\gpr\\linux\\cpu.cc " +
|
||||
"src\\core\\lib\\gpr\\linux\\log.cc " +
|
||||
"src\\core\\lib\\gpr\\log.cc " +
|
||||
"src\\core\\lib\\gpr\\msys\\tmpfile.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\cpu.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\log.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\string.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\sync.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\time.cc " +
|
||||
"src\\core\\lib\\gpr\\posix\\tmpfile.cc " +
|
||||
"src\\core\\lib\\gpr\\string.cc " +
|
||||
"src\\core\\lib\\gpr\\sync.cc " +
|
||||
"src\\core\\lib\\gpr\\sync_abseil.cc " +
|
||||
"src\\core\\lib\\gpr\\time.cc " +
|
||||
"src\\core\\lib\\gpr\\time_precise.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\cpu.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\log.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\string.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\string_util.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\sync.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\time.cc " +
|
||||
"src\\core\\lib\\gpr\\windows\\tmpfile.cc " +
|
||||
"src\\core\\lib\\gpr\\wrap_memcpy.cc " +
|
||||
"src\\core\\lib\\gprpp\\crash.cc " +
|
||||
"src\\core\\lib\\gprpp\\dump_args.cc " +
|
||||
"src\\core\\lib\\gprpp\\examine_stack.cc " +
|
||||
"src\\core\\lib\\gprpp\\fork.cc " +
|
||||
"src\\core\\lib\\gprpp\\glob.cc " +
|
||||
"src\\core\\lib\\gprpp\\host_port.cc " +
|
||||
"src\\core\\lib\\gprpp\\linux\\env.cc " +
|
||||
"src\\core\\lib\\gprpp\\load_file.cc " +
|
||||
|
|
@ -494,13 +591,17 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\gprpp\\time.cc " +
|
||||
"src\\core\\lib\\gprpp\\time_averaged_stats.cc " +
|
||||
"src\\core\\lib\\gprpp\\time_util.cc " +
|
||||
"src\\core\\lib\\gprpp\\uuid_v4.cc " +
|
||||
"src\\core\\lib\\gprpp\\validation_errors.cc " +
|
||||
"src\\core\\lib\\gprpp\\windows\\directory_reader.cc " +
|
||||
"src\\core\\lib\\gprpp\\windows\\env.cc " +
|
||||
"src\\core\\lib\\gprpp\\windows\\stat.cc " +
|
||||
"src\\core\\lib\\gprpp\\windows\\thd.cc " +
|
||||
"src\\core\\lib\\gprpp\\work_serializer.cc " +
|
||||
"src\\core\\lib\\handshaker\\proxy_mapper_registry.cc " +
|
||||
"src\\core\\lib\\http\\format_request.cc " +
|
||||
"src\\core\\lib\\http\\httpcli.cc " +
|
||||
"src\\core\\lib\\http\\httpcli_security_connector.cc " +
|
||||
"src\\core\\lib\\http\\parser.cc " +
|
||||
"src\\core\\lib\\iomgr\\buffer_list.cc " +
|
||||
"src\\core\\lib\\iomgr\\call_combiner.cc " +
|
||||
"src\\core\\lib\\iomgr\\cfstream_handle.cc " +
|
||||
|
|
@ -517,6 +618,7 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\iomgr\\ev_epoll1_linux.cc " +
|
||||
"src\\core\\lib\\iomgr\\ev_poll_posix.cc " +
|
||||
"src\\core\\lib\\iomgr\\ev_posix.cc " +
|
||||
"src\\core\\lib\\iomgr\\ev_windows.cc " +
|
||||
"src\\core\\lib\\iomgr\\event_engine_shims\\closure.cc " +
|
||||
"src\\core\\lib\\iomgr\\event_engine_shims\\endpoint.cc " +
|
||||
"src\\core\\lib\\iomgr\\event_engine_shims\\tcp_client.cc " +
|
||||
|
|
@ -536,6 +638,7 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\iomgr\\iomgr_posix.cc " +
|
||||
"src\\core\\lib\\iomgr\\iomgr_posix_cfstream.cc " +
|
||||
"src\\core\\lib\\iomgr\\iomgr_windows.cc " +
|
||||
"src\\core\\lib\\iomgr\\load_file.cc " +
|
||||
"src\\core\\lib\\iomgr\\lockfree_event.cc " +
|
||||
"src\\core\\lib\\iomgr\\polling_entity.cc " +
|
||||
"src\\core\\lib\\iomgr\\pollset.cc " +
|
||||
|
|
@ -577,17 +680,27 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\iomgr\\wakeup_fd_nospecial.cc " +
|
||||
"src\\core\\lib\\iomgr\\wakeup_fd_pipe.cc " +
|
||||
"src\\core\\lib\\iomgr\\wakeup_fd_posix.cc " +
|
||||
"src\\core\\lib\\json\\json_object_loader.cc " +
|
||||
"src\\core\\lib\\json\\json_reader.cc " +
|
||||
"src\\core\\lib\\json\\json_util.cc " +
|
||||
"src\\core\\lib\\json\\json_writer.cc " +
|
||||
"src\\core\\lib\\load_balancing\\lb_policy.cc " +
|
||||
"src\\core\\lib\\load_balancing\\lb_policy_registry.cc " +
|
||||
"src\\core\\lib\\matchers\\matchers.cc " +
|
||||
"src\\core\\lib\\promise\\activity.cc " +
|
||||
"src\\core\\lib\\promise\\party.cc " +
|
||||
"src\\core\\lib\\promise\\sleep.cc " +
|
||||
"src\\core\\lib\\promise\\trace.cc " +
|
||||
"src\\core\\lib\\resolver\\endpoint_addresses.cc " +
|
||||
"src\\core\\lib\\resolver\\resolver.cc " +
|
||||
"src\\core\\lib\\resolver\\resolver_registry.cc " +
|
||||
"src\\core\\lib\\resource_quota\\api.cc " +
|
||||
"src\\core\\lib\\resource_quota\\arena.cc " +
|
||||
"src\\core\\lib\\resource_quota\\connection_quota.cc " +
|
||||
"src\\core\\lib\\resource_quota\\memory_quota.cc " +
|
||||
"src\\core\\lib\\resource_quota\\periodic_update.cc " +
|
||||
"src\\core\\lib\\resource_quota\\resource_quota.cc " +
|
||||
"src\\core\\lib\\resource_quota\\thread_quota.cc " +
|
||||
"src\\core\\lib\\resource_quota\\trace.cc " +
|
||||
"src\\core\\lib\\security\\authorization\\audit_logging.cc " +
|
||||
"src\\core\\lib\\security\\authorization\\authorization_policy_provider_vtable.cc " +
|
||||
"src\\core\\lib\\security\\authorization\\evaluate_args.cc " +
|
||||
|
|
@ -641,122 +754,65 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\lib\\security\\security_connector\\insecure\\insecure_security_connector.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\load_system_roots_fallback.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\load_system_roots_supported.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\load_system_roots_windows.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\local\\local_security_connector.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\security_connector.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\ssl\\ssl_security_connector.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\ssl_utils.cc " +
|
||||
"src\\core\\lib\\security\\security_connector\\tls\\tls_security_connector.cc " +
|
||||
"src\\core\\lib\\security\\transport\\client_auth_filter.cc " +
|
||||
"src\\core\\lib\\security\\transport\\legacy_server_auth_filter.cc " +
|
||||
"src\\core\\lib\\security\\transport\\secure_endpoint.cc " +
|
||||
"src\\core\\lib\\security\\transport\\security_handshaker.cc " +
|
||||
"src\\core\\lib\\security\\transport\\server_auth_filter.cc " +
|
||||
"src\\core\\lib\\security\\transport\\tsi_error.cc " +
|
||||
"src\\core\\lib\\security\\util\\json_util.cc " +
|
||||
"src\\core\\lib\\service_config\\service_config_impl.cc " +
|
||||
"src\\core\\lib\\service_config\\service_config_parser.cc " +
|
||||
"src\\core\\lib\\slice\\b64.cc " +
|
||||
"src\\core\\lib\\slice\\percent_encoding.cc " +
|
||||
"src\\core\\lib\\slice\\slice.cc " +
|
||||
"src\\core\\lib\\slice\\slice_buffer.cc " +
|
||||
"src\\core\\lib\\slice\\slice_refcount.cc " +
|
||||
"src\\core\\lib\\slice\\slice_string_helpers.cc " +
|
||||
"src\\core\\lib\\surface\\api_trace.cc " +
|
||||
"src\\core\\lib\\surface\\builtins.cc " +
|
||||
"src\\core\\lib\\surface\\byte_buffer.cc " +
|
||||
"src\\core\\lib\\surface\\byte_buffer_reader.cc " +
|
||||
"src\\core\\lib\\surface\\call.cc " +
|
||||
"src\\core\\lib\\surface\\call_details.cc " +
|
||||
"src\\core\\lib\\surface\\call_log_batch.cc " +
|
||||
"src\\core\\lib\\surface\\call_utils.cc " +
|
||||
"src\\core\\lib\\surface\\call_trace.cc " +
|
||||
"src\\core\\lib\\surface\\channel.cc " +
|
||||
"src\\core\\lib\\surface\\channel_create.cc " +
|
||||
"src\\core\\lib\\surface\\channel_init.cc " +
|
||||
"src\\core\\lib\\surface\\channel_ping.cc " +
|
||||
"src\\core\\lib\\surface\\channel_stack_type.cc " +
|
||||
"src\\core\\lib\\surface\\client_call.cc " +
|
||||
"src\\core\\lib\\surface\\completion_queue.cc " +
|
||||
"src\\core\\lib\\surface\\completion_queue_factory.cc " +
|
||||
"src\\core\\lib\\surface\\event_string.cc " +
|
||||
"src\\core\\lib\\surface\\filter_stack_call.cc " +
|
||||
"src\\core\\lib\\surface\\init.cc " +
|
||||
"src\\core\\lib\\surface\\init_internally.cc " +
|
||||
"src\\core\\lib\\surface\\lame_client.cc " +
|
||||
"src\\core\\lib\\surface\\legacy_channel.cc " +
|
||||
"src\\core\\lib\\surface\\metadata_array.cc " +
|
||||
"src\\core\\lib\\surface\\server_call.cc " +
|
||||
"src\\core\\lib\\surface\\server.cc " +
|
||||
"src\\core\\lib\\surface\\validate_metadata.cc " +
|
||||
"src\\core\\lib\\surface\\version.cc " +
|
||||
"src\\core\\lib\\transport\\batch_builder.cc " +
|
||||
"src\\core\\lib\\transport\\bdp_estimator.cc " +
|
||||
"src\\core\\lib\\transport\\call_arena_allocator.cc " +
|
||||
"src\\core\\lib\\transport\\call_filters.cc " +
|
||||
"src\\core\\lib\\transport\\call_final_info.cc " +
|
||||
"src\\core\\lib\\transport\\call_spine.cc " +
|
||||
"src\\core\\lib\\transport\\connectivity_state.cc " +
|
||||
"src\\core\\lib\\transport\\error_utils.cc " +
|
||||
"src\\core\\lib\\transport\\interception_chain.cc " +
|
||||
"src\\core\\lib\\transport\\message.cc " +
|
||||
"src\\core\\lib\\transport\\metadata.cc " +
|
||||
"src\\core\\lib\\transport\\handshaker.cc " +
|
||||
"src\\core\\lib\\transport\\handshaker_registry.cc " +
|
||||
"src\\core\\lib\\transport\\http_connect_handshaker.cc " +
|
||||
"src\\core\\lib\\transport\\metadata_batch.cc " +
|
||||
"src\\core\\lib\\transport\\metadata_info.cc " +
|
||||
"src\\core\\lib\\transport\\parsed_metadata.cc " +
|
||||
"src\\core\\lib\\transport\\status_conversion.cc " +
|
||||
"src\\core\\lib\\transport\\tcp_connect_handshaker.cc " +
|
||||
"src\\core\\lib\\transport\\timeout_encoding.cc " +
|
||||
"src\\core\\lib\\transport\\transport.cc " +
|
||||
"src\\core\\lib\\transport\\transport_op_string.cc " +
|
||||
"src\\core\\lib\\uri\\uri_parser.cc " +
|
||||
"src\\core\\load_balancing\\address_filtering.cc " +
|
||||
"src\\core\\load_balancing\\backend_metric_parser.cc " +
|
||||
"src\\core\\load_balancing\\child_policy_handler.cc " +
|
||||
"src\\core\\load_balancing\\endpoint_list.cc " +
|
||||
"src\\core\\load_balancing\\grpclb\\client_load_reporting_filter.cc " +
|
||||
"src\\core\\load_balancing\\grpclb\\grpclb.cc " +
|
||||
"src\\core\\load_balancing\\grpclb\\grpclb_balancer_addresses.cc " +
|
||||
"src\\core\\load_balancing\\grpclb\\grpclb_client_stats.cc " +
|
||||
"src\\core\\load_balancing\\grpclb\\load_balancer_api.cc " +
|
||||
"src\\core\\load_balancing\\health_check_client.cc " +
|
||||
"src\\core\\load_balancing\\lb_policy.cc " +
|
||||
"src\\core\\load_balancing\\lb_policy_registry.cc " +
|
||||
"src\\core\\load_balancing\\oob_backend_metric.cc " +
|
||||
"src\\core\\load_balancing\\outlier_detection\\outlier_detection.cc " +
|
||||
"src\\core\\load_balancing\\pick_first\\pick_first.cc " +
|
||||
"src\\core\\load_balancing\\priority\\priority.cc " +
|
||||
"src\\core\\load_balancing\\ring_hash\\ring_hash.cc " +
|
||||
"src\\core\\load_balancing\\rls\\rls.cc " +
|
||||
"src\\core\\load_balancing\\round_robin\\round_robin.cc " +
|
||||
"src\\core\\load_balancing\\weighted_round_robin\\static_stride_scheduler.cc " +
|
||||
"src\\core\\load_balancing\\weighted_round_robin\\weighted_round_robin.cc " +
|
||||
"src\\core\\load_balancing\\weighted_target\\weighted_target.cc " +
|
||||
"src\\core\\load_balancing\\xds\\cds.cc " +
|
||||
"src\\core\\load_balancing\\xds\\xds_cluster_impl.cc " +
|
||||
"src\\core\\load_balancing\\xds\\xds_cluster_manager.cc " +
|
||||
"src\\core\\load_balancing\\xds\\xds_override_host.cc " +
|
||||
"src\\core\\load_balancing\\xds\\xds_wrr_locality.cc " +
|
||||
"src\\core\\plugin_registry\\grpc_plugin_registry.cc " +
|
||||
"src\\core\\plugin_registry\\grpc_plugin_registry_extra.cc " +
|
||||
"src\\core\\resolver\\binder\\binder_resolver.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\dns_resolver_ares.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_posix.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\grpc_ares_ev_driver_windows.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper_posix.cc " +
|
||||
"src\\core\\resolver\\dns\\c_ares\\grpc_ares_wrapper_windows.cc " +
|
||||
"src\\core\\resolver\\dns\\dns_resolver_plugin.cc " +
|
||||
"src\\core\\resolver\\dns\\event_engine\\event_engine_client_channel_resolver.cc " +
|
||||
"src\\core\\resolver\\dns\\event_engine\\service_config_helper.cc " +
|
||||
"src\\core\\resolver\\dns\\native\\dns_resolver.cc " +
|
||||
"src\\core\\resolver\\endpoint_addresses.cc " +
|
||||
"src\\core\\resolver\\fake\\fake_resolver.cc " +
|
||||
"src\\core\\resolver\\google_c2p\\google_c2p_resolver.cc " +
|
||||
"src\\core\\resolver\\polling_resolver.cc " +
|
||||
"src\\core\\resolver\\resolver.cc " +
|
||||
"src\\core\\resolver\\resolver_registry.cc " +
|
||||
"src\\core\\resolver\\sockaddr\\sockaddr_resolver.cc " +
|
||||
"src\\core\\resolver\\xds\\xds_dependency_manager.cc " +
|
||||
"src\\core\\resolver\\xds\\xds_resolver.cc " +
|
||||
"src\\core\\server\\server.cc " +
|
||||
"src\\core\\server\\server_call_tracer_filter.cc " +
|
||||
"src\\core\\server\\server_config_selector_filter.cc " +
|
||||
"src\\core\\server\\xds_channel_stack_modifier.cc " +
|
||||
"src\\core\\server\\xds_server_config_fetcher.cc " +
|
||||
"src\\core\\service_config\\service_config_channel_arg_filter.cc " +
|
||||
"src\\core\\service_config\\service_config_impl.cc " +
|
||||
"src\\core\\service_config\\service_config_parser.cc " +
|
||||
"src\\core\\telemetry\\call_tracer.cc " +
|
||||
"src\\core\\telemetry\\histogram_view.cc " +
|
||||
"src\\core\\telemetry\\metrics.cc " +
|
||||
"src\\core\\telemetry\\stats.cc " +
|
||||
"src\\core\\telemetry\\stats_data.cc " +
|
||||
"src\\core\\tsi\\alts\\crypt\\aes_gcm.cc " +
|
||||
"src\\core\\tsi\\alts\\crypt\\gsec.cc " +
|
||||
"src\\core\\tsi\\alts\\frame_protector\\alts_counter.cc " +
|
||||
|
|
@ -786,65 +842,6 @@ if (PHP_GRPC != "no") {
|
|||
"src\\core\\tsi\\ssl_transport_security_utils.cc " +
|
||||
"src\\core\\tsi\\transport_security.cc " +
|
||||
"src\\core\\tsi\\transport_security_grpc.cc " +
|
||||
"src\\core\\util\\alloc.cc " +
|
||||
"src\\core\\util\\android\\log.cc " +
|
||||
"src\\core\\util\\atm.cc " +
|
||||
"src\\core\\util\\gcp_metadata_query.cc " +
|
||||
"src\\core\\util\\http_client\\format_request.cc " +
|
||||
"src\\core\\util\\http_client\\httpcli.cc " +
|
||||
"src\\core\\util\\http_client\\httpcli_security_connector.cc " +
|
||||
"src\\core\\util\\http_client\\parser.cc " +
|
||||
"src\\core\\util\\iphone\\cpu.cc " +
|
||||
"src\\core\\util\\json\\json_object_loader.cc " +
|
||||
"src\\core\\util\\json\\json_reader.cc " +
|
||||
"src\\core\\util\\json\\json_util.cc " +
|
||||
"src\\core\\util\\json\\json_writer.cc " +
|
||||
"src\\core\\util\\linux\\cpu.cc " +
|
||||
"src\\core\\util\\linux\\log.cc " +
|
||||
"src\\core\\util\\log.cc " +
|
||||
"src\\core\\util\\msys\\tmpfile.cc " +
|
||||
"src\\core\\util\\posix\\cpu.cc " +
|
||||
"src\\core\\util\\posix\\log.cc " +
|
||||
"src\\core\\util\\posix\\string.cc " +
|
||||
"src\\core\\util\\posix\\sync.cc " +
|
||||
"src\\core\\util\\posix\\time.cc " +
|
||||
"src\\core\\util\\posix\\tmpfile.cc " +
|
||||
"src\\core\\util\\string.cc " +
|
||||
"src\\core\\util\\sync.cc " +
|
||||
"src\\core\\util\\sync_abseil.cc " +
|
||||
"src\\core\\util\\time.cc " +
|
||||
"src\\core\\util\\time_precise.cc " +
|
||||
"src\\core\\util\\windows\\cpu.cc " +
|
||||
"src\\core\\util\\windows\\log.cc " +
|
||||
"src\\core\\util\\windows\\string.cc " +
|
||||
"src\\core\\util\\windows\\string_util.cc " +
|
||||
"src\\core\\util\\windows\\sync.cc " +
|
||||
"src\\core\\util\\windows\\time.cc " +
|
||||
"src\\core\\util\\windows\\tmpfile.cc " +
|
||||
"src\\core\\xds\\grpc\\certificate_provider_store.cc " +
|
||||
"src\\core\\xds\\grpc\\file_watcher_certificate_provider_factory.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_audit_logger_registry.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_bootstrap_grpc.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_certificate_provider.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_client_grpc.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_cluster.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_cluster_specifier_plugin.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_common_types.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_endpoint.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_health_status.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_http_fault_filter.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_http_filters.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_http_rbac_filter.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_http_stateful_session_filter.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_lb_policy_registry.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_listener.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_route_config.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_routing.cc " +
|
||||
"src\\core\\xds\\grpc\\xds_transport_grpc.cc " +
|
||||
"src\\core\\xds\\xds_client\\xds_api.cc " +
|
||||
"src\\core\\xds\\xds_client\\xds_bootstrap.cc " +
|
||||
"src\\core\\xds\\xds_client\\xds_client.cc " +
|
||||
"src\\core\\xds\\xds_client\\xds_client_stats.cc " +
|
||||
"src\\php\\ext\\grpc\\byte_buffer.c " +
|
||||
"src\\php\\ext\\grpc\\call.c " +
|
||||
"src\\php\\ext\\grpc\\call_credentials.c " +
|
||||
|
|
@ -874,17 +871,17 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_cord_state.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_memcpy_fallback.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_memcpy_x86_arm_combined.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_memcpy_x86_64.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_non_temporal_memcpy.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\crc\\internal\\crc_x86_arm_combined.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\internal\\address_is_readable.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\internal\\demangle.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\internal\\elf_mem_image.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\internal\\examine_stack.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\internal\\vdso_support.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\stacktrace.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\debugging\\symbolize.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\flags\\commandlineflag.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\flags\\flag.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\flags\\internal\\commandlineflag.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\flags\\internal\\flag.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\flags\\internal\\private_handle_accessor.cc " +
|
||||
|
|
@ -895,19 +892,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\abseil-cpp\\absl\\hash\\internal\\city.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\hash\\internal\\hash.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\hash\\internal\\low_level_hash.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\globals.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\check_op.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\conditions.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\fnmatch.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\globals.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\log_format.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\log_message.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\log_sink_set.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\nullguard.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\proto.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\internal\\vlog_config.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\log_entry.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\log\\log_sink.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\numeric\\int128.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\profiling\\internal\\exponential_biased.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\random\\discrete_distribution.cc " +
|
||||
|
|
@ -921,7 +905,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\abseil-cpp\\absl\\random\\internal\\seed_material.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\random\\seed_gen_exception.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\random\\seed_sequences.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\status\\internal\\status_internal.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\status\\status.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\status\\status_payload_printer.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\status\\statusor.cc " +
|
||||
|
|
@ -939,6 +922,7 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cord_rep_btree_reader.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cord_rep_consume.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cord_rep_crc.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cord_rep_ring.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cordz_functions.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cordz_handle.cc " +
|
||||
"third_party\\abseil-cpp\\absl\\strings\\internal\\cordz_info.cc " +
|
||||
|
|
@ -995,6 +979,7 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\address_sorting\\address_sorting.c " +
|
||||
"third_party\\address_sorting\\address_sorting_posix.c " +
|
||||
"third_party\\address_sorting\\address_sorting_windows.c " +
|
||||
"third_party\\boringssl-with-bazel\\err_data.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_bitstr.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_bool.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_d2i_fp.c " +
|
||||
|
|
@ -1073,7 +1058,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\dh_extra\\dh_asn1.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\dh_extra\\params.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\digest_extra\\digest_extra.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\dilithium\\dilithium.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\dsa\\dsa.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\dsa\\dsa_asn1.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\ec_extra\\ec_asn1.c " +
|
||||
|
|
@ -1086,8 +1070,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp_asn1.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp_ctx.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dh.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dh_asn1.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dsa_asn1.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_ec.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_ec_asn1.c " +
|
||||
|
|
@ -1107,7 +1089,7 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\fipsmodule\\fips_shared_support.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\hpke\\hpke.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\hrss\\hrss.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\keccak\\keccak.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\kyber\\keccak.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\kyber\\kyber.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\lhash\\lhash.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\mem.c " +
|
||||
|
|
@ -1144,13 +1126,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\rsa_extra\\rsa_crypt.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\rsa_extra\\rsa_print.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\siphash\\siphash.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\address.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\fors.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\merkle.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\spx.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\spx_util.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\thash.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\spx\\wots.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\stack\\stack.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\thread.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\thread_none.c " +
|
||||
|
|
@ -1174,29 +1149,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\t_req.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\t_x509.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\t_x509a.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_akey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_akeya.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_alt.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_bcons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_bitst.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_conf.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_cpols.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_crld.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_enum.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_extku.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_genn.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_ia5.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_info.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_int.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_lib.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_ncons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_ocsp.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_pcons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_pmaps.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_prn.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_purp.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_skey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\v3_utl.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x509.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x509_att.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x509_cmp.c " +
|
||||
|
|
@ -1221,7 +1173,9 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_attrib.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_crl.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_exten.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_info.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_name.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_pkey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_pubkey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_req.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_sig.c " +
|
||||
|
|
@ -1229,7 +1183,29 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_val.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_x509.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_x509a.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\gen\\crypto\\err_data.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_akey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_akeya.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_alt.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_bcons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_bitst.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_conf.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_cpols.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_crld.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_enum.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_extku.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_genn.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_ia5.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_info.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_int.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_lib.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_ncons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_ocsp.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_pcons.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_pmaps.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_prn.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_purp.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_skey.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\crypto\\x509v3\\v3_utl.c " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\bio_ssl.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\d1_both.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\d1_lib.cc " +
|
||||
|
|
@ -1251,7 +1227,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_buffer.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_cert.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_cipher.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_credential.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_file.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_key_share.cc " +
|
||||
"third_party\\boringssl-with-bazel\\src\\ssl\\ssl_lib.cc " +
|
||||
|
|
@ -1302,10 +1277,6 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\upb\\upb\\mem\\arena.c " +
|
||||
"third_party\\upb\\upb\\message\\accessors.c " +
|
||||
"third_party\\upb\\upb\\message\\array.c " +
|
||||
"third_party\\upb\\upb\\message\\compat.c " +
|
||||
"third_party\\upb\\upb\\message\\copy.c " +
|
||||
"third_party\\upb\\upb\\message\\internal\\extension.c " +
|
||||
"third_party\\upb\\upb\\message\\internal\\message.c " +
|
||||
"third_party\\upb\\upb\\message\\map.c " +
|
||||
"third_party\\upb\\upb\\message\\map_sorter.c " +
|
||||
"third_party\\upb\\upb\\message\\message.c " +
|
||||
|
|
@ -1336,11 +1307,13 @@ if (PHP_GRPC != "no") {
|
|||
"third_party\\upb\\upb\\reflection\\service_def.c " +
|
||||
"third_party\\upb\\upb\\text\\encode.c " +
|
||||
"third_party\\upb\\upb\\wire\\decode.c " +
|
||||
"third_party\\upb\\upb\\wire\\decode_fast.c " +
|
||||
"third_party\\upb\\upb\\wire\\encode.c " +
|
||||
"third_party\\upb\\upb\\wire\\eps_copy_input_stream.c " +
|
||||
"third_party\\upb\\upb\\wire\\internal\\decode_fast.c " +
|
||||
"third_party\\upb\\upb\\wire\\reader.c " +
|
||||
"third_party\\utf8_range\\utf8_range.c " +
|
||||
"third_party\\utf8_range\\naive.c " +
|
||||
"third_party\\utf8_range\\range2-neon.c " +
|
||||
"third_party\\utf8_range\\range2-sse.c " +
|
||||
"third_party\\zlib\\adler32.c " +
|
||||
"third_party\\zlib\\compress.c " +
|
||||
"third_party\\zlib\\crc32.c " +
|
||||
|
|
@ -1375,13 +1348,34 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\channelz");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\client_channel");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\backend_metrics");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\census");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\channel_idle");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\grpclb");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\outlier_detection");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\pick_first");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\priority");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\ring_hash");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\rls");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\round_robin");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\weighted_round_robin");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\weighted_target");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\lb_policy\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\binder");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\c_ares");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\event_engine");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\dns\\native");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\fake");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\google_c2p");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\sockaddr");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\client_channel\\resolver\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\deadline");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\fault_injection");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\http");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\http\\client");
|
||||
|
|
@ -1389,7 +1383,9 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\http\\server");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\message_size");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\rbac");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\server_config_selector");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\filters\\stateful_session");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\gcp");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\chttp2");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\chttp2\\alpn");
|
||||
|
|
@ -1639,11 +1635,7 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\matcher");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\matcher\\v3");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\upbdefs-gen\\xds\\type\\v3");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\endpoint_info");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\http_connect");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\security");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\handshaker\\tcp_connect");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\address_utils");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\backoff");
|
||||
|
|
@ -1659,14 +1651,26 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\windows");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\event_engine\\work_queue");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\experiments");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\android");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\iphone");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\linux");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\msys");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\posix");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gpr\\windows");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\linux");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\posix");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\gprpp\\windows");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\handshaker");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\http");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\iomgr\\event_engine_shims");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\json");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\load_balancing");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\matchers");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\promise");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resolver");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\resource_quota");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security\\authorization");
|
||||
|
|
@ -1696,35 +1700,12 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security\\security_connector\\tls");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security\\transport");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\security\\util");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\service_config");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\slice");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\surface");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\transport");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\uri");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\grpclb");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\outlier_detection");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\pick_first");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\priority");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\ring_hash");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\rls");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\round_robin");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\weighted_round_robin");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\weighted_target");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\load_balancing\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\plugin_registry");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\binder");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\c_ares");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\event_engine");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\dns\\native");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\fake");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\google_c2p");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\sockaddr");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\resolver\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\server");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\service_config");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\telemetry");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\alts");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\alts\\crypt");
|
||||
|
|
@ -1734,18 +1715,6 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\ssl");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\ssl\\key_logging");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\tsi\\ssl\\session_cache");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\android");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\http_client");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\iphone");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\json");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\linux");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\msys");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\posix");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\util\\windows");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\xds");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\xds\\grpc");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\xds\\xds_client");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\php");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\php\\ext");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\php\\ext\\grpc");
|
||||
|
|
@ -1764,15 +1733,12 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\flags\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\hash");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\hash\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\log");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\log\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\numeric");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\profiling");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\profiling\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\random");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\random\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\status");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\status\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\abseil-cpp\\absl\\strings\\internal\\str_format");
|
||||
|
|
@ -1801,7 +1767,6 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\des");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\dh_extra");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\digest_extra");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\dilithium");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\dsa");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\ec_extra");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\ecdh_extra");
|
||||
|
|
@ -1812,7 +1777,6 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\fipsmodule");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\hpke");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\hrss");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\keccak");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\kyber");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\lhash");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\obj");
|
||||
|
|
@ -1825,12 +1789,10 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\rc4");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\rsa_extra");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\siphash");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\spx");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\stack");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\trust_token");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\x509");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\gen");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\gen\\crypto");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\x509v3");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\ssl");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\re2");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\re2\\re2");
|
||||
|
|
@ -1843,7 +1805,6 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\lex");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\mem");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\message");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\message\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\mini_descriptor");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\mini_descriptor\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\mini_table");
|
||||
|
|
@ -1852,7 +1813,6 @@ if (PHP_GRPC != "no") {
|
|||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\reflection\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\text");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\wire");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\upb\\upb\\wire\\internal");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\utf8_range");
|
||||
FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\zlib");
|
||||
_build_dirs = new Array();
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ However individual releases may have a broader
|
|||
compatibility range. The currently supported versions are captured by the
|
||||
following list:
|
||||
|
||||
- [`7.1.0`](https://github.com/bazelbuild/bazel/releases/tag/7.1.0)
|
||||
- [`6.5.0`](https://github.com/bazelbuild/bazel/releases/tag/6.5.0)
|
||||
- [`6.4.0`](https://github.com/bazelbuild/bazel/releases/tag/6.4.0)
|
||||
- [`7.0.0`](https://github.com/bazelbuild/bazel/releases/tag/7.0.0)
|
||||
|
||||
NOTE: gRPC doesn't support bzlmod yet.
|
||||
|
|
@ -2,44 +2,37 @@
|
|||
|
||||
## Overview
|
||||
|
||||
This document describes the command line tool that comes with gRPC repository.
|
||||
It is desirable to have command line tools written in other languages roughly
|
||||
follow the same syntax and flags.
|
||||
This document describes the command line tool that comes with gRPC repository. It is desirable to have command line
|
||||
tools written in other languages roughly follow the same syntax and flags.
|
||||
|
||||
> [!NOTE]
|
||||
> At present, the tool needs to be built from source, and it should be moved out
|
||||
> to grpc-tools repository as a stand alone application once it is mature
|
||||
> enough. This tool in its current state though is not up to par in its
|
||||
> user-friendliness. Other tools in the ecosystem, for example,
|
||||
> [grpcurl](https://github.com/fullstorydev/grpcurl) are better maintained.
|
||||
At this point, the tool needs to be built from source, and it should be moved out to grpc-tools repository as a stand
|
||||
alone application once it is mature enough.
|
||||
|
||||
## Core functionality
|
||||
|
||||
The command line tool can do the following things:
|
||||
|
||||
- Send unary rpc.
|
||||
- Attach metadata and display received metadata.
|
||||
- Handle common authentication to server.
|
||||
- Infer request/response types from server reflection result.
|
||||
- Find the request/response types from a given proto file.
|
||||
- Read proto request in text form.
|
||||
- Read request in wire form (for protobuf messages, this means serialized
|
||||
binary form).
|
||||
- Display proto response in text form.
|
||||
- Write response in wire form to a file.
|
||||
- Send unary rpc.
|
||||
- Attach metadata and display received metadata.
|
||||
- Handle common authentication to server.
|
||||
- Infer request/response types from server reflection result.
|
||||
- Find the request/response types from a given proto file.
|
||||
- Read proto request in text form.
|
||||
- Read request in wire form (for protobuf messages, this means serialized binary form).
|
||||
- Display proto response in text form.
|
||||
- Write response in wire form to a file.
|
||||
|
||||
The command line tool should support the following things:
|
||||
|
||||
- List server services and methods through server reflection.
|
||||
- Fine-grained auth control (such as, use this oauth token to talk to the
|
||||
server).
|
||||
- Send streaming rpc.
|
||||
- List server services and methods through server reflection.
|
||||
- Fine-grained auth control (such as, use this oauth token to talk to the server).
|
||||
- Send streaming rpc.
|
||||
|
||||
## Code location
|
||||
|
||||
To use the tool, you need to get the grpc repository and make sure your system
|
||||
has the prerequisites for building grpc from source, given in the
|
||||
[installation instructions](../BUILDING.md).
|
||||
has the prerequisites for building grpc from source, given in the [installation
|
||||
instructions](../BUILDING.md).
|
||||
|
||||
In order to build the grpc command line tool from a fresh clone of the grpc
|
||||
repository, you need to run the following command to update submodules:
|
||||
|
|
@ -65,13 +58,10 @@ https://github.com/grpc/grpc/blob/master/test/cpp/util/grpc_cli.cc
|
|||
Most `grpc_cli` commands need the server to support server reflection. See
|
||||
guides for
|
||||
[Java](https://github.com/grpc/grpc-java/blob/master/documentation/server-reflection-tutorial.md#enable-server-reflection)
|
||||
,
|
||||
[C++](https://github.com/grpc/grpc/blob/master/doc/server_reflection_tutorial.md)
|
||||
and
|
||||
[Go](https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md)
|
||||
, [C++](https://github.com/grpc/grpc/blob/master/doc/server_reflection_tutorial.md)
|
||||
and [Go](https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md)
|
||||
|
||||
Local proto files can be used as an alternative. See instructions
|
||||
[below](#Call-a-remote-method).
|
||||
Local proto files can be used as an alternative. See instructions [below](#Call-a-remote-method).
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
@ -186,8 +176,8 @@ We can send RPCs to a server and get responses using `grpc_cli call` command.
|
|||
```
|
||||
|
||||
If the proto file is not under the current directory, you can use
|
||||
`--proto_path` to specify new search roots (separated by colon on
|
||||
Mac/Linux/Cygwin or semicolon on Windows).
|
||||
`--proto_path` to specify new search roots
|
||||
(separated by colon on Mac/Linux/Cygwin or semicolon on Windows).
|
||||
|
||||
Note that the tool will always attempt to use the reflection service first,
|
||||
falling back to local proto files if the service is not found. Use
|
||||
|
|
|
|||
|
|
@ -90,15 +90,6 @@ The inheritance of the compression configuration by child RPCs is left up to the
|
|||
implementation. Note that in the absence of changes to the parent channel, its
|
||||
configuration will be used.
|
||||
|
||||
### Deflate Compression
|
||||
|
||||
Like HTTP implementations, gRPC implementations MUST use the "deflate"
|
||||
compression to mean the zlib structure (defined in
|
||||
[RFC 1950](https://datatracker.ietf.org/doc/html/rfc1950))
|
||||
with the deflate compression algorithm (defined in
|
||||
[RFC 1951](https://datatracker.ietf.org/doc/html/rfc1951)).
|
||||
Servers and clients MUST NOT send raw deflate data.
|
||||
|
||||
### Test cases
|
||||
|
||||
1. When a compression level is not specified for either the channel or the
|
||||
|
|
|
|||
|
|
@ -41,29 +41,110 @@ some configuration as environment variables that can be set.
|
|||
- legacy - the (deprecated) original polling engine for gRPC
|
||||
|
||||
* GRPC_TRACE
|
||||
A comma-separated list of tracer names or glob patterns that provide
|
||||
additional insight into how gRPC C core is processing requests via debug logs.
|
||||
Available tracers and their usage can be found in
|
||||
[gRPC Trace Flags](trace_flags.md)
|
||||
A comma separated list of tracers that provide additional insight into how
|
||||
gRPC C core is processing requests via debug logs. Available tracers include:
|
||||
- api - traces api calls to the C core
|
||||
- bdp_estimator - traces behavior of bdp estimation logic
|
||||
- call_error - traces the possible errors contributing to final call status
|
||||
- cares_resolver - traces operations of the c-ares based DNS resolver
|
||||
- cares_address_sorting - traces operations of the c-ares based DNS
|
||||
resolver's resolved address sorter
|
||||
- cds_lb - traces cds LB policy
|
||||
- channel - traces operations on the C core channel stack
|
||||
- channel_stack - traces the set of filters in a channel stack upon
|
||||
construction
|
||||
- client_channel - traces client channel control plane activity, including
|
||||
resolver and load balancing policy interaction
|
||||
- client_channel_call - traces client channel call activity related to name
|
||||
resolution
|
||||
- client_channel_lb_call - traces client channel call activity related
|
||||
to load balancing picking
|
||||
- compression - traces compression operations
|
||||
- connectivity_state - traces connectivity state changes to channels
|
||||
- cronet - traces state in the cronet transport engine
|
||||
- dns_resolver - traces state in the native DNS resolver
|
||||
- executor - traces grpc's internal thread pool ('the executor')
|
||||
- glb - traces the grpclb load balancer
|
||||
- handshaker - traces handshaking state
|
||||
- health_check_client - traces health checking client code
|
||||
- http - traces state in the http2 transport engine
|
||||
- http2_stream_state - traces all http2 stream state mutations.
|
||||
- http2_ping - traces pings/ping acks/antagonist writes in http2 stack.
|
||||
- http1 - traces HTTP/1.x operations performed by gRPC
|
||||
- inproc - traces the in-process transport
|
||||
- http_keepalive - traces gRPC keepalive pings
|
||||
- flowctl - traces http2 flow control
|
||||
- op_failure - traces error information when failure is pushed onto a
|
||||
completion queue
|
||||
- pick_first - traces the pick first load balancing policy
|
||||
- plugin_credentials - traces plugin credentials
|
||||
- pollable_refcount - traces reference counting of 'pollable' objects (only
|
||||
in DEBUG)
|
||||
- priority_lb - traces priority LB policy
|
||||
- resource_quota - trace resource quota objects internals
|
||||
- ring_hash_lb - traces the ring hash load balancing policy
|
||||
- rls_lb - traces the RLS load balancing policy
|
||||
- round_robin - traces the round_robin load balancing policy
|
||||
- weighted_round_robin_lb - traces the weighted_round_robin load balancing
|
||||
policy
|
||||
- queue_pluck
|
||||
- grpc_authz_api - traces gRPC authorization
|
||||
- server_channel - lightweight trace of significant server channel events
|
||||
- secure_endpoint - traces bytes flowing through encrypted channels
|
||||
- subchannel - traces the connectivity state of subchannel
|
||||
- subchannel_pool - traces subchannel pool
|
||||
- timer - timers (alarms) in the grpc internals
|
||||
- timer_check - more detailed trace of timer logic in grpc internals
|
||||
- transport_security - traces metadata about secure channel establishment
|
||||
- tcp - traces bytes in and out of a channel
|
||||
- tsi - traces tsi transport security
|
||||
- weighted_target_lb - traces weighted_target LB policy
|
||||
- xds_client - traces xds client
|
||||
- xds_cluster_manager_lb - traces cluster manager LB policy
|
||||
- xds_cluster_impl_lb - traces cluster impl LB policy
|
||||
- xds_resolver - traces xds resolver
|
||||
|
||||
The following tracers will only run in binaries built in DEBUG mode. This is
|
||||
accomplished by invoking `CONFIG=dbg make <target>`
|
||||
- metadata - tracks creation and mutation of metadata
|
||||
- combiner - traces combiner lock state
|
||||
- call_combiner - traces call combiner state
|
||||
- closure - tracks closure creation, scheduling, and completion
|
||||
- fd_trace - traces fd create(), shutdown() and close() calls for channel fds.
|
||||
- pending_tags - traces still-in-progress tags on completion queues
|
||||
- polling - traces the selected polling engine
|
||||
- polling_api - traces the api calls to polling engine
|
||||
- subchannel_refcount
|
||||
- queue_refcount
|
||||
- error_refcount
|
||||
- stream_refcount
|
||||
- slice_refcount
|
||||
- workqueue_refcount
|
||||
- fd_refcount
|
||||
- cq_refcount
|
||||
- auth_context_refcount
|
||||
- security_connector_refcount
|
||||
- resolver_refcount
|
||||
- lb_policy_refcount
|
||||
- chttp2_refcount
|
||||
|
||||
'all' can additionally be used to turn all traces on.
|
||||
Individual traces can be disabled by prefixing them with '-'.
|
||||
|
||||
'refcount' will turn on all of the tracers for refcount debugging.
|
||||
|
||||
if 'list_tracers' is present, then all of the available tracers will be
|
||||
printed when the program starts up.
|
||||
|
||||
Example:
|
||||
export GRPC_TRACE=all,-pending_tags
|
||||
|
||||
* GRPC_VERBOSITY
|
||||
<!-- BEGIN_GOOGLE_INTERNAL_DOCUMENTATION"
|
||||
GRPC_VERBOSITY has been disabled for internal usage and will not work anymore.
|
||||
If anyone wants to debug, we need to set verbose logs using absl.
|
||||
END_GOOGLE_INTERNAL_DOCUMENTATION -->
|
||||
|
||||
<!-- BEGIN_OPEN_SOURCE_DOCUMENTATION -->
|
||||
`GRPC_VERBOSITY` is used to set the minimum level of log messages printed by gRPC (supported values are `DEBUG`, `INFO` and `ERROR`). If this environment variable is unset, only `ERROR` logs will be printed.
|
||||
gRPC logging verbosity - one of:
|
||||
- DEBUG - log INFO, WARNING, ERROR and FATAL messages. Also sets absl VLOG(2) logs enabled. This is not recommended for production systems. This will be expensive for staging environments too, so it can be used when you want to debug a specific issue.
|
||||
- INFO - log INFO, WARNING, ERROR and FATAL messages. This is not recommended for production systems. This may be slightly expensive for staging environments too. We recommend that you use your discretion for staging environments.
|
||||
- ERROR - log ERROR and FATAL messages. This is recommended for production systems.
|
||||
- NONE - won't log any.
|
||||
GRPC_VERBOSITY will set verbosity of absl logging.
|
||||
- If the external application sets some other verbosity, then whatever is set later will be honoured.
|
||||
- If nothing is set as GRPC_VERBOSITY, then the setting of the exernal application will be honoured.
|
||||
- If nothing is set by the external application also, the default set by absl will be honoured.
|
||||
<!-- END_OPEN_SOURCE_DOCUMENTATION -->
|
||||
Default gRPC logging verbosity - one of:
|
||||
- DEBUG - log all gRPC messages
|
||||
- INFO - log INFO and ERROR message
|
||||
- ERROR - log only errors (default)
|
||||
- NONE - won't log any
|
||||
|
||||
* GRPC_STACKTRACE_MINLOGLEVEL
|
||||
Minimum loglevel to print the stack-trace - one of DEBUG, INFO, ERROR, and NONE.
|
||||
|
|
|
|||
|
|
@ -60,8 +60,4 @@
|
|||
- 1.58 'g' stands for ['goku'](https://github.com/grpc/grpc/tree/v1.58.x)
|
||||
- 1.59 'g' stands for ['generative'](https://github.com/grpc/grpc/tree/v1.59.x)
|
||||
- 1.60 'g' stands for ['gjallarhorn'](https://github.com/grpc/grpc/tree/v1.60.x)
|
||||
- 1.61 'g' stands for ['grand'](https://github.com/grpc/grpc/tree/v1.61.x)
|
||||
- 1.62 'g' stands for ['guardian'](https://github.com/grpc/grpc/tree/v1.62.x)
|
||||
- 1.63 'g' stands for ['giggle'](https://github.com/grpc/grpc/tree/v1.63.x)
|
||||
- 1.64 'g' stands for ['grateful'](https://github.com/grpc/grpc/tree/v1.64.x)
|
||||
- 1.65 'g' stands for ['gnarly'](https://github.com/grpc/grpc/tree/master)
|
||||
- 1.61 'g' stands for ['grand'](https://github.com/grpc/grpc/tree/master)
|
||||
|
|
|
|||
|
|
@ -64,19 +64,14 @@ Support for [xDS v2 APIs](https://www.envoyproxy.io/docs/envoy/latest/api/api_su
|
|||
[Fault Injection](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/fault/v3/fault.proto):<br> Only the following fields are supported:<ul><li>delay</li><li>abort</li><li>max_active_faults</li><li>headers</li></ul> | [A33](https://github.com/grpc/proposal/blob/master/A33-Fault-Injection.md) | v1.37.1 | v1.37.1 | v1.37.0 | v1.4.0 |
|
||||
[Client Status Discovery Service](https://github.com/envoyproxy/envoy/blob/main/api/envoy/service/status/v3/csds.proto) | [A40](https://github.com/grpc/proposal/blob/master/A40-csds-support.md) | v1.37.1 (C++)<br>v1.38.0 (Python) | v1.37.1 | v1.37.0 | v1.5.0 |
|
||||
[Aggregate Clusters](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/aggregate_cluster.html) and [Logical DNS Clusters](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/service_discovery.html#logical-dns) | [A37](https://github.com/grpc/proposal/blob/master/A37-xds-aggregate-and-logical-dns-clusters.md) | v1.47.0 | v1.39.0 | v1.52.2 | v1.9.0 |
|
||||
Aggregate Cluster Behavior Fixes | [A75](https://github.com/grpc/proposal/blob/master/A75-xds-aggregate-cluster-behavior-fixes.md) | v1.61.0 | | | |
|
||||
[Ring hash](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers#ring-hash) load balancing policy:<br> Only the following [policy specifiers](https://github.com/envoyproxy/envoy/blob/2443032526cf6e50d63d35770df9473dd0460fc0/api/envoy/config/route/v3/route_components.proto#L706) are supported:<ul><li>header</li><li>filter_state with key `io.grpc.channel_id`</li></ul>Only [`XX_HASH`](https://github.com/envoyproxy/envoy/blob/2443032526cf6e50d63d35770df9473dd0460fc0/api/envoy/config/cluster/v3/cluster.proto#L383) function is supported. | [A42](https://github.com/grpc/proposal/blob/master/A42-xds-ring-hash-lb-policy.md) | v1.40.0<br>(C++ and Python) | v1.40.1 | 1.41.0 | v1.10.0 |
|
||||
[Ring hash](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers#ring-hash) load balancing policy:<br> Only the following [policy specifiers](https://github.com/envoyproxy/envoy/blob/2443032526cf6e50d63d35770df9473dd0460fc0/api/envoy/config/route/v3/route_components.proto#L706) are supported:<ul><li>header</li><li>filter_state with key `io.grpc.channel_id`</li></ul>Only [`XX_HASH`](https://github.com/envoyproxy/envoy/blob/2443032526cf6e50d63d35770df9473dd0460fc0/api/envoy/config/cluster/v3/cluster.proto#L383) function is supported. | [A42](https://github.com/grpc/proposal/blob/master/A42-xds-ring-hash-lb-policy.md) | v1.40.0<br>(C++ and Python) | v1.40.1 | 1.41.0 | |
|
||||
[Retry](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-msg-config-route-v3-retrypolicy):<br>Only the following fields are supported:<ul><li>retry_on for the following conditions: cancelled, deadline-exceeded, internal, resource-exhausted, and unavailable.</li><li>num_retries</li><li>retry_back_off</li></ul> | [A44](https://github.com/grpc/proposal/blob/master/A44-xds-retry.md) | v1.40.0<br>(C++ and Python) | v1.40.1 | 1.41.0 | v1.8.0 |
|
||||
[Security](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/security):<br>Uses [certificate providers](https://github.com/grpc/proposal/blob/master/A29-xds-tls-security.md#certificate-provider-plugin-framework) instead of SDS | [A29](https://github.com/grpc/proposal/blob/master/A29-xds-tls-security.md) | v1.41.0<br>(C++ and Python) | v1.41.0 | 1.41.0 | |
|
||||
[Authorization (RBAC)](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/rbac/v3/rbac.proto):<br><ul><li>`LOG` action has no effect<li>CEL unsupported and rejected</ul> | [A41](https://github.com/grpc/proposal/blob/master/A41-xds-rbac.md) | v1.51.0<br>(C++ and Python) | v1.42.0 | 1.42.0 | |
|
||||
[Least Request LB Policy](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers.html#weighted-least-request) | [A48](https://github.com/grpc/proposal/blob/master/A48-xds-least-request-lb-policy.md) | | v1.48.0 | | |
|
||||
[Outlier Detection](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/outlier):<br>Only the following detection types are supported:<ul><li>Success Rate</li><li>Failure Percentage</li></ul> | [A50](https://github.com/grpc/proposal/blob/master/A50-xds-outlier-detection.md) | v1.51.0 | v1.49.0 | v1.50.0 | v1.7.0 |
|
||||
Ignore Resource Deletion | [A53](https://github.com/grpc/proposal/blob/master/A53-xds-ignore-resource-deletion.md) | v1.48.0 | v1.48.0 | v1.55.0 | v1.7.0 |
|
||||
[Custom Load Balancer Configuration](https://github.com/envoyproxy/envoy/blob/57be3189ffa3372b34e9480d1f02b2d165e49077/api/envoy/config/cluster/v3/cluster.proto#L1208) | [A52](https://github.com/grpc/proposal/blob/master/A52-xds-custom-lb-policies.md) | v1.55.0 | v1.47.0 | v1.56.0 | v1.10.0 |
|
||||
[Custom Load Balancer Configuration](https://github.com/envoyproxy/envoy/blob/57be3189ffa3372b34e9480d1f02b2d165e49077/api/envoy/config/cluster/v3/cluster.proto#L1208) | [A52](https://github.com/grpc/proposal/blob/master/A52-xds-custom-lb-policies.md) | v1.55.0 | v1.47.0 | v1.56.0 | |
|
||||
[xDS Federation](https://github.com/cncf/xds/blob/main/proposals/TP1-xds-transport-next.md) | [A47](https://github.com/grpc/proposal/blob/master/A47-xds-federation.md) | v1.55.0 | v1.55.0 | v1.55.0 | |
|
||||
[Client-Side Weighted Round Robin LB Policy](https://github.com/envoyproxy/envoy/blob/a6d46b6ac4750720eec9a49abe701f0df9bf8e0a/api/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.proto#L36) | [A58](https://github.com/grpc/proposal/blob/master/A58-client-side-weighted-round-robin-lb-policy.md) | v1.55.0 | v1.54.0 | v1.56.0 | |
|
||||
Pick First | [A62](https://github.com/grpc/proposal/blob/master/A62-pick-first.md) | v1.58.0 | v1.58.1 | v1.56.0 | |
|
||||
[StringMatcher for Header Matching](https://github.com/envoyproxy/envoy/blob/3fe4b8d335fa339ef6f17325c8d31f87ade7bb1a/api/envoy/config/route/v3/route_components.proto#L2280) | [A63](https://github.com/grpc/proposal/blob/master/A63-xds-string-matcher-in-header-matching.md) | v1.56.0 | v1.53.0 | v1.56.0 | v1.9.0 |
|
||||
LRS Custom Metrics Support | [A64](https://github.com/grpc/proposal/blob/master/A64-lrs-custom-metrics.md) | v1.54.0 | | | |
|
||||
mTLS Credentials in xDS Bootstrap File | [A65](https://github.com/grpc/proposal/blob/master/A65-xds-mtls-creds-in-bootstrap.md) | v1.65.0 | | v1.61.0 | |
|
||||
Stateful Session Affinity | [A55](https://github.com/grpc/proposal/blob/master/A55-xds-stateful-session-affinity.md), [A60](https://github.com/grpc/proposal/blob/master/A60-xds-stateful-session-affinity-weighted-clusters.md), [A75](https://github.com/grpc/proposal/blob/master/A75-xds-aggregate-cluster-behavior-fixes.md) | v1.61.0 | | | |
|
||||
mTLS Credentials in xDS Bootstrap File | [A65](https://github.com/grpc/proposal/blob/master/A65-xds-mtls-creds-in-bootstrap.md) | v1.57.0 | | | |
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 455 KiB |
|
Before Width: | Height: | Size: 530 KiB |
|
Before Width: | Height: | Size: 389 KiB |
|
Before Width: | Height: | Size: 500 KiB |
|
Before Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 506 KiB |
|
Before Width: | Height: | Size: 374 KiB |
|
Before Width: | Height: | Size: 523 KiB |
|
Before Width: | Height: | Size: 524 KiB |
|
Before Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 540 KiB |
|
Before Width: | Height: | Size: 343 KiB |
|
|
@ -1,7 +0,0 @@
|
|||
gRPC Python Observability
|
||||
=========================
|
||||
|
||||
Module Contents
|
||||
---------------
|
||||
|
||||
.. automodule:: grpc_observability
|
||||
|
|
@ -18,7 +18,6 @@ API Reference
|
|||
grpc_reflection
|
||||
grpc_status
|
||||
grpc_testing
|
||||
grpc_observability
|
||||
glossary
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,120 +0,0 @@
|
|||
<!---
|
||||
Automatically generated by tools/codegen/core/gen_trace_flags.py
|
||||
--->
|
||||
|
||||
gRPC Trace Flags
|
||||
----------------
|
||||
|
||||
The `GRPC_TRACE` environment variable supports a comma-separated list of tracer
|
||||
names or glob patterns that provide additional insight into how gRPC C core is
|
||||
processing requests via debug logs. Available tracers include:
|
||||
|
||||
- api - API calls to the C core.
|
||||
- backend_metric - C++ backend metric recorder APIs.
|
||||
- backend_metric_filter - Filter that populates backend metric data in server trailing metadata.
|
||||
- bdp_estimator - Behavior of bdp estimation logic.
|
||||
- call - Traces operations on a call through the gRPC stack.
|
||||
- call_error - Possible errors contributing to final call statuses.
|
||||
- cares_address_sorting - Operations of the c-ares based DNS resolver's address sorter.
|
||||
- cares_resolver - Operations of the c-ares based DNS resolver.
|
||||
- cds_lb - CDS LB policy.
|
||||
- channel - Operations on the C core channel stack.
|
||||
- channel_stack - Construction of the set of filters in a channel stack.
|
||||
- chaotic_good - Chaotic good transport.
|
||||
- chttp2_hpack_parser - HTTP/2 HPACK parser.
|
||||
- chttp2_new_stream - HTTP/2 incoming stream creation.
|
||||
- client_channel - Client channel control plane activity, including resolver and load balancing policy interaction.
|
||||
- client_channel_call - Client channel call activity related to name resolution.
|
||||
- client_channel_lb_call - Client channel call activity related to load balancing picking.
|
||||
- client_idle_filter - Client idleness filter.
|
||||
- compression - Compression operations.
|
||||
- connectivity_state - Connectivity state changes to channels.
|
||||
- cronet - Cronet transport engine.
|
||||
- dns_resolver - The active DNS resolver.
|
||||
- environment_autodetect - GCP environment auto-detection.
|
||||
- event_engine - High-level EventEngine operations.
|
||||
- event_engine_client_channel_resolver - EventEngine-based client channel resolver state and events.
|
||||
- event_engine_dns - EventEngine DNS resolver.
|
||||
- event_engine_endpoint - EventEngine Endpoint operations.
|
||||
- event_engine_endpoint_data - Detailed dump of EventEngine endpoint TCP data.
|
||||
- event_engine_poller - EventEngine Poller events.
|
||||
- executor - gRPC's legacy thread pool ('the executor').
|
||||
- fault_injection_filter - Fault injection.
|
||||
- flowctl - Http2 flow control.
|
||||
- fork - Fork support.
|
||||
- glb - gRPClb load balancer.
|
||||
- grpc_authz_api - gRPC authorization.
|
||||
- handshaker - Handshaking state.
|
||||
- health_check_client - Health checking client code.
|
||||
- http - Http2 transport engine.
|
||||
- http1 - HTTP/1.x operations performed by gRPC.
|
||||
- http2_ping - Pings/ping acks/antagonist writes in http2 stack.
|
||||
- http2_stream_state - Http2 stream state mutations.
|
||||
- http_keepalive - gRPC keepalive pings.
|
||||
- inproc - In-process transport.
|
||||
- metadata_query - GCP metadata queries.
|
||||
- op_failure - Error information when failure is pushed onto a completion queue. The `api` tracer must be enabled for this flag to have any effect.
|
||||
- orca_client - Out-of-band backend metric reporting client.
|
||||
- outlier_detection_lb - Outlier detection.
|
||||
- pick_first - Pick first load balancing policy.
|
||||
- plugin_credentials - Plugin credentials.
|
||||
- priority_lb - Priority LB policy.
|
||||
- queue_pluck - Completion queue plucking. The `api` tracer must be enabled for this flag to have any effect.
|
||||
- resource_quota - Resource quota objects internals.
|
||||
- retry - Call retries.
|
||||
- ring_hash_lb - Ring hash load balancing policy.
|
||||
- rls_lb - RLS load balancing policy.
|
||||
- round_robin - Round robin load balancing policy.
|
||||
- secure_endpoint - Bytes flowing through encrypted channels.
|
||||
- server_channel - Lightweight trace of significant server channel events.
|
||||
- stateful_session_filter - Stateful session affinity.
|
||||
- subchannel - Connectivity state of subchannels.
|
||||
- subchannel_pool - Subchannel pool.
|
||||
- tcp - Bytes in and out of a channel.
|
||||
- timer - Timers (alarms) in the grpc internals.
|
||||
- timer_check - more detailed trace of timer logic in grpc internals.
|
||||
- tsi - TSI transport security.
|
||||
- weighted_round_robin_lb - Weighted round robin load balancing policy.
|
||||
- weighted_target_lb - Weighted target LB policy.
|
||||
- xds_client - XDS client.
|
||||
- xds_client_refcount - Refcount of XDS client.
|
||||
- xds_cluster_impl_lb - XDS Cluster impl LB policy.
|
||||
- xds_cluster_manager_lb - XDS Cluster manager LB policy.
|
||||
- xds_override_host_lb - XDS Override host LB.
|
||||
- xds_resolver - XDS Resolver.
|
||||
- xds_server_config_fetcher - XDS Server config fetcher.
|
||||
- xds_wrr_locality_lb - XDS WRR locality LB policy.
|
||||
|
||||
The following tracers will only run in binaries built in DEBUG mode. This is
|
||||
accomplished by invoking `bazel build --config=dbg <target>`
|
||||
- auth_context_refcount - Auth context refcounting.
|
||||
- call_combiner - Call combiner state.
|
||||
- call_refcount - Refcount on call.
|
||||
- closure - Legacy closure creation, scheduling, and completion.
|
||||
- combiner - Combiner lock state.
|
||||
- cq_refcount - Completion queue refcounting.
|
||||
- error_refcount - Error refcounting.
|
||||
- fd_refcount - File descriptor refcounting.
|
||||
- fd_trace - Legacy file descriptor create(), shutdown() and close() calls for channel fds.
|
||||
- lb_policy_refcount - LB policy refcounting.
|
||||
- party_state - Coordination of activities related to a call.
|
||||
- pending_tags - Still-in-progress tags on completion queues. The `api` tracer must be enabled for this flag to have any effect.
|
||||
- polling - The active polling engine.
|
||||
- polling_api - API calls to polling engine.
|
||||
- promise_primitives - Low-level primitives in the promise library.
|
||||
- resolver_refcount - Resolver refcouting.
|
||||
- security_connector_refcount - Refcounting for security connectors (part of channel credentials).
|
||||
- slice_refcount - Slice refcounting.
|
||||
- stream_refcount - Stream refcounting.
|
||||
- subchannel_refcount - Subchannel refcounting.
|
||||
- work_serializer - A synchronization mechanism used to ensure that only one thread is executing at a given time.
|
||||
|
||||
Glob patterns and special cases:
|
||||
- `*` can be used to turn all traces on.
|
||||
- Individual traces can be disabled by prefixing them with `-`.
|
||||
- `*refcount*` will turn on all of the tracers for refcount debugging.
|
||||
- if `list_tracers` is present, then all of the available tracers will be
|
||||
printed when the program starts up.
|
||||
|
||||
Example:
|
||||
export GRPC_TRACE=*,-pending_tags
|
||||
|
|
@ -1,23 +1,20 @@
|
|||
# gRPC-core BinderTransport example apps
|
||||
|
||||
WIP.
|
||||
|
||||
## Build Instruction
|
||||
|
||||
1. Install Android SDK and NDK. Only NDK version >= 25 is supported. We tested against SDK Platform `33` and NDK `26.2.11394342`.
|
||||
2. Make sure Bazel is at least `7.0`. Use `export OVERRIDE_BAZEL_VERSION=7.1.0` to selected a supported version listed in `bazel/supported_versions.txt` if necessary.
|
||||
3. Point environment variables to install locations of SDK and NDK
|
||||
1. Install Android SDK and NDK. Currently we only support SDK version 30.0.3 and
|
||||
NDK version 21.4.7075529 . Make sure you get these exact versions otherwise
|
||||
Bazel might complain.
|
||||
|
||||
2. Point environment variables to install locations of SDK and NDK
|
||||
```
|
||||
export ANDROID_HOME=$HOME/android-sdk
|
||||
export ANDROID_NDK_HOME=$HOME/android-sdk/ndk/26.2.11394342
|
||||
```
|
||||
4. To build a fat APK that supports `x86_64`, `armv7`, and `arm64`:
|
||||
```
|
||||
bazel build \
|
||||
--extra_toolchains=@androidndk//:all \
|
||||
--android_platforms=//bazel/platforms/android:x86_64,//bazel/platforms/android:armeabi-v7a,//bazel/platforms/android:arm64-v8a \
|
||||
--copt=-Wno-unknown-warning-option \
|
||||
//examples/android/binder/java/io/grpc/binder/cpp/exampleserver:app \
|
||||
//examples/android/binder/java/io/grpc/binder/cpp/exampleclient:app
|
||||
export ANDROID_HOME=$HOME/Android/Sdk/
|
||||
export ANDROID_NDK_HOME=$HOME/Android/Sdk/ndk/21.4.7075529
|
||||
```
|
||||
3. `bazel build //examples/android/binder/java/io/grpc/binder/cpp/exampleclient:app`
|
||||
4. `bazel build //examples/android/binder/java/io/grpc/binder/cpp/exampleserver:app`
|
||||
5. `adb install
|
||||
bazel-bin/examples/android/binder/java/io/grpc/binder/cpp/exampleclient/app.apk`
|
||||
6. `adb install
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load("@build_bazel_rules_android//android:rules.bzl", "android_binary", "android_library")
|
||||
|
||||
cc_library(
|
||||
name = "jni_lib",
|
||||
srcs = ["native.cc"],
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
load("@build_bazel_rules_android//android:rules.bzl", "android_binary", "android_library")
|
||||
|
||||
cc_library(
|
||||
name = "jni_lib",
|
||||
srcs = ["native.cc"],
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ android {
|
|||
arguments '-Dhelloworld_GRPC_CPP_PLUGIN_EXECUTABLE=' + grpc_cpp_plugin
|
||||
arguments '-Dprotobuf_INSTALL=OFF'
|
||||
arguments '-Dutf8_range_ENABLE_INSTALL=OFF'
|
||||
version "3.22.1"
|
||||
}
|
||||
}
|
||||
ndk.abiFilters 'x86'
|
||||
|
|
@ -48,7 +47,6 @@ android {
|
|||
externalNativeBuild {
|
||||
cmake {
|
||||
path "CMakeLists.txt"
|
||||
version "3.22.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
# Copyright 2024 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
cc_library(
|
||||
name = "helper",
|
||||
srcs = ["helper.cc"],
|
||||
hdrs = ["helper.h"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "ssl_client",
|
||||
srcs = ["ssl_client.cc"],
|
||||
data = [
|
||||
"credentials/root.crt",
|
||||
],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
":helper",
|
||||
"//:grpc++",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "ssl_server",
|
||||
srcs = ["ssl_server.cc"],
|
||||
data = [
|
||||
"credentials/localhost.crt",
|
||||
"credentials/localhost.key",
|
||||
],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
":helper",
|
||||
"//:grpc++",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
],
|
||||
)
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
# Copyright 2024 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# cmake build file for C++ keyvaluestore example.
|
||||
# Assumes protobuf and gRPC have been installed using cmake.
|
||||
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
|
||||
# that automatically builds all the dependencies before building keyvaluestore.
|
||||
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
|
||||
project(Cancellation C CXX)
|
||||
|
||||
include(../cmake/common.cmake)
|
||||
|
||||
# Proto files
|
||||
get_filename_component(hw_proto "../../protos/helloworld.proto" ABSOLUTE)
|
||||
get_filename_component(hw_proto_path "${hw_proto}" PATH)
|
||||
|
||||
# Generated sources
|
||||
set(hw_proto_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.cc")
|
||||
set(hw_proto_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.h")
|
||||
set(hw_grpc_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.cc")
|
||||
set(hw_grpc_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${hw_proto_srcs}" "${hw_proto_hdrs}" "${hw_grpc_srcs}" "${hw_grpc_hdrs}"
|
||||
COMMAND ${_PROTOBUF_PROTOC}
|
||||
ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
--cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-I "${hw_proto_path}"
|
||||
--plugin=protoc-gen-grpc="${_GRPC_CPP_PLUGIN_EXECUTABLE}"
|
||||
"${hw_proto}"
|
||||
DEPENDS "${hw_proto}")
|
||||
|
||||
# Include generated *.pb.h files
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
# hw_grpc_proto
|
||||
add_library(hw_grpc_proto
|
||||
${hw_grpc_srcs}
|
||||
${hw_grpc_hdrs}
|
||||
${hw_proto_srcs}
|
||||
${hw_proto_hdrs})
|
||||
target_link_libraries(hw_grpc_proto
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
|
||||
# example helper
|
||||
add_library(helper
|
||||
"helper.h"
|
||||
"helper.cc")
|
||||
|
||||
# Targets greeter_(client|server)
|
||||
foreach(_target
|
||||
ssl_client ssl_server)
|
||||
add_executable(${_target} "${_target}.cc")
|
||||
target_link_libraries(${_target}
|
||||
helper
|
||||
hw_grpc_proto
|
||||
absl::flags
|
||||
absl::flags_parse
|
||||
absl::strings
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
endforeach()
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# Authentication Example
|
||||
|
||||
## Overview
|
||||
|
||||
SSL is a commonly used cryptographic protocol to provide end-to-end
|
||||
communication security. In the example, we show how to set up a server
|
||||
authenticated SSL connection to transmit RPC.
|
||||
|
||||
We provide `grpc::SslServerCredentials` and `grpc::SslCredentials` types
|
||||
to use SSL conections.
|
||||
|
||||
In our example, we use the public/private keys created ahead:
|
||||
* "localhost.crt" contains the server certificate (public key).
|
||||
* "localhost.key" contains the server private key.
|
||||
* "root.crt" contains the certificate (certificate authority)
|
||||
that can verify the server's certificate.
|
||||
|
||||
### Try it!
|
||||
|
||||
Once you have working gRPC, you can build this example using either bazel or cmake.
|
||||
Make sure to run those at this directory so that they can read credential files properly.
|
||||
|
||||
Run the server, which will listen on port 50051:
|
||||
|
||||
```sh
|
||||
$ ./ssl_server
|
||||
```
|
||||
|
||||
Run the client (in a different terminal):
|
||||
|
||||
```sh
|
||||
$ ./ssl_client
|
||||
```
|
||||
|
||||
If things go smoothly, you will see the client output:
|
||||
|
||||
```
|
||||
Greeter received: Hello world
|
||||
```
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDFjCCAf4CCQCzrLIhrWa55zANBgkqhkiG9w0BAQsFADBCMQswCQYDVQQGEwJV
|
||||
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEPMA0GA1UECgwGR29vZ2xlMQ0wCwYDVQQL
|
||||
DARnUlBDMCAXDTE5MDYyNDIyMjIzM1oYDzIxMTkwNTMxMjIyMjMzWjBWMQswCQYD
|
||||
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEPMA0GA1UECgwGR29vZ2xlMQ0w
|
||||
CwYDVQQLDARnUlBDMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQCtCW0TjugnIUu8BEVIYvdMP+/2GENQDjZhZ8eKR5C6
|
||||
toDGbgjsDtt/GxISAg4cg70fIvy0XolnGPZodvfHDM4lJ7yHBOdZD8TXQoE6okR7
|
||||
HZuLUJ20M0pXgWqtRewKRUjuYsSDXBnzLiZw1dcv9nGpo+Bqa8NonpiGRRpEkshF
|
||||
D6T9KU9Ts/x+wMQBIra2Gj0UMh79jPhUuxcYAQA0JQGivnOtdwuPiumpnUT8j8h6
|
||||
tWg5l01EsCZWJecCF85KnGpJEVYPyPqBqGsy0nGS9plGotOWF87+jyUQt+KD63xA
|
||||
aBmTro86mKDDKEK4JvzjVeMGz2UbVcLPiiZnErTFaiXJAgMBAAEwDQYJKoZIhvcN
|
||||
AQELBQADggEBAKsDgOPCWp5WCy17vJbRlgfgk05sVNIHZtzrmdswjBmvSg8MUpep
|
||||
XqcPNUpsljAXsf9UM5IFEMRdilUsFGWvHjBEtNAW8WUK9UV18WRuU//0w1Mp5HAN
|
||||
xUEKb4BoyZr65vlCnTR+AR5c9FfPvLibhr5qHs2RA8Y3GyLOcGqBWed87jhdQLCc
|
||||
P1bxB+96le5JeXq0tw215lxonI2/3ZYVK4/ok9gwXrQoWm8YieJqitk/ZQ4S17/4
|
||||
pynHtDfdxLn23EXeGx+UTxJGfpRmhEZdJ+MN7QGYoomzx5qS5XoYKxRNrDlirJpr
|
||||
OqXIn8E1it+6d5gOZfuHawcNGhRLplE/pfA=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEogIBAAKCAQEArQltE47oJyFLvARFSGL3TD/v9hhDUA42YWfHikeQuraAxm4I
|
||||
7A7bfxsSEgIOHIO9HyL8tF6JZxj2aHb3xwzOJSe8hwTnWQ/E10KBOqJEex2bi1Cd
|
||||
tDNKV4FqrUXsCkVI7mLEg1wZ8y4mcNXXL/ZxqaPgamvDaJ6YhkUaRJLIRQ+k/SlP
|
||||
U7P8fsDEASK2tho9FDIe/Yz4VLsXGAEANCUBor5zrXcLj4rpqZ1E/I/IerVoOZdN
|
||||
RLAmViXnAhfOSpxqSRFWD8j6gahrMtJxkvaZRqLTlhfO/o8lELfig+t8QGgZk66P
|
||||
OpigwyhCuCb841XjBs9lG1XCz4omZxK0xWolyQIDAQABAoIBADeq/Kh6JT3RfGf0
|
||||
h8WN8TlaqHxnueAbcmtL0+oss+cdp7gu1jf7X6o4r0uT1a5ew40s2Fe+wj2kzkE1
|
||||
ZOlouTlC22gkr7j7Vbxa7PBMG/Pvxoa/XL0IczZLsGImSJXVTG1E4SvRiZeulTdf
|
||||
1GbdxhtpWV1jZe5Wd4Na3+SHxF5S7m3PrHiZlYdz1ND+8XZs1NlL9+ej72qSFul9
|
||||
t/QjMWJ9pky/Wad5abnRLRyOsg+BsgnXbkUy2rD89ZxFMLda9pzXo3TPyAlBHonr
|
||||
mkEsE4eRMWMpjBM79JbeyDdHn/cs/LjAZrzeDf7ugXr2CHQpKaM5O0PsNHezJII9
|
||||
L5kCfzECgYEA4M/rz1UP1/BJoSqigUlSs0tPAg8a5UlkVsh6Osuq72IPNo8qg/Fw
|
||||
oV/IiIS+q+obRcFj1Od3PGdTpCJwW5dzd2fXBQGmGdj0HucnCrs13RtBh91JiF5i
|
||||
y/YYI9KfgOG2ZT9gG68T0gTs6jRrS3Qd83npqjrkJqMOd7s00MK9tUcCgYEAxQq7
|
||||
T541oCYHSBRIIb0IrR25krZy9caxzCqPDwOcuuhaCqCiaq+ATvOWlSfgecm4eH0K
|
||||
PCH0xlWxG0auPEwm4pA8+/WR/XJwscPZMuoht1EoKy1his4eKx/s7hHNeO6KOF0V
|
||||
Y/zqIiuZnEwUoKbn7EqqNFSTT65PJKyGsICJFG8CgYAfaw9yl1myfQNdQb8aQGwN
|
||||
YJ33FLNWje427qeeZe5KrDKiFloDvI9YDjHRWnPnRL1w/zj7fSm9yFb5HlMDieP6
|
||||
MQnsyjEzdY2QcA+VwVoiv3dmDHgFVeOKy6bOAtaFxYWfGr9MvygO9t9BT/gawGyb
|
||||
JVORlc9i0vDnrMMR1dV7awKBgBpTWLtGc/u1mPt0Wj7HtsUKV6TWY32a0l5owTxM
|
||||
S0BdksogtBJ06DukJ9Y9wawD23WdnyRxlPZ6tHLkeprrwbY7dypioOKvy4a0l+xJ
|
||||
g7+uRCOgqIuXBkjUtx8HmeAyXp0xMo5tWArAsIFFWOwt4IadYygitJvMuh44PraO
|
||||
NcJZAoGADEiV0dheXUCVr8DrtSom8DQMj92/G/FIYjXL8OUhh0+F+YlYP0+F8PEU
|
||||
yYIWEqL/S5tVKYshimUXQa537JcRKsTVJBG/ZKD2kuqgOc72zQy3oplimXeJDCXY
|
||||
h2eAQ0u8GN6tN9C4t8Kp4a3y6FGsxgu+UTxdnL3YQ+yHAVhtCzo=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDWTCCAkGgAwIBAgIJAPOConZMwykwMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNV
|
||||
BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMQ8wDQYDVQQKDAZHb29nbGUxDTAL
|
||||
BgNVBAsMBGdSUEMwIBcNMTkwNjI0MjIyMDA3WhgPMjExOTA1MzEyMjIwMDdaMEIx
|
||||
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMQ8wDQYDVQQKDAZHb29n
|
||||
bGUxDTALBgNVBAsMBGdSUEMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||
AQCwqei3TfyLidnQNDJ2lierMYo229K92DuORni7nSjJQ59Jc3dNMsmqGQJjCD8o
|
||||
6mTlKM/oCbs27Wpx+OxcOLvT95j2kiDGca1fCvaMdguIod09SWiyMpv/hp0trLv7
|
||||
NJIKHznath6rHYX2Ii3fZ1yCPzyQbEPSAA+GNpoNm1v1ZWmWKke9v7vLlS3inNlW
|
||||
Mt9jepK7DrtbNZnVDjeItnppBSbVYRMxIyNHkepFbqXx5TpkCvl4M4XQZw9bfSxQ
|
||||
i3WZ3q+T1Tw//OUdPNc+OfMhu0MA0QoMwikskP0NaIC3dbJZ5Ogx0RcnaB4E+9C6
|
||||
O/znUEh3WuKVl5HXBF+UwWoFAgMBAAGjUDBOMB0GA1UdDgQWBBRm3JIgzgK4G97J
|
||||
fbMGatWMZc7V3jAfBgNVHSMEGDAWgBRm3JIgzgK4G97JfbMGatWMZc7V3jAMBgNV
|
||||
HRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCNiV8x41if094ry2srS0YucpiN
|
||||
3rTPk08FOLsENTMYai524TGXJti1P6ofGr5KXCL0uxTByHE3fEiMMud2TIY5iHQo
|
||||
Y4mzDTTcb+Q7yKHwYZMlcp6nO8W+NeY5t+S0JPHhb8deKWepcN2UpXBUYQLw7AiE
|
||||
l96T9Gi+vC9h/XE5IVwHFQXTxf5UYzXtW1nfapvrOONg/ms41dgmrRKIi+knWfiJ
|
||||
FdHpHX2sfDAoJtnpEISX+nxRGNVTLY64utXWm4yxaZJshvy2s8zWJgRg7rtwAhTT
|
||||
Np9E9MnihXLEmDI4Co9XlLPJyZFmqImsbmVuKFeQOCiLAoPJaMI2lbi7fiTo
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2024 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "helper.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
std::string LoadStringFromFile(std::string path) {
|
||||
std::ifstream file(path);
|
||||
if (!file.is_open()) {
|
||||
std::cout << "Failed to open " << path << std::endl;
|
||||
abort();
|
||||
}
|
||||
std::stringstream sstr;
|
||||
sstr << file.rdbuf();
|
||||
return sstr.str();
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2024 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef GRPC_EXAMPLES_CPP_AUTH_HELPER_H_
|
||||
#define GRPC_EXAMPLES_CPP_AUTH_HELPER_H_
|
||||
|
||||
#include <string>
|
||||
|
||||
std::string LoadStringFromFile(std::string path);
|
||||
|
||||
#endif // GRPC_EXAMPLES_CPP_AUTH_HELPER_H_
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2024 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <condition_variable>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "helper.h"
|
||||
|
||||
#include <grpcpp/grpcpp.h>
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
#include "examples/protos/helloworld.grpc.pb.h"
|
||||
#else
|
||||
#include "helloworld.grpc.pb.h"
|
||||
#endif
|
||||
|
||||
ABSL_FLAG(uint16_t, port, 50051, "Server port for the service");
|
||||
|
||||
using grpc::Channel;
|
||||
using grpc::ClientContext;
|
||||
using grpc::Status;
|
||||
using helloworld::Greeter;
|
||||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
class GreeterClient {
|
||||
public:
|
||||
GreeterClient(std::shared_ptr<Channel> channel)
|
||||
: stub_(Greeter::NewStub(channel)) {}
|
||||
|
||||
// Assembles the client's payload, sends it and presents the response back
|
||||
// from the server.
|
||||
std::string SayHello(const std::string& user) {
|
||||
// Data we are sending to the server.
|
||||
HelloRequest request;
|
||||
request.set_name(user);
|
||||
|
||||
// Container for the data we expect from the server.
|
||||
HelloReply reply;
|
||||
|
||||
// Context for the client. It could be used to convey extra information to
|
||||
// the server and/or tweak certain RPC behaviors.
|
||||
ClientContext context;
|
||||
|
||||
// The actual RPC.
|
||||
std::mutex mu;
|
||||
std::condition_variable cv;
|
||||
bool done = false;
|
||||
Status status;
|
||||
stub_->async()->SayHello(&context, &request, &reply,
|
||||
[&mu, &cv, &done, &status](Status s) {
|
||||
status = std::move(s);
|
||||
std::lock_guard<std::mutex> lock(mu);
|
||||
done = true;
|
||||
cv.notify_one();
|
||||
});
|
||||
|
||||
std::unique_lock<std::mutex> lock(mu);
|
||||
while (!done) {
|
||||
cv.wait(lock);
|
||||
}
|
||||
|
||||
// Act upon its status.
|
||||
if (status.ok()) {
|
||||
return reply.message();
|
||||
} else {
|
||||
std::cout << status.error_code() << ": " << status.error_message()
|
||||
<< std::endl;
|
||||
return "RPC failed";
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<Greeter::Stub> stub_;
|
||||
};
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
constexpr char kRootCertificate[] = "examples/cpp/auth/credentials/root.crt";
|
||||
#else
|
||||
constexpr char kRootCertificate[] = "credentials/root.crt";
|
||||
#endif
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// Instantiate the client. It requires a channel, out of which the actual RPCs
|
||||
// are created. This channel models a connection to an endpoint specified by
|
||||
// the argument "--target=" which is the only expected argument.
|
||||
std::string target_str =
|
||||
absl::StrFormat("localhost:%d", absl::GetFlag(FLAGS_port));
|
||||
// Build a SSL options for the channel
|
||||
grpc::SslCredentialsOptions ssl_options;
|
||||
ssl_options.pem_root_certs = LoadStringFromFile(kRootCertificate);
|
||||
// Create a channel with SSL credentials
|
||||
GreeterClient greeter(
|
||||
grpc::CreateChannel(target_str, grpc::SslCredentials(ssl_options)));
|
||||
std::string user("world");
|
||||
std::string reply = greeter.SayHello(user);
|
||||
std::cout << "Greeter received: " << reply << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
// Copyright 2024 gRPC authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
#include "helper.h"
|
||||
|
||||
#include <grpcpp/grpcpp.h>
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
#include "examples/protos/helloworld.grpc.pb.h"
|
||||
#else
|
||||
#include "helloworld.grpc.pb.h"
|
||||
#endif
|
||||
|
||||
ABSL_FLAG(uint16_t, port, 50051, "Server port for the service");
|
||||
|
||||
using grpc::CallbackServerContext;
|
||||
using grpc::Server;
|
||||
using grpc::ServerBuilder;
|
||||
using grpc::ServerUnaryReactor;
|
||||
using grpc::Status;
|
||||
using helloworld::Greeter;
|
||||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
// Logic and data behind the server's behavior.
|
||||
class GreeterServiceImpl final : public Greeter::CallbackService {
|
||||
ServerUnaryReactor* SayHello(CallbackServerContext* context,
|
||||
const HelloRequest* request,
|
||||
HelloReply* reply) override {
|
||||
std::string prefix("Hello ");
|
||||
reply->set_message(prefix + request->name());
|
||||
|
||||
ServerUnaryReactor* reactor = context->DefaultReactor();
|
||||
reactor->Finish(Status::OK);
|
||||
return reactor;
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
constexpr char kServerCertPath[] =
|
||||
"examples/cpp/auth/credentials/localhost.crt";
|
||||
constexpr char kServerKeyPath[] = "examples/cpp/auth/credentials/localhost.key";
|
||||
#else
|
||||
constexpr char kServerCertPath[] = "credentials/localhost.crt";
|
||||
constexpr char kServerKeyPath[] = "credentials/localhost.key";
|
||||
#endif
|
||||
|
||||
void RunServer(uint16_t port) {
|
||||
std::string server_address = absl::StrFormat("0.0.0.0:%d", port);
|
||||
GreeterServiceImpl service;
|
||||
ServerBuilder builder;
|
||||
// Load SSL credentials and build a SSL credential options
|
||||
grpc::SslServerCredentialsOptions::PemKeyCertPair key_cert_pair = {
|
||||
LoadStringFromFile(kServerKeyPath), LoadStringFromFile(kServerCertPath)};
|
||||
grpc::SslServerCredentialsOptions ssl_options;
|
||||
ssl_options.pem_key_cert_pairs.emplace_back(key_cert_pair);
|
||||
// Listen on the given address with SSL credentials
|
||||
builder.AddListeningPort(server_address,
|
||||
grpc::SslServerCredentials(ssl_options));
|
||||
// Register "service" as the instance through which we'll communicate with
|
||||
// clients. In this case it corresponds to an *synchronous* service.
|
||||
builder.RegisterService(&service);
|
||||
// Finally assemble the server.
|
||||
std::unique_ptr<Server> server(builder.BuildAndStart());
|
||||
std::cout << "Server listening on " << server_address << std::endl;
|
||||
|
||||
// Wait for the server to shutdown. Note that some other thread must be
|
||||
// responsible for shutting down the server for this call to ever return.
|
||||
server->Wait();
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
RunServer(absl::GetFlag(FLAGS_port));
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -41,7 +41,6 @@ cc_binary(
|
|||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
"@com_google_absl//absl/log",
|
||||
"@io_opentelemetry_cpp//exporters/prometheus:prometheus_exporter",
|
||||
"@io_opentelemetry_cpp//sdk/src/metrics",
|
||||
],
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ RUN ln -s /usr/bin/python3 /usr/bin/python
|
|||
RUN mkdir /artifacts
|
||||
|
||||
COPY . .
|
||||
RUN tools/bazel build //examples/cpp/csm:csm_greeter_client
|
||||
RUN OVERRIDE_BAZEL_VERSION=5.4.0 tools/bazel build //examples/cpp/csm:csm_greeter_client
|
||||
RUN cp -rL /workdir/bazel-bin/examples/cpp/csm/csm_greeter_client /artifacts/
|
||||
|
||||
FROM python:3.9-slim-bookworm
|
||||
|
|
|
|||
|
|
@ -6,30 +6,6 @@ This CSM example builds on the [Hello World Example](https://github.com/grpc/grp
|
|||
|
||||
The client takes the following command-line arguments -
|
||||
* target - By default, the client tries to connect to the xDS "xds:///helloworld:50051" and gRPC would use xDS to resolve this target and connect to the server backend. This can be overriden to change the target.
|
||||
* cookie_name - session affinity cookie name. Defaults to "GSSA"
|
||||
* delay_s - delay (in seconds) between the RPCs. Default value is 5
|
||||
|
||||
|
||||
The server takes the following command-line arguments -
|
||||
* port - Port on which the Hello World service is run. Defaults to 50051.
|
||||
|
||||
## Building
|
||||
|
||||
From the gRPC workspace folder:
|
||||
|
||||
Client:
|
||||
```
|
||||
docker build -f examples/cpp/csm/Dockerfile.client
|
||||
```
|
||||
Server:
|
||||
```
|
||||
docker build -f examples/cpp/csm/Dockerfile.server
|
||||
```
|
||||
|
||||
To push to a registry, add a tag to the image either by adding a `-t` flag to `docker build` command above or run:
|
||||
|
||||
```
|
||||
docker image tag ${sha from build command above} ${tag}
|
||||
```
|
||||
|
||||
And then push the tagged image using `docker push`
|
||||
|
|
@ -16,20 +16,16 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/strings/str_join.h"
|
||||
#include "absl/strings/str_split.h"
|
||||
#include "absl/types/optional.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_factory.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_options.h"
|
||||
#include "opentelemetry/sdk/metrics/meter_provider.h"
|
||||
|
|
@ -45,8 +41,6 @@
|
|||
#endif
|
||||
|
||||
ABSL_FLAG(std::string, target, "xds:///helloworld:50051", "Target string");
|
||||
ABSL_FLAG(std::string, cookie_name, "GSSA", "Cookie name");
|
||||
ABSL_FLAG(uint, delay_s, 5, "Delay between requests");
|
||||
|
||||
using grpc::Channel;
|
||||
using grpc::ClientContext;
|
||||
|
|
@ -55,13 +49,15 @@ using helloworld::Greeter;
|
|||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
namespace {
|
||||
|
||||
struct Cookie {
|
||||
std::string name;
|
||||
std::string value;
|
||||
std::set<std::string> attributes;
|
||||
|
||||
std::pair<std::string, std::string> Header() const {
|
||||
return std::make_pair("cookie", absl::StrFormat("%s=%s", name, value));
|
||||
}
|
||||
|
||||
template <typename Sink>
|
||||
friend void AbslStringify(Sink& sink, const Cookie& cookie) {
|
||||
absl::Format(&sink, "(Cookie: %s, value: %s, attributes: {%s})",
|
||||
|
|
@ -70,45 +66,49 @@ struct Cookie {
|
|||
}
|
||||
};
|
||||
|
||||
Cookie ParseCookie(absl::string_view header) {
|
||||
Cookie cookie;
|
||||
std::pair<absl::string_view, absl::string_view> name_value =
|
||||
absl::StrSplit(header, absl::MaxSplits('=', 1));
|
||||
cookie.name = std::string(name_value.first);
|
||||
std::pair<absl::string_view, absl::string_view> value_attrs =
|
||||
absl::StrSplit(name_value.second, absl::MaxSplits(';', 1));
|
||||
cookie.value = std::string(value_attrs.first);
|
||||
for (absl::string_view segment : absl::StrSplit(value_attrs.second, ';')) {
|
||||
cookie.attributes.emplace(absl::StripAsciiWhitespace(segment));
|
||||
}
|
||||
return cookie;
|
||||
}
|
||||
|
||||
std::vector<Cookie> GetCookies(
|
||||
const std::multimap<grpc::string_ref, grpc::string_ref>& initial_metadata,
|
||||
absl::string_view cookie_name) {
|
||||
std::vector<Cookie> values;
|
||||
auto pair = initial_metadata.equal_range("set-cookie");
|
||||
for (auto it = pair.first; it != pair.second; ++it) {
|
||||
const auto cookie = ParseCookie(it->second.data());
|
||||
if (cookie.name == cookie_name) {
|
||||
values.emplace_back(std::move(cookie));
|
||||
}
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
class GreeterClient {
|
||||
protected:
|
||||
static Cookie ParseCookie(absl::string_view header) {
|
||||
Cookie cookie;
|
||||
std::pair<absl::string_view, absl::string_view> name_value =
|
||||
absl::StrSplit(header, absl::MaxSplits('=', 1));
|
||||
cookie.name = std::string(name_value.first);
|
||||
std::pair<absl::string_view, absl::string_view> value_attrs =
|
||||
absl::StrSplit(name_value.second, absl::MaxSplits(';', 1));
|
||||
cookie.value = std::string(value_attrs.first);
|
||||
for (absl::string_view segment : absl::StrSplit(value_attrs.second, ';')) {
|
||||
cookie.attributes.emplace(absl::StripAsciiWhitespace(segment));
|
||||
}
|
||||
return cookie;
|
||||
}
|
||||
|
||||
static std::vector<Cookie> GetCookies(
|
||||
const std::multimap<grpc::string_ref, grpc::string_ref>&
|
||||
server_initial_metadata,
|
||||
absl::string_view cookie_name) {
|
||||
std::vector<Cookie> values;
|
||||
auto pair = server_initial_metadata.equal_range("set-cookie");
|
||||
for (auto it = pair.first; it != pair.second; ++it) {
|
||||
gpr_log(GPR_INFO, "set-cookie header: %s", it->second.data());
|
||||
const auto cookie = ParseCookie(it->second.data());
|
||||
if (cookie.name == cookie_name) {
|
||||
values.emplace_back(cookie);
|
||||
}
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
public:
|
||||
GreeterClient(std::shared_ptr<Channel> channel, absl::string_view cookie_name)
|
||||
: stub_(Greeter::NewStub(channel)), cookie_name_(cookie_name) {}
|
||||
GreeterClient(std::shared_ptr<Channel> channel)
|
||||
: stub_(Greeter::NewStub(channel)) {}
|
||||
|
||||
// Assembles the client's payload, sends it and presents the response back
|
||||
// from the server.
|
||||
void SayHello() {
|
||||
std::string SayHello(const std::string& user, Cookie* cookieFromServer,
|
||||
const Cookie* cookieToServer) {
|
||||
// Data we are sending to the server.
|
||||
HelloRequest request;
|
||||
request.set_name("world");
|
||||
request.set_name(user);
|
||||
|
||||
// Container for the data we expect from the server.
|
||||
HelloReply reply;
|
||||
|
|
@ -120,45 +120,59 @@ class GreeterClient {
|
|||
// The actual RPC.
|
||||
std::mutex mu;
|
||||
std::condition_variable cv;
|
||||
absl::optional<Status> status;
|
||||
// Set the cookie header if we already got a cookie from the server
|
||||
if (cookie_from_server_.has_value()) {
|
||||
context.AddMetadata("cookie",
|
||||
absl::StrFormat("%s=%s", cookie_from_server_->name,
|
||||
cookie_from_server_->value));
|
||||
bool done = false;
|
||||
Status status;
|
||||
if (cookieToServer != NULL) {
|
||||
std::pair<std::string, std::string> cookieHeader =
|
||||
cookieToServer->Header();
|
||||
context.AddMetadata(cookieHeader.first, cookieHeader.second);
|
||||
}
|
||||
stub_->async()->SayHello(&context, &request, &reply,
|
||||
[&mu, &cv, &done, &status](Status s) {
|
||||
status = std::move(s);
|
||||
std::lock_guard<std::mutex> lock(mu);
|
||||
done = true;
|
||||
cv.notify_one();
|
||||
});
|
||||
|
||||
std::unique_lock<std::mutex> lock(mu);
|
||||
stub_->async()->SayHello(&context, &request, &reply, [&](Status s) {
|
||||
std::lock_guard<std::mutex> lock(mu);
|
||||
status = std::move(s);
|
||||
cv.notify_one();
|
||||
});
|
||||
while (!status.has_value()) {
|
||||
while (!done) {
|
||||
cv.wait(lock);
|
||||
}
|
||||
if (!status->ok()) {
|
||||
std::cout << "RPC failed" << status->error_code() << ": "
|
||||
<< status->error_message() << std::endl;
|
||||
return;
|
||||
|
||||
// Act upon its status.
|
||||
if (status.ok()) {
|
||||
if (cookieFromServer != NULL) {
|
||||
const std::multimap<grpc::string_ref, grpc::string_ref>&
|
||||
server_initial_metadata = context.GetServerInitialMetadata();
|
||||
std::vector<Cookie> cookies =
|
||||
GetCookies(server_initial_metadata, "GSSA");
|
||||
if (!cookies.empty()) {
|
||||
*cookieFromServer = cookies.front();
|
||||
}
|
||||
}
|
||||
return reply.message();
|
||||
} else {
|
||||
std::cout << status.error_code() << ": " << status.error_message()
|
||||
<< std::endl;
|
||||
return "RPC failed";
|
||||
}
|
||||
const std::multimap<grpc::string_ref, grpc::string_ref>&
|
||||
server_initial_metadata = context.GetServerInitialMetadata();
|
||||
// Update a cookie after a successful request
|
||||
std::vector<Cookie> cookies =
|
||||
GetCookies(server_initial_metadata, cookie_name_);
|
||||
if (!cookies.empty()) {
|
||||
cookie_from_server_.emplace(std::move(cookies.front()));
|
||||
}
|
||||
std::cout << "Greeter received: " << reply.message() << std::endl;
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<Greeter::Stub> stub_;
|
||||
std::string cookie_name_;
|
||||
absl::optional<Cookie> cookie_from_server_;
|
||||
};
|
||||
|
||||
absl::StatusOr<grpc::CsmObservability> InitializeObservability() {
|
||||
static void sayHello(GreeterClient& greeter, Cookie* cookieFromServer,
|
||||
const Cookie* cookieToServer) {
|
||||
std::string user("world");
|
||||
std::string reply = greeter.SayHello(user, cookieFromServer, cookieToServer);
|
||||
std::cout << "Greeter received: " << reply << std::endl;
|
||||
std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE pods
|
||||
opts.url = "0.0.0.0:9464";
|
||||
|
|
@ -167,29 +181,21 @@ absl::StatusOr<grpc::CsmObservability> InitializeObservability() {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
return grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// Setup the observability
|
||||
auto observability = InitializeObservability();
|
||||
auto observability = grpc::experimental::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
if (!observability.ok()) {
|
||||
std::cerr << "CsmObservability::Init() failed: "
|
||||
<< observability.status().ToString() << std::endl;
|
||||
return static_cast<int>(observability.status().code());
|
||||
}
|
||||
GreeterClient greeter(grpc::CreateChannel(absl::GetFlag(FLAGS_target),
|
||||
grpc::InsecureChannelCredentials()),
|
||||
absl::GetFlag(FLAGS_cookie_name));
|
||||
GreeterClient greeter(grpc::CreateChannel(
|
||||
absl::GetFlag(FLAGS_target), grpc::InsecureChannelCredentials()));
|
||||
|
||||
Cookie session_cookie;
|
||||
sayHello(greeter, &session_cookie, NULL);
|
||||
while (true) {
|
||||
greeter.SayHello();
|
||||
std::this_thread::sleep_for(
|
||||
std::chrono::seconds(absl::GetFlag(FLAGS_delay_s)));
|
||||
sayHello(greeter, NULL, &session_cookie);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/log/log.h"
|
||||
#include "absl/strings/str_cat.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_factory.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_options.h"
|
||||
|
|
@ -92,7 +91,7 @@ void RunServer(const char* hostname) {
|
|||
xds_builder.AddListeningPort(absl::StrCat("0.0.0.0:", port),
|
||||
grpc::InsecureServerCredentials());
|
||||
xds_enabled_server = xds_builder.BuildAndStart();
|
||||
LOG(INFO) << "Server starting on 0.0.0.0:" << port;
|
||||
gpr_log(GPR_INFO, "Server starting on 0.0.0.0:%d", port);
|
||||
|
||||
// Wait for the server to shutdown. Note that some other thread must be
|
||||
// responsible for shutting down the server for this call to ever return.
|
||||
|
|
@ -109,7 +108,7 @@ int main(int argc, char** argv) {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
auto observability = grpc::CsmObservabilityBuilder()
|
||||
auto observability = grpc::experimental::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
if (!observability.ok()) {
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
# Copyright 2023 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
cc_binary(
|
||||
name = "csm_greeter_client",
|
||||
srcs = ["csm_greeter_client.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//:grpcpp_csm_observability",
|
||||
"//examples/cpp/otel:util",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
"@io_opentelemetry_cpp//exporters/prometheus:prometheus_exporter",
|
||||
"@io_opentelemetry_cpp//sdk/src/metrics",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "csm_greeter_server",
|
||||
srcs = ["csm_greeter_server.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//:grpc++_reflection",
|
||||
"//:grpcpp_admin",
|
||||
"//:grpcpp_csm_observability",
|
||||
"//examples/cpp/otel:util",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
"@com_google_absl//absl/log",
|
||||
"@io_opentelemetry_cpp//exporters/prometheus:prometheus_exporter",
|
||||
"@io_opentelemetry_cpp//sdk/src/metrics",
|
||||
],
|
||||
)
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
# Copyright 2023 The gRPC Authors
|
||||
#
|
||||
# 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.
|
||||
|
||||
FROM python:3.9-slim-bookworm
|
||||
|
||||
RUN apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential clang curl
|
||||
|
||||
WORKDIR /workdir
|
||||
|
||||
RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||
RUN mkdir /artifacts
|
||||
|
||||
COPY . .
|
||||
RUN tools/bazel build //examples/cpp/csm/observability:csm_greeter_client
|
||||
RUN cp -rL /workdir/bazel-bin/examples/cpp/csm/observability/csm_greeter_client /artifacts/
|
||||
|
||||
FROM python:3.9-slim-bookworm
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y upgrade \
|
||||
&& apt-get -y autoremove \
|
||||
&& apt-get install -y curl
|
||||
|
||||
COPY --from=0 /artifacts ./
|
||||
|
||||
ENTRYPOINT ["/csm_greeter_client"]
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
# Copyright 2023 The gRPC Authors
|
||||
#
|
||||
# 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.
|
||||
|
||||
FROM python:3.9-slim-bookworm
|
||||
|
||||
RUN apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential clang curl
|
||||
|
||||
WORKDIR /workdir
|
||||
|
||||
RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||
RUN mkdir /artifacts
|
||||
|
||||
COPY . .
|
||||
RUN tools/bazel build //examples/cpp/csm/observability:csm_greeter_server
|
||||
RUN cp -rL /workdir/bazel-bin/examples/cpp/csm/observability/csm_greeter_server /artifacts/
|
||||
|
||||
FROM python:3.9-slim-bookworm
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y upgrade \
|
||||
&& apt-get -y autoremove \
|
||||
&& apt-get install -y curl
|
||||
|
||||
COPY --from=0 /artifacts ./
|
||||
|
||||
ENTRYPOINT ["/csm_greeter_server"]
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
# gRPC C++ CSM Hello World Example
|
||||
|
||||
This CSM example builds on the [Hello World Example](https://github.com/grpc/grpc/tree/master/examples/cpp/helloworld) and changes the gRPC client and server to test CSM observability.
|
||||
|
||||
## Configuration
|
||||
|
||||
The client takes the following command-line arguments -
|
||||
* target - By default, the client tries to connect to the xDS "xds:///helloworld:50051" and gRPC would use xDS to resolve this target and connect to the server backend. This can be overridden to change the target.
|
||||
* prometheus_endpoint - Endpoint used for prometheus. Default value is localhost:9464
|
||||
|
||||
|
||||
The server takes the following command-line arguments -
|
||||
* port - Port on which the Hello World service is run. Defaults to 50051.
|
||||
* prometheus_endpoint - Endpoint used for prometheus. Default value is localhost:9464
|
||||
|
||||
## Building
|
||||
|
||||
From the gRPC workspace folder:
|
||||
|
||||
Client:
|
||||
```
|
||||
docker build -f examples/cpp/csm/observability/Dockerfile.client
|
||||
```
|
||||
Server:
|
||||
```
|
||||
docker build -f examples/cpp/csm/observability/Dockerfile.server
|
||||
```
|
||||
|
||||
To push to a registry, add a tag to the image either by adding a `-t` flag to `docker build` command above or run:
|
||||
|
||||
```
|
||||
docker image tag ${sha from build command above} ${tag}
|
||||
```
|
||||
|
||||
And then push the tagged image using `docker push`
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2023 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/types/optional.h"
|
||||
#include "examples/cpp/otel/util.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_factory.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_options.h"
|
||||
#include "opentelemetry/sdk/metrics/meter_provider.h"
|
||||
|
||||
#include <grpcpp/ext/csm_observability.h>
|
||||
#include <grpcpp/grpcpp.h>
|
||||
#include <grpcpp/support/string_ref.h>
|
||||
|
||||
ABSL_FLAG(std::string, target, "xds:///helloworld:50051", "Target string");
|
||||
ABSL_FLAG(std::string, prometheus_endpoint, "localhost:9464",
|
||||
"Prometheus exporter endpoint");
|
||||
|
||||
namespace {
|
||||
|
||||
absl::StatusOr<grpc::CsmObservability> InitializeObservability() {
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE pods
|
||||
opts.url = "0.0.0.0:9464";
|
||||
auto prometheus_exporter =
|
||||
opentelemetry::exporter::metrics::PrometheusExporterFactory::Create(opts);
|
||||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
// The default histogram boundaries are not granular enough for RPCs. Override
|
||||
// the "grpc.client.attempt.duration" view as recommended by
|
||||
// https://github.com/grpc/proposal/blob/master/A66-otel-stats.md.
|
||||
AddLatencyView(meter_provider.get(), "grpc.client.attempt.duration", "s");
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
return grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// Setup CSM observability
|
||||
auto observability = InitializeObservability();
|
||||
if (!observability.ok()) {
|
||||
std::cerr << "CsmObservability::Init() failed: "
|
||||
<< observability.status().ToString() << std::endl;
|
||||
return static_cast<int>(observability.status().code());
|
||||
}
|
||||
|
||||
// Continuously send RPCs every second.
|
||||
RunClient(absl::GetFlag(FLAGS_target));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2023 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/log/log.h"
|
||||
#include "absl/strings/str_cat.h"
|
||||
#include "examples/cpp/otel/util.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_factory.h"
|
||||
#include "opentelemetry/exporters/prometheus/exporter_options.h"
|
||||
#include "opentelemetry/sdk/metrics/meter_provider.h"
|
||||
|
||||
#include <grpcpp/ext/admin_services.h>
|
||||
#include <grpcpp/ext/csm_observability.h>
|
||||
#include <grpcpp/ext/proto_server_reflection_plugin.h>
|
||||
#include <grpcpp/grpcpp.h>
|
||||
#include <grpcpp/health_check_service_interface.h>
|
||||
#include <grpcpp/xds_server_builder.h>
|
||||
|
||||
ABSL_FLAG(int32_t, port, 50051, "Server port for service.");
|
||||
ABSL_FLAG(std::string, prometheus_endpoint, "localhost:9464",
|
||||
"Prometheus exporter endpoint");
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE pods
|
||||
opts.url = "0.0.0.0:9464";
|
||||
auto prometheus_exporter =
|
||||
opentelemetry::exporter::metrics::PrometheusExporterFactory::Create(opts);
|
||||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
// The default histogram boundaries are not granular enough for RPCs. Override
|
||||
// the "grpc.server.call.duration" view as recommended by
|
||||
// https://github.com/grpc/proposal/blob/master/A66-otel-stats.md.
|
||||
AddLatencyView(meter_provider.get(), "grpc.server.call.duration", "s");
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
auto observability = grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
if (!observability.ok()) {
|
||||
std::cerr << "CsmObservability::Init() failed: "
|
||||
<< observability.status().ToString() << std::endl;
|
||||
return static_cast<int>(observability.status().code());
|
||||
}
|
||||
RunServer(absl::GetFlag(FLAGS_port));
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
# Copyright 2023 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
cc_binary(
|
||||
name = "greeter_client",
|
||||
srcs = ["greeter_client.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "greeter_server",
|
||||
srcs = ["greeter_server.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
"@com_google_absl//absl/strings:str_format",
|
||||
],
|
||||
)
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
# Copyright 2023 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# cmake build file for C++ helloworld example.
|
||||
# Assumes protobuf and gRPC have been installed using cmake.
|
||||
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
|
||||
# that automatically builds all the dependencies before building helloworld.
|
||||
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
|
||||
project(GenericAPI C CXX)
|
||||
|
||||
include(../cmake/common.cmake)
|
||||
|
||||
# Proto files
|
||||
get_filename_component(hw_proto "../../protos/helloworld.proto" ABSOLUTE)
|
||||
get_filename_component(hw_proto_path "${hw_proto}" PATH)
|
||||
|
||||
# Generated sources
|
||||
set(hw_proto_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.cc")
|
||||
set(hw_proto_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.h")
|
||||
set(hw_grpc_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.cc")
|
||||
set(hw_grpc_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${hw_proto_srcs}" "${hw_proto_hdrs}" "${hw_grpc_srcs}" "${hw_grpc_hdrs}"
|
||||
COMMAND ${_PROTOBUF_PROTOC}
|
||||
ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
--cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-I "${hw_proto_path}"
|
||||
--plugin=protoc-gen-grpc="${_GRPC_CPP_PLUGIN_EXECUTABLE}"
|
||||
"${hw_proto}"
|
||||
DEPENDS "${hw_proto}")
|
||||
|
||||
# Include generated *.pb.h files
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
# hw_grpc_proto
|
||||
add_library(hw_grpc_proto
|
||||
${hw_grpc_srcs}
|
||||
${hw_grpc_hdrs}
|
||||
${hw_proto_srcs}
|
||||
${hw_proto_hdrs})
|
||||
target_link_libraries(hw_grpc_proto
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
|
||||
# Targets greeter_(client|server)
|
||||
foreach(_target
|
||||
greeter_client greeter_server)
|
||||
add_executable(${_target} "${_target}.cc")
|
||||
target_link_libraries(${_target}
|
||||
hw_grpc_proto
|
||||
absl::flags
|
||||
absl::flags_parse
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
endforeach()
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
# Generic API Example
|
||||
|
||||
## Overview
|
||||
|
||||
While generated stub code is often the simpler and best choice for sending and handling API calls,
|
||||
generic APIs offer unique advantages in specific scenarios, such as proxy implementation.
|
||||
Their ability to manage multiple message types with a single function makes them particularly handy
|
||||
in these cases. This example demonstrates how to use generic APIs to achieve this flexibility.
|
||||
|
||||
This example implements `greeter_callback_client` and `greeter_callback_server` using the generic APIs.
|
||||
Therefore, looking at the difference would be helpful to understand how to use generic APIs.
|
||||
|
||||
### Try it!
|
||||
|
||||
Once you have working gRPC, you can build this example using either bazel or cmake.
|
||||
|
||||
Run the server, which will listen on port 50051:
|
||||
|
||||
```sh
|
||||
$ ./greeter_server
|
||||
```
|
||||
|
||||
Run the client (in a different terminal):
|
||||
|
||||
```sh
|
||||
$ ./greeter_client
|
||||
```
|
||||
|
||||
If things go smoothly, you will see the client output:
|
||||
|
||||
```
|
||||
### Send: SayHello(name=World)
|
||||
Ok. ReplyMessage=Hello World
|
||||
### Send: SayHello(name=gRPC)
|
||||
Ok. ReplyMessage=Hello gRPC
|
||||
```
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
// Copyright 2023 gRPC authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
#include <condition_variable>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
|
||||
#include <grpcpp/generic/generic_stub.h>
|
||||
#include <grpcpp/grpcpp.h>
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
#include "examples/protos/helloworld.grpc.pb.h"
|
||||
#else
|
||||
#include "helloworld.grpc.pb.h"
|
||||
#endif
|
||||
|
||||
ABSL_FLAG(std::string, target, "localhost:50051", "Server address");
|
||||
|
||||
using grpc::Channel;
|
||||
using grpc::ClientContext;
|
||||
using grpc::Status;
|
||||
using helloworld::Greeter;
|
||||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
using ProtoGenericStub =
|
||||
::grpc::TemplatedGenericStub<::google::protobuf::Message,
|
||||
::google::protobuf::Message>;
|
||||
|
||||
class GreeterClient {
|
||||
public:
|
||||
GreeterClient(std::shared_ptr<Channel> channel)
|
||||
: stub_(new ProtoGenericStub(channel)) {}
|
||||
|
||||
// Assembles the client's payload, sends it and prints the response back
|
||||
// from the server.
|
||||
void SayHello(const std::string& user) {
|
||||
// Data we are sending to the server.
|
||||
HelloRequest request;
|
||||
request.set_name(user);
|
||||
// Container for the data we expect from the server.
|
||||
HelloReply reply;
|
||||
// Context for the client. It could be used to convey extra information to
|
||||
// the server and/or tweak certain RPC behaviors.
|
||||
ClientContext context;
|
||||
// The actual RPC.
|
||||
std::mutex mu;
|
||||
std::condition_variable cv;
|
||||
bool done = false;
|
||||
Status status;
|
||||
std::cout << absl::StrFormat("### Send: SayHello(name=%s)", user)
|
||||
<< std::endl;
|
||||
// Send a unary call using a generic stub. Unlike generated subs,
|
||||
// this requires to specify the name of call.
|
||||
stub_->UnaryCall(&context, "/helloworld.Greeter/SayHello",
|
||||
grpc::StubOptions(), &request, &reply, [&](Status s) {
|
||||
status = std::move(s);
|
||||
std::lock_guard<std::mutex> lock(mu);
|
||||
done = true;
|
||||
cv.notify_one();
|
||||
});
|
||||
std::unique_lock<std::mutex> lock(mu);
|
||||
while (!done) {
|
||||
cv.wait(lock);
|
||||
}
|
||||
// Handles the reply
|
||||
if (status.ok()) {
|
||||
std::cout << absl::StrFormat("Ok. ReplyMessage=%s", reply.message())
|
||||
<< std::endl;
|
||||
} else {
|
||||
std::cout << absl::StrFormat("Failed. Code=%d Message=%s",
|
||||
status.error_code(), status.error_message())
|
||||
<< std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
// Instead of `Greeter::Stub`, it uses `ProtoGenericStub` to send any calls.
|
||||
std::unique_ptr<ProtoGenericStub> stub_;
|
||||
};
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// Instantiate the client. It requires a channel, out of which the actual RPCs
|
||||
// are created. This channel models a connection to an endpoint specified by
|
||||
// the argument "--target=" which is the only expected argument.
|
||||
std::string target_str = absl::GetFlag(FLAGS_target);
|
||||
// We indicate that the channel isn't authenticated (use of
|
||||
// InsecureChannelCredentials()).
|
||||
GreeterClient greeter(
|
||||
grpc::CreateChannel(target_str, grpc::InsecureChannelCredentials()));
|
||||
greeter.SayHello("World");
|
||||
greeter.SayHello("gRPC");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,143 +0,0 @@
|
|||
// Copyright 2023 gRPC authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <unordered_set>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
#include "absl/synchronization/mutex.h"
|
||||
|
||||
#include <grpcpp/grpcpp.h>
|
||||
#include <grpcpp/health_check_service_interface.h>
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
#include "examples/protos/helloworld.grpc.pb.h"
|
||||
#else
|
||||
#include "helloworld.grpc.pb.h"
|
||||
#endif
|
||||
|
||||
ABSL_FLAG(uint16_t, port, 50051, "Server port for the service");
|
||||
|
||||
using grpc::ByteBuffer;
|
||||
using grpc::CallbackGenericService;
|
||||
using grpc::CallbackServerContext;
|
||||
using grpc::GenericCallbackServerContext;
|
||||
using grpc::ProtoBufferReader;
|
||||
using grpc::ProtoBufferWriter;
|
||||
using grpc::Server;
|
||||
using grpc::ServerBuilder;
|
||||
using grpc::ServerGenericBidiReactor;
|
||||
using grpc::Status;
|
||||
using grpc::StatusCode;
|
||||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
// Logic and data behind the server's behavior.
|
||||
class GreeterServiceImpl final : public CallbackGenericService {
|
||||
ServerGenericBidiReactor* CreateReactor(
|
||||
GenericCallbackServerContext* context) override {
|
||||
if (context->method() == "/helloworld.Greeter/SayHello") {
|
||||
// Let the SayHello reactor handle this now on.
|
||||
return new SayHelloReactor();
|
||||
} else {
|
||||
// Forward this to the implementation of the base calss returning
|
||||
// UNIMPLEMENTED.
|
||||
return CallbackGenericService::CreateReactor(context);
|
||||
}
|
||||
}
|
||||
|
||||
class SayHelloReactor : public ServerGenericBidiReactor {
|
||||
public:
|
||||
SayHelloReactor() { StartRead(&request_); }
|
||||
|
||||
private:
|
||||
Status OnSayHello(const HelloRequest& request, HelloReply* reply) {
|
||||
if (request.name() == "") {
|
||||
return Status(StatusCode::INVALID_ARGUMENT, "name is not specified");
|
||||
}
|
||||
reply->set_message(absl::StrFormat("Hello %s", request.name()));
|
||||
return Status::OK;
|
||||
}
|
||||
|
||||
void OnDone() override { delete this; }
|
||||
void OnReadDone(bool ok) override {
|
||||
if (!ok) {
|
||||
return;
|
||||
}
|
||||
Status result;
|
||||
// Deserialize a request message
|
||||
HelloRequest request;
|
||||
result = grpc::GenericDeserialize<ProtoBufferReader, HelloRequest>(
|
||||
&request_, &request);
|
||||
if (!result.ok()) {
|
||||
Finish(result);
|
||||
return;
|
||||
}
|
||||
// Call the SayHello handler
|
||||
HelloReply reply;
|
||||
result = OnSayHello(request, &reply);
|
||||
if (!result.ok()) {
|
||||
Finish(result);
|
||||
return;
|
||||
}
|
||||
// Serialize a reply message
|
||||
bool own_buffer;
|
||||
result = grpc::GenericSerialize<ProtoBufferWriter, HelloReply>(
|
||||
reply, &response_, &own_buffer);
|
||||
if (!result.ok()) {
|
||||
Finish(result);
|
||||
return;
|
||||
}
|
||||
StartWrite(&response_);
|
||||
}
|
||||
void OnWriteDone(bool ok) override {
|
||||
Finish(ok ? Status::OK
|
||||
: Status(StatusCode::UNKNOWN, "Unexpected failure"));
|
||||
}
|
||||
ByteBuffer request_;
|
||||
ByteBuffer response_;
|
||||
};
|
||||
|
||||
private:
|
||||
absl::Mutex mu_;
|
||||
};
|
||||
|
||||
void RunServer(uint16_t port) {
|
||||
std::string server_address = absl::StrFormat("0.0.0.0:%d", port);
|
||||
GreeterServiceImpl service;
|
||||
grpc::EnableDefaultHealthCheckService(true);
|
||||
ServerBuilder builder;
|
||||
// Listen on the given address without any authentication mechanism.
|
||||
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
|
||||
// Register "service" as the instance through which we'll communicate with
|
||||
// clients. In this case it corresponds to an *synchronous* service.
|
||||
builder.RegisterCallbackGenericService(&service);
|
||||
// Finally assemble the server.
|
||||
std::unique_ptr<Server> server(builder.BuildAndStart());
|
||||
std::cout << "Server listening on " << server_address << std::endl;
|
||||
|
||||
// Wait for the server to shutdown. Note that some other thread must be
|
||||
// responsible for shutting down the server for this call to ever return.
|
||||
server->Wait();
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
RunServer(absl::GetFlag(FLAGS_port));
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
# Copyright 2024 the gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
cc_binary(
|
||||
name = "health_client",
|
||||
srcs = ["health_client.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"//src/proto/grpc/health/v1:health_proto",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "health_server",
|
||||
srcs = ["health_server.cc"],
|
||||
defines = ["BAZEL_BUILD"],
|
||||
deps = [
|
||||
"//:grpc++",
|
||||
"//:grpc++_reflection",
|
||||
"//examples/protos:helloworld_cc_grpc",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
"@com_google_absl//absl/strings:str_format",
|
||||
],
|
||||
)
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
# Copyright 2024 gRPC authors.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# cmake build file for C++ helloworld example.
|
||||
# Assumes protobuf and gRPC have been installed using cmake.
|
||||
# See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
|
||||
# that automatically builds all the dependencies before building helloworld.
|
||||
|
||||
cmake_minimum_required(VERSION 3.8)
|
||||
|
||||
project(HelloWorld C CXX)
|
||||
|
||||
include(../cmake/common.cmake)
|
||||
|
||||
# Proto file
|
||||
get_filename_component(hw_proto "../../protos/helloworld.proto" ABSOLUTE)
|
||||
get_filename_component(hw_proto_path "${hw_proto}" PATH)
|
||||
get_filename_component(health_proto "../../../src/proto/grpc/health/v1/health.proto" ABSOLUTE)
|
||||
get_filename_component(health_proto_path "${health_proto}" PATH)
|
||||
|
||||
# Generated sources
|
||||
set(hw_proto_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.cc")
|
||||
set(hw_proto_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.pb.h")
|
||||
set(hw_grpc_srcs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.cc")
|
||||
set(hw_grpc_hdrs "${CMAKE_CURRENT_BINARY_DIR}/helloworld.grpc.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${hw_proto_srcs}" "${hw_proto_hdrs}" "${hw_grpc_srcs}" "${hw_grpc_hdrs}"
|
||||
COMMAND ${_PROTOBUF_PROTOC}
|
||||
ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
--cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-I "${hw_proto_path}"
|
||||
--plugin=protoc-gen-grpc="${_GRPC_CPP_PLUGIN_EXECUTABLE}"
|
||||
"${hw_proto}"
|
||||
DEPENDS "${hw_proto}")
|
||||
|
||||
# Health protos
|
||||
set(health_proto_srcs "${CMAKE_CURRENT_BINARY_DIR}/health.pb.cc")
|
||||
set(health_proto_hdrs "${CMAKE_CURRENT_BINARY_DIR}/health.pb.h")
|
||||
set(health_grpc_srcs "${CMAKE_CURRENT_BINARY_DIR}/health.grpc.pb.cc")
|
||||
set(health_grpc_hdrs "${CMAKE_CURRENT_BINARY_DIR}/health.grpc.pb.h")
|
||||
add_custom_command(
|
||||
OUTPUT "${health_proto_srcs}" "${health_proto_hdrs}" "${health_grpc_srcs}" "${health_grpc_hdrs}"
|
||||
COMMAND ${_PROTOBUF_PROTOC}
|
||||
ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
--cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
-I "${health_proto_path}"
|
||||
--plugin=protoc-gen-grpc="${_GRPC_CPP_PLUGIN_EXECUTABLE}"
|
||||
"${health_proto}"
|
||||
DEPENDS "${health_proto}")
|
||||
|
||||
# Include generated *.pb.h files
|
||||
include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
# hw_grpc_proto
|
||||
add_library(hw_grpc_proto
|
||||
${hw_grpc_srcs}
|
||||
${hw_grpc_hdrs}
|
||||
${hw_proto_srcs}
|
||||
${hw_proto_hdrs})
|
||||
target_link_libraries(hw_grpc_proto
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
|
||||
#health_grpc_proto
|
||||
add_library(health_grpc_proto
|
||||
${health_grpc_srcs}
|
||||
${health_grpc_hdrs}
|
||||
${health_proto_srcs}
|
||||
${health_proto_hdrs})
|
||||
target_link_libraries(health_grpc_proto
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
|
||||
|
||||
# Targets greeter_[async_](client|server)
|
||||
foreach(_target
|
||||
health_client health_server)
|
||||
add_executable(${_target} "${_target}.cc")
|
||||
target_link_libraries(${_target}
|
||||
hw_grpc_proto
|
||||
health_grpc_proto
|
||||
absl::flags
|
||||
absl::flags_parse
|
||||
${_REFLECTION}
|
||||
${_GRPC_GRPCPP}
|
||||
${_PROTOBUF_LIBPROTOBUF})
|
||||
endforeach()
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# gRPC C++ Health Check Example
|
||||
|
||||
You can find a complete set of instructions for building gRPC and running the
|
||||
example in the [C++ Quick Start][].
|
||||
|
||||
[C++ Quick Start]: https://grpc.io/docs/languages/cpp/quickstart
|
||||
|
|
@ -1,140 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Copyright 2024 gRPC authors.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <condition_variable>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
#include "absl/flags/flag.h"
|
||||
#include "absl/flags/parse.h"
|
||||
|
||||
#include <grpcpp/grpcpp.h>
|
||||
|
||||
#ifdef BAZEL_BUILD
|
||||
#include "examples/protos/helloworld.grpc.pb.h"
|
||||
|
||||
#include "src/proto/grpc/health/v1/health.grpc.pb.h"
|
||||
#else
|
||||
#include "health.grpc.pb.h"
|
||||
#include "helloworld.grpc.pb.h"
|
||||
#endif
|
||||
|
||||
ABSL_FLAG(std::string, target, "localhost:50051", "Server address");
|
||||
|
||||
using grpc::Channel;
|
||||
using grpc::ClientContext;
|
||||
using grpc::Status;
|
||||
using grpc::health::v1::Health;
|
||||
using grpc::health::v1::HealthCheckRequest;
|
||||
using grpc::health::v1::HealthCheckResponse;
|
||||
using helloworld::Greeter;
|
||||
using helloworld::HelloReply;
|
||||
using helloworld::HelloRequest;
|
||||
|
||||
class GreeterClient {
|
||||
public:
|
||||
GreeterClient(std::shared_ptr<Channel> channel)
|
||||
: stub_(Greeter::NewStub(channel)),
|
||||
health_stub_(Health::NewStub(channel)) {}
|
||||
|
||||
// Assembles the client's payload, sends it and presents the response back
|
||||
// from the server.
|
||||
std::string SayHello(const std::string& user) {
|
||||
// Data we are sending to the server.
|
||||
HelloRequest request;
|
||||
request.set_name(user);
|
||||
|
||||
// Container for the data we expect from the server.
|
||||
HelloReply reply;
|
||||
|
||||
// Context for the client. It could be used to convey extra information to
|
||||
// the server and/or tweak certain RPC behaviors.
|
||||
ClientContext context;
|
||||
|
||||
// The actual RPC.
|
||||
std::mutex mu;
|
||||
std::condition_variable cv;
|
||||
bool done = false;
|
||||
Status status;
|
||||
stub_->async()->SayHello(&context, &request, &reply,
|
||||
[&mu, &cv, &done, &status](Status s) {
|
||||
status = std::move(s);
|
||||
std::lock_guard<std::mutex> lock(mu);
|
||||
done = true;
|
||||
cv.notify_one();
|
||||
});
|
||||
|
||||
std::unique_lock<std::mutex> lock(mu);
|
||||
while (!done) {
|
||||
cv.wait(lock);
|
||||
}
|
||||
|
||||
// Act upon its status.
|
||||
if (status.ok()) {
|
||||
return reply.message();
|
||||
} else {
|
||||
std::cout << status.error_code() << ": " << status.error_message()
|
||||
<< std::endl;
|
||||
return "RPC failed";
|
||||
}
|
||||
}
|
||||
|
||||
void CheckHealth(const std::string& message) {
|
||||
ClientContext context;
|
||||
HealthCheckResponse response;
|
||||
Status status = health_stub_->Check(
|
||||
&context, HealthCheckRequest::default_instance(), &response);
|
||||
if (!status.ok()) {
|
||||
std::cerr << "Failed to check service health: " << status.error_code()
|
||||
<< ": " << status.error_message() << "\n";
|
||||
return;
|
||||
}
|
||||
std::cout << message << ": " << response.DebugString();
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<Greeter::Stub> stub_;
|
||||
std::unique_ptr<Health::Stub> health_stub_;
|
||||
};
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
absl::ParseCommandLine(argc, argv);
|
||||
// Instantiate the client. It requires a channel, out of which the actual RPCs
|
||||
// are created. This channel models a connection to an endpoint specified by
|
||||
// the argument "--target=" which is the only expected argument.
|
||||
std::string target_str = absl::GetFlag(FLAGS_target);
|
||||
// We indicate that the channel isn't authenticated (use of
|
||||
// InsecureChannelCredentials()).
|
||||
grpc::ChannelArguments args;
|
||||
args.SetServiceConfigJSON(
|
||||
"{\"healthCheckConfig\": "
|
||||
"{\"serviceName\": \"\"}}");
|
||||
GreeterClient greeter(grpc::CreateCustomChannel(
|
||||
target_str, grpc::InsecureChannelCredentials(), args));
|
||||
std::string user = "world";
|
||||
greeter.CheckHealth("Before call");
|
||||
std::string reply = greeter.SayHello(user);
|
||||
std::cout << "Greeter received: " << reply << std::endl;
|
||||
greeter.CheckHealth("After call");
|
||||
reply = greeter.SayHello(user);
|
||||
std::cout << "Greeter received: " << reply << std::endl;
|
||||
greeter.CheckHealth("After second call");
|
||||
return 0;
|
||||
}
|
||||