Go to the documentation of this file.
22 #include <sys/types.h>
39 #define TSI_FAKE_FRAME_HEADER_SIZE 4
56 int remaining =
slices->length;
57 while (remaining > 0) {
66 remaining -= next_frame_size;
94 return "fake:intercept-endpoint";
98 return "fake:intercept-endpoint";
121 m->wrapped_ep = wrapped_ep;
127 size_t slice_size,
grpc_slice* leftover_slices,
size_t leftover_nslices,
128 bool use_zero_copy_protector) {
135 use_zero_copy_protector
139 use_zero_copy_protector
148 a[0].value.integer =
static_cast<int>(slice_size);
160 if (use_zero_copy_protector && leftover_nslices == 0) {
165 if (leftover_nslices == 0) {
167 fake_read_zero_copy_protector,
168 tcp.client,
nullptr, &
args, 0);
172 size_t still_pending_size;
173 size_t total_buffer_size = 8192;
178 for (
i = 0;
i < leftover_nslices;
i++) {
182 while (message_size > 0) {
183 size_t protected_buffer_size_to_send =
buffer_size;
184 size_t processed_message_size = message_size;
186 fake_write_protector, message_bytes, &processed_message_size,
cur,
187 &protected_buffer_size_to_send);
189 message_bytes += processed_message_size;
190 message_size -= processed_message_size;
191 cur += protected_buffer_size_to_send;
198 size_t protected_buffer_size_to_send =
buffer_size;
200 &protected_buffer_size_to_send,
201 &still_pending_size);
203 cur += protected_buffer_size_to_send;
206 }
while (still_pending_size > 0);
208 reinterpret_cast<const char*
>(encrypted_buffer),
211 fake_read_protector, fake_read_zero_copy_protector,
tcp.client,
212 &encrypted_leftover, &
args, 1);
218 fake_write_zero_copy_protector,
219 tcp.server,
nullptr, &
args, 0);
257 {
"secure_ep/tcp_socketpair",
259 {
"secure_ep/tcp_socketpair_zero_copy",
262 {
"secure_ep/tcp_socketpair_leftover",
264 {
"secure_ep/tcp_socketpair_leftover_zero_copy",
270 ++*
static_cast<int*
>(
arg);
310 int main(
int argc,
char** argv) {
324 grpc_schedule_on_exec_ctx);
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
GPRAPI void grpc_slice_unref(grpc_slice s)
size_t grpc_pollset_size(void)
GPRAPI void grpc_slice_buffer_destroy(grpc_slice_buffer *sb)
static uv_pipe_t incoming[4]
static int me_get_fd(grpc_endpoint *)
grpc_endpoint * wrapped_ep
struct grpc_resource_quota grpc_resource_quota
GPRAPI grpc_slice grpc_slice_from_copied_string(const char *source)
void grpc_endpoint_tests(grpc_endpoint_test_config config, grpc_pollset *pollset, gpr_mu *mu)
static const grpc_endpoint_vtable vtable
grpc_slice_buffer staging_buffer
#define GRPC_ARG_RESOURCE_QUOTA
static void inc_call_ctr(void *arg, grpc_error_handle)
struct grpc_pollset_set grpc_pollset_set
GPRAPI void gpr_free(void *ptr)
void grpc_endpoint_read(grpc_endpoint *ep, grpc_slice_buffer *slices, grpc_closure *cb, bool urgent, int min_progress_size)
static void me_read(grpc_endpoint *ep, grpc_slice_buffer *slices, grpc_closure *cb, bool urgent, int min_progress_size)
GPRAPI void * gpr_malloc(size_t size)
GRPCAPI grpc_resource_quota * grpc_resource_quota_create(const char *trace_name)
int main(int argc, char **argv)
static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair_noleftover_zero_copy(size_t slice_size)
static void clean_up(void)
static void me_add_to_pollset_set(grpc_endpoint *, grpc_pollset_set *)
tsi_result tsi_frame_protector_protect_flush(tsi_frame_protector *self, unsigned char *protected_output_frames, size_t *protected_output_frames_size, size_t *still_pending_size)
void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu)
GPRAPI void * gpr_zalloc(size_t size)
static void destroy_pollset(void *p, grpc_error_handle)
const GRPCAPI grpc_arg_pointer_vtable * grpc_resource_quota_arg_vtable(void)
struct intercept_endpoint intercept_endpoint
grpc_endpoint * grpc_secure_endpoint_create(struct tsi_frame_protector *protector, struct tsi_zero_copy_grpc_protector *zero_copy_protector, grpc_endpoint *to_wrap, grpc_slice *leftover_slices, const grpc_channel_args *channel_args, size_t leftover_nslices)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
static void me_delete_from_pollset_set(grpc_endpoint *, grpc_pollset_set *)
#define GRPC_SLICE_START_PTR(slice)
GPRAPI void grpc_slice_buffer_swap(grpc_slice_buffer *a, grpc_slice_buffer *b)
void grpc_endpoint_shutdown(grpc_endpoint *ep, grpc_error_handle why)
void grpc_endpoint_destroy(grpc_endpoint *ep)
static absl::string_view me_get_peer(grpc_endpoint *)
GPRAPI void grpc_slice_buffer_init(grpc_slice_buffer *sb)
static grpc_endpoint_test_config configs[]
static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair(size_t slice_size, grpc_slice *leftover_slices, size_t leftover_nslices, bool use_zero_copy_protector)
static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair_leftover_zero_copy(size_t slice_size)
static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair_noleftover(size_t slice_size)
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
#define GRPC_SLICE_LENGTH(slice)
static void me_destroy(grpc_endpoint *ep)
#define GPR_ARRAY_SIZE(array)
GPRAPI grpc_slice grpc_slice_from_copied_buffer(const char *source, size_t len)
static absl::string_view me_get_local_address(grpc_endpoint *)
tsi_zero_copy_grpc_protector * tsi_create_fake_zero_copy_grpc_protector(size_t *max_protected_frame_size)
grpc_core::ExecCtx exec_ctx
static void test_leftover(grpc_endpoint_test_config config, size_t slice_size)
void grpc_pollset_shutdown(grpc_pollset *pollset, grpc_closure *closure)
tsi_result tsi_frame_protector_protect(tsi_frame_protector *self, const unsigned char *unprotected_bytes, size_t *unprotected_bytes_size, unsigned char *protected_output_frames, size_t *protected_output_frames_size)
GRPCAPI void grpc_resource_quota_unref(grpc_resource_quota *resource_quota)
static void me_shutdown(grpc_endpoint *ep, grpc_error_handle why)
grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char *name, grpc_channel_args *args)
tsi_frame_protector * tsi_create_fake_frame_protector(size_t *max_protected_frame_size)
GPRAPI void grpc_slice_buffer_move_first(grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)
grpc_endpoint * wrap_with_intercept_endpoint(grpc_endpoint *wrapped_ep)
static void me_add_to_pollset(grpc_endpoint *, grpc_pollset *)
uint32_t tsi_fake_zero_copy_grpc_protector_next_frame_size(const grpc_slice_buffer *protected_slices)
static grpc_endpoint_test_fixture secure_endpoint_create_fixture_tcp_socketpair_leftover(size_t slice_size)
void grpc_slice_buffer_destroy_internal(grpc_slice_buffer *sb)
void grpc_endpoint_write(grpc_endpoint *ep, grpc_slice_buffer *slices, grpc_closure *cb, void *arg, int max_frame_size)
#define TSI_FAKE_FRAME_HEADER_SIZE
GRPCAPI void grpc_init(void)
#define GRPC_ARG_TCP_READ_CHUNK_SIZE
void grpc_endpoint_add_to_pollset(grpc_endpoint *ep, grpc_pollset *pollset)
void grpc_pollset_destroy(grpc_pollset *pollset)
GPRAPI int grpc_slice_eq(grpc_slice a, grpc_slice b)
GRPCAPI void grpc_shutdown(void)
static bool me_can_track_err(grpc_endpoint *)
OPENSSL_EXPORT pem_password_cb * cb
void grpc_slice_unref_internal(const grpc_slice &slice)
static grpc_pollset * g_pollset
static void me_write(grpc_endpoint *ep, grpc_slice_buffer *slices, grpc_closure *cb, void *arg, int max_frame_size)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:15