Go to the documentation of this file.
22 #ifdef GRPC_POSIX_SOCKET_TCP
24 #include <arpa/inet.h>
27 #include <sys/socket.h>
35 #include "absl/strings/str_cat.h"
47 #define SSL_CERT_PATH "src/core/tsi/test_creds/server1.pem"
48 #define SSL_KEY_PATH "src/core/tsi/test_creds/server1.key"
49 #define SSL_CA_PATH "src/core/tsi/test_creds/ca.pem"
52 static gpr_event client_handshake_complete;
55 const int port = *
static_cast<int*
>(
arg);
73 ca_cert, &pem_key_cert_pair, 1, 0,
nullptr);
90 while (!
gpr_event_get(&client_handshake_complete) && retries-- > 0) {
137 const char* ca_cert =
144 ca_cert, &pem_key_cert_pair, verify_options,
nullptr);
158 {
const_cast<char*
>(
"foo.test.google.fr")}};
161 grpc_args.
args = &ssl_name_override;
201 gpr_event_set(&client_handshake_complete, &client_handshake_complete);
210 static int callback_return_value = 0;
211 static char callback_target_host[4096];
212 static char callback_target_pem[4096];
213 static void* callback_userdata =
nullptr;
214 static void* destruct_userdata =
nullptr;
216 static int verify_callback(
const char* target_host,
const char* target_pem,
218 if (target_host !=
nullptr) {
219 snprintf(callback_target_host,
sizeof(callback_target_host),
"%s",
222 callback_target_host[0] =
'\0';
224 if (target_pem !=
nullptr) {
225 snprintf(callback_target_pem,
sizeof(callback_target_pem),
"%s",
228 callback_target_pem[0] =
'\0';
230 callback_userdata = userdata;
231 return callback_return_value;
234 static void verify_destruct(
void* userdata) { destruct_userdata = userdata; }
236 int main(
int argc,
char* argv[]) {
247 const char* server_cert =
254 GPR_ASSERT(verify_peer_options_test(&verify_options));
255 GPR_ASSERT(strlen(callback_target_host) == 0);
264 GPR_ASSERT(verify_peer_options_test(&verify_options));
265 GPR_ASSERT(strcmp(callback_target_host,
"foo.test.google.fr") == 0);
266 GPR_ASSERT(strcmp(callback_target_pem, server_cert) == 0);
267 GPR_ASSERT(callback_userdata ==
static_cast<void*
>(&userdata));
268 GPR_ASSERT(destruct_userdata ==
static_cast<void*
>(&userdata));
271 callback_return_value = 1;
272 GPR_ASSERT(!verify_peer_options_test(&verify_options));
282 int main(
int argc,
char** argv) {
return 1; }
GPRAPI void grpc_slice_unref(grpc_slice s)
void * verify_peer_callback_userdata
gpr_timespec grpc_timeout_seconds_to_deadline(int64_t time_s)
grpc_error_handle grpc_load_file(const char *filename, int add_null_terminator, grpc_slice *output)
GPRAPI void * gpr_event_get(gpr_event *ev)
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
void server_thread(void *vargs)
GRPCAPI grpc_connectivity_state grpc_channel_check_connectivity_state(grpc_channel *channel, int try_to_connect)
GPRAPI void gpr_event_set(gpr_event *ev, void *value)
int main(int argc, char **argv)
GRPCAPI grpc_server * grpc_server_create(const grpc_channel_args *args, void *reserved)
GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)
#define GRPC_LOG_IF_ERROR(what, error)
GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const verify_peer_options *verify_options, void *reserved)
wrapped_grpc_channel * channel
#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth, void *reserved)
GRPCAPI void grpc_server_credentials_release(grpc_server_credentials *creds)
GRPCAPI int grpc_server_add_http2_port(grpc_server *server, const char *addr, grpc_server_credentials *creds)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
#define GRPC_SLICE_START_PTR(slice)
struct grpc_server grpc_server
GPRAPI void gpr_event_init(gpr_event *ev)
GRPCAPI void grpc_server_destroy(grpc_server *server)
int grpc_pick_unused_port_or_die(void)
GRPCAPI void grpc_server_cancel_all_calls(grpc_server *server)
GRPCAPI void grpc_channel_credentials_release(grpc_channel_credentials *creds)
GRPCAPI grpc_channel * grpc_channel_create(const char *target, grpc_channel_credentials *creds, const grpc_channel_args *args)
int(* verify_peer_callback)(const char *target_name, const char *peer_pem, void *userdata)
GRPCAPI void grpc_completion_queue_destroy(grpc_completion_queue *cq)
void(* verify_peer_destruct)(void *userdata)
GRPCAPI void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)
GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)
GRPCAPI void grpc_completion_queue_shutdown(grpc_completion_queue *cq)
GRPCAPI void grpc_channel_destroy(grpc_channel *channel)
struct grpc_channel grpc_channel
GRPCAPI void grpc_channel_watch_connectivity_state(grpc_channel *channel, grpc_connectivity_state last_observed_state, gpr_timespec deadline, grpc_completion_queue *cq, void *tag)
GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_next(void *reserved)
grpc_completion_type type
GRPCAPI void grpc_init(void)
GRPCAPI void grpc_server_start(grpc_server *server)
GRPCAPI void grpc_shutdown(void)
static grpc_completion_queue * cq
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:52