credentials.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
22 
23 #include <stdint.h>
24 #include <string.h>
25 
26 #include <grpc/support/log.h>
27 
33 
34 /* -- Common. -- */
35 
37  GRPC_API_TRACE("grpc_channel_credentials_release(creds=%p)", 1, (creds));
39  if (creds) creds->Unref();
40 }
41 
43  GRPC_API_TRACE("grpc_call_credentials_release(creds=%p)", 1, (creds));
45  if (creds) creds->Unref();
46 }
47 
48 static void credentials_pointer_arg_destroy(void* p) {
49  static_cast<grpc_channel_credentials*>(p)->Unref();
50 }
51 
52 static void* credentials_pointer_arg_copy(void* p) {
53  return static_cast<grpc_channel_credentials*>(p)->Ref().release();
54 }
55 
56 static int credentials_pointer_cmp(void* a, void* b) {
57  return static_cast<const grpc_channel_credentials*>(a)->cmp(
58  static_cast<const grpc_channel_credentials*>(b));
59 }
60 
64 
66  grpc_channel_credentials* credentials) {
68  const_cast<char*>(GRPC_ARG_CHANNEL_CREDENTIALS), credentials,
70 }
71 
73  const grpc_arg* arg) {
74  if (strcmp(arg->key, GRPC_ARG_CHANNEL_CREDENTIALS) != 0) return nullptr;
75  if (arg->type != GRPC_ARG_POINTER) {
76  gpr_log(GPR_ERROR, "Invalid type %d for arg %s", arg->type,
78  return nullptr;
79  }
80  return static_cast<grpc_channel_credentials*>(arg->value.pointer.p);
81 }
82 
84  const grpc_channel_args* args) {
85  size_t i;
86  if (args == nullptr) return nullptr;
87  for (i = 0; i < args->num_args; i++) {
88  grpc_channel_credentials* credentials =
90  if (credentials != nullptr) return credentials;
91  }
92  return nullptr;
93 }
94 
96  GRPC_API_TRACE("grpc_server_credentials_release(creds=%p)", 1, (creds));
98  if (creds) creds->Unref();
99 }
100 
102  const grpc_auth_metadata_processor& processor) {
104  "grpc_server_credentials_set_auth_metadata_processor("
105  "creds=%p, "
106  "processor=grpc_auth_metadata_processor { process: %p, state: %p })",
107  3, (this, (void*)(intptr_t)processor.process, processor.state));
109  processor_ = processor;
110 }
111 
114  GPR_DEBUG_ASSERT(creds != nullptr);
115  creds->set_auth_metadata_processor(processor);
116 }
117 
119  static_cast<grpc_server_credentials*>(p)->Unref();
120 }
121 
123  return static_cast<grpc_server_credentials*>(p)->Ref().release();
124 }
125 
126 static int server_credentials_pointer_cmp(void* a, void* b) {
127  return grpc_core::QsortCompare(a, b);
128 }
129 
133 
136  const_cast<char*>(GRPC_SERVER_CREDENTIALS_ARG), c, &cred_ptr_vtable);
137 }
138 
140  if (strcmp(arg->key, GRPC_SERVER_CREDENTIALS_ARG) != 0) return nullptr;
141  if (arg->type != GRPC_ARG_POINTER) {
142  gpr_log(GPR_ERROR, "Invalid type %d for arg %s", arg->type,
144  return nullptr;
145  }
146  return static_cast<grpc_server_credentials*>(arg->value.pointer.p);
147 }
148 
150  const grpc_channel_args* args) {
151  size_t i;
152  if (args == nullptr) return nullptr;
153  for (i = 0; i < args->num_args; i++) {
156  if (p != nullptr) return p;
157  }
158  return nullptr;
159 }
grpc_arg
Definition: grpc_types.h:103
trace.h
credentials_pointer_arg_destroy
static void credentials_pointer_arg_destroy(void *p)
Definition: credentials.cc:48
credentials_pointer_vtable
static const grpc_arg_pointer_vtable credentials_pointer_vtable
Definition: credentials.cc:61
log.h
cred_ptr_vtable
static const grpc_arg_pointer_vtable cred_ptr_vtable
Definition: credentials.cc:130
server_credentials_pointer_arg_copy
static void * server_credentials_pointer_arg_copy(void *p)
Definition: credentials.cc:122
GPR_DEBUG_ASSERT
#define GPR_DEBUG_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:103
grpc_server_credentials_set_auth_metadata_processor
void grpc_server_credentials_set_auth_metadata_processor(grpc_server_credentials *creds, grpc_auth_metadata_processor processor)
Definition: credentials.cc:112
string.h
useful.h
grpc_server_credentials::processor_
grpc_auth_metadata_processor processor_
Definition: src/core/lib/security/credentials/credentials.h:283
grpc_channel_credentials_from_arg
grpc_channel_credentials * grpc_channel_credentials_from_arg(const grpc_arg *arg)
Definition: credentials.cc:72
arg::value
void * value
Definition: cmdline.cc:44
grpc_call_credentials
Definition: src/core/lib/security/credentials/credentials.h:189
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
xds_manager.p
p
Definition: xds_manager.py:60
server_credentials_pointer_arg_destroy
static void server_credentials_pointer_arg_destroy(void *p)
Definition: credentials.cc:118
credentials_pointer_arg_copy
static void * credentials_pointer_arg_copy(void *p)
Definition: credentials.cc:52
credentials.h
grpc_arg_pointer_vtable
Definition: grpc_types.h:85
grpc_channel_args
Definition: grpc_types.h:132
grpc_core::RefCounted::Unref
void Unref()
Definition: ref_counted.h:302
c
void c(T a)
Definition: miscompile_with_no_unique_address_test.cc:40
arg::type
argtype type
Definition: cmdline.cc:43
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc_channel_credentials_release
void grpc_channel_credentials_release(grpc_channel_credentials *creds)
Definition: credentials.cc:36
grpc_auth_metadata_processor::process
void(* process)(void *state, grpc_auth_context *context, const grpc_metadata *md, size_t num_md, grpc_process_auth_metadata_done_cb cb, void *user_data)
Definition: grpc_security.h:596
gpr_log
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
grpc_channel_credentials_find_in_args
grpc_channel_credentials * grpc_channel_credentials_find_in_args(const grpc_channel_args *args)
Definition: credentials.cc:83
arg
Definition: cmdline.cc:40
grpc_server_credentials::set_auth_metadata_processor
void set_auth_metadata_processor(const grpc_auth_metadata_processor &processor)
Definition: credentials.cc:101
intptr_t
_W64 signed int intptr_t
Definition: stdint-msvc2008.h:118
grpc_server_credentials_to_arg
grpc_arg grpc_server_credentials_to_arg(grpc_server_credentials *c)
Definition: credentials.cc:134
GPR_ERROR
#define GPR_ERROR
Definition: include/grpc/impl/codegen/log.h:57
tests.google.protobuf.internal.message_test.cmp
cmp
Definition: bloaty/third_party/protobuf/python/compatibility_tests/v2.5.0/tests/google/protobuf/internal/message_test.py:61
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
grpc_core::ExecCtx
Definition: exec_ctx.h:97
stdint.h
grpc_server_credentials::DestroyProcessor
void DestroyProcessor()
Definition: src/core/lib/security/credentials/credentials.h:277
grpc_server_credentials
Definition: src/core/lib/security/credentials/credentials.h:259
server_credentials_pointer_cmp
static int server_credentials_pointer_cmp(void *a, void *b)
Definition: credentials.cc:126
grpc_find_server_credentials_in_args
grpc_server_credentials * grpc_find_server_credentials_in_args(const grpc_channel_args *args)
Definition: credentials.cc:149
grpc_core::QsortCompare
int QsortCompare(const T &a, const T &b)
Definition: useful.h:95
exec_ctx
grpc_core::ExecCtx exec_ctx
Definition: end2end_binder_transport_test.cc:75
credentials_pointer_cmp
static int credentials_pointer_cmp(void *a, void *b)
Definition: credentials.cc:56
grpc_call_credentials_release
void grpc_call_credentials_release(grpc_call_credentials *creds)
Definition: credentials.cc:42
grpc_auth_metadata_processor
Definition: grpc_security.h:591
exec_ctx.h
channel_args.h
api_trace.h
grpc_server_credentials_release
void grpc_server_credentials_release(grpc_server_credentials *creds)
Definition: credentials.cc:95
grpc_channel_credentials_to_arg
grpc_arg grpc_channel_credentials_to_arg(grpc_channel_credentials *credentials)
Definition: credentials.cc:65
GRPC_SERVER_CREDENTIALS_ARG
#define GRPC_SERVER_CREDENTIALS_ARG
Definition: src/core/lib/security/credentials/credentials.h:287
GRPC_ARG_CHANNEL_CREDENTIALS
#define GRPC_ARG_CHANNEL_CREDENTIALS
Definition: src/core/lib/security/credentials/credentials.h:91
GRPC_ARG_POINTER
@ GRPC_ARG_POINTER
Definition: grpc_types.h:82
grpc_server_credentials_from_arg
grpc_server_credentials * grpc_server_credentials_from_arg(const grpc_arg *arg)
Definition: credentials.cc:139
testing::Ref
internal::RefMatcher< T & > Ref(T &x)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:8628
grpc_channel_arg_pointer_create
grpc_arg grpc_channel_arg_pointer_create(char *name, void *value, const grpc_arg_pointer_vtable *vtable)
Definition: channel_args.cc:492
grpc_channel_credentials
Definition: src/core/lib/security/credentials/credentials.h:96
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
GRPC_API_TRACE
#define GRPC_API_TRACE(fmt, nargs, args)
Definition: api_trace.h:48
grpc_auth_metadata_processor::state
void * state
Definition: grpc_security.h:600
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:06