grpc 1.7.3 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- data/src/core/lib/transport/pid_controller.c +0 -63
data/src/core/lib/http/httpcli.h
CHANGED
@@ -32,19 +32,23 @@
|
|
32
32
|
/* User agent this library reports */
|
33
33
|
#define GRPC_HTTPCLI_USER_AGENT "grpc-httpcli/0.0"
|
34
34
|
|
35
|
+
#ifdef __cplusplus
|
36
|
+
extern "C" {
|
37
|
+
#endif
|
38
|
+
|
35
39
|
/* Tracks in-progress http requests
|
36
40
|
TODO(ctiller): allow caching and capturing multiple requests for the
|
37
41
|
same content and combining them */
|
38
42
|
typedef struct grpc_httpcli_context {
|
39
|
-
grpc_pollset_set
|
43
|
+
grpc_pollset_set* pollset_set;
|
40
44
|
} grpc_httpcli_context;
|
41
45
|
|
42
46
|
typedef struct {
|
43
|
-
const char
|
44
|
-
void (*handshake)(grpc_exec_ctx
|
45
|
-
const char
|
46
|
-
void (*on_done)(grpc_exec_ctx
|
47
|
-
grpc_endpoint
|
47
|
+
const char* default_port;
|
48
|
+
void (*handshake)(grpc_exec_ctx* exec_ctx, void* arg, grpc_endpoint* endpoint,
|
49
|
+
const char* host, grpc_millis deadline,
|
50
|
+
void (*on_done)(grpc_exec_ctx* exec_ctx, void* arg,
|
51
|
+
grpc_endpoint* endpoint));
|
48
52
|
} grpc_httpcli_handshaker;
|
49
53
|
|
50
54
|
extern const grpc_httpcli_handshaker grpc_httpcli_plaintext;
|
@@ -53,23 +57,23 @@ extern const grpc_httpcli_handshaker grpc_httpcli_ssl;
|
|
53
57
|
/* A request */
|
54
58
|
typedef struct grpc_httpcli_request {
|
55
59
|
/* The host name to connect to */
|
56
|
-
char
|
60
|
+
char* host;
|
57
61
|
/* The host to verify in the SSL handshake (or NULL) */
|
58
|
-
char
|
62
|
+
char* ssl_host_override;
|
59
63
|
/* The main part of the request
|
60
64
|
The following headers are supplied automatically and MUST NOT be set here:
|
61
65
|
Host, Connection, User-Agent */
|
62
66
|
grpc_http_request http;
|
63
67
|
/* handshaker to use ssl for the request */
|
64
|
-
const grpc_httpcli_handshaker
|
68
|
+
const grpc_httpcli_handshaker* handshaker;
|
65
69
|
} grpc_httpcli_request;
|
66
70
|
|
67
71
|
/* Expose the parser response type as a httpcli response too */
|
68
72
|
typedef struct grpc_http_response grpc_httpcli_response;
|
69
73
|
|
70
|
-
void grpc_httpcli_context_init(grpc_httpcli_context
|
71
|
-
void grpc_httpcli_context_destroy(grpc_exec_ctx
|
72
|
-
grpc_httpcli_context
|
74
|
+
void grpc_httpcli_context_init(grpc_httpcli_context* context);
|
75
|
+
void grpc_httpcli_context_destroy(grpc_exec_ctx* exec_ctx,
|
76
|
+
grpc_httpcli_context* context);
|
73
77
|
|
74
78
|
/* Asynchronously perform a HTTP GET.
|
75
79
|
'context' specifies the http context under which to do the get
|
@@ -80,12 +84,12 @@ void grpc_httpcli_context_destroy(grpc_exec_ctx *exec_ctx,
|
|
80
84
|
destroyed once the call returns
|
81
85
|
'deadline' contains a deadline for the request (or gpr_inf_future)
|
82
86
|
'on_response' is a callback to report results to */
|
83
|
-
void grpc_httpcli_get(grpc_exec_ctx
|
84
|
-
grpc_polling_entity
|
85
|
-
grpc_resource_quota
|
86
|
-
const grpc_httpcli_request
|
87
|
-
|
88
|
-
grpc_httpcli_response
|
87
|
+
void grpc_httpcli_get(grpc_exec_ctx* exec_ctx, grpc_httpcli_context* context,
|
88
|
+
grpc_polling_entity* pollent,
|
89
|
+
grpc_resource_quota* resource_quota,
|
90
|
+
const grpc_httpcli_request* request, grpc_millis deadline,
|
91
|
+
grpc_closure* on_complete,
|
92
|
+
grpc_httpcli_response* response);
|
89
93
|
|
90
94
|
/* Asynchronously perform a HTTP POST.
|
91
95
|
'context' specifies the http context under which to do the post
|
@@ -101,26 +105,30 @@ void grpc_httpcli_get(grpc_exec_ctx *exec_ctx, grpc_httpcli_context *context,
|
|
101
105
|
lifetime of the request
|
102
106
|
'on_response' is a callback to report results to
|
103
107
|
Does not support ?var1=val1&var2=val2 in the path. */
|
104
|
-
void grpc_httpcli_post(grpc_exec_ctx
|
105
|
-
grpc_polling_entity
|
106
|
-
grpc_resource_quota
|
107
|
-
const grpc_httpcli_request
|
108
|
-
const char
|
109
|
-
|
110
|
-
grpc_httpcli_response
|
108
|
+
void grpc_httpcli_post(grpc_exec_ctx* exec_ctx, grpc_httpcli_context* context,
|
109
|
+
grpc_polling_entity* pollent,
|
110
|
+
grpc_resource_quota* resource_quota,
|
111
|
+
const grpc_httpcli_request* request,
|
112
|
+
const char* body_bytes, size_t body_size,
|
113
|
+
grpc_millis deadline, grpc_closure* on_complete,
|
114
|
+
grpc_httpcli_response* response);
|
111
115
|
|
112
116
|
/* override functions return 1 if they handled the request, 0 otherwise */
|
113
|
-
typedef int (*grpc_httpcli_get_override)(grpc_exec_ctx
|
114
|
-
const grpc_httpcli_request
|
115
|
-
|
116
|
-
grpc_closure
|
117
|
-
grpc_httpcli_response
|
117
|
+
typedef int (*grpc_httpcli_get_override)(grpc_exec_ctx* exec_ctx,
|
118
|
+
const grpc_httpcli_request* request,
|
119
|
+
grpc_millis deadline,
|
120
|
+
grpc_closure* on_complete,
|
121
|
+
grpc_httpcli_response* response);
|
118
122
|
typedef int (*grpc_httpcli_post_override)(
|
119
|
-
grpc_exec_ctx
|
120
|
-
const char
|
121
|
-
grpc_closure
|
123
|
+
grpc_exec_ctx* exec_ctx, const grpc_httpcli_request* request,
|
124
|
+
const char* body_bytes, size_t body_size, grpc_millis deadline,
|
125
|
+
grpc_closure* on_complete, grpc_httpcli_response* response);
|
122
126
|
|
123
127
|
void grpc_httpcli_set_override(grpc_httpcli_get_override get,
|
124
128
|
grpc_httpcli_post_override post);
|
125
129
|
|
130
|
+
#ifdef __cplusplus
|
131
|
+
}
|
132
|
+
#endif
|
133
|
+
|
126
134
|
#endif /* GRPC_CORE_LIB_HTTP_HTTPCLI_H */
|
@@ -34,29 +34,29 @@
|
|
34
34
|
|
35
35
|
typedef struct {
|
36
36
|
grpc_channel_security_connector base;
|
37
|
-
tsi_ssl_client_handshaker_factory
|
38
|
-
char
|
37
|
+
tsi_ssl_client_handshaker_factory* handshaker_factory;
|
38
|
+
char* secure_peer_name;
|
39
39
|
} grpc_httpcli_ssl_channel_security_connector;
|
40
40
|
|
41
|
-
static void httpcli_ssl_destroy(grpc_exec_ctx
|
42
|
-
grpc_security_connector
|
43
|
-
grpc_httpcli_ssl_channel_security_connector
|
44
|
-
(grpc_httpcli_ssl_channel_security_connector
|
45
|
-
if (c->handshaker_factory !=
|
41
|
+
static void httpcli_ssl_destroy(grpc_exec_ctx* exec_ctx,
|
42
|
+
grpc_security_connector* sc) {
|
43
|
+
grpc_httpcli_ssl_channel_security_connector* c =
|
44
|
+
(grpc_httpcli_ssl_channel_security_connector*)sc;
|
45
|
+
if (c->handshaker_factory != nullptr) {
|
46
46
|
tsi_ssl_client_handshaker_factory_unref(c->handshaker_factory);
|
47
|
-
c->handshaker_factory =
|
47
|
+
c->handshaker_factory = nullptr;
|
48
48
|
}
|
49
|
-
if (c->secure_peer_name !=
|
49
|
+
if (c->secure_peer_name != nullptr) gpr_free(c->secure_peer_name);
|
50
50
|
gpr_free(sc);
|
51
51
|
}
|
52
52
|
|
53
|
-
static void httpcli_ssl_add_handshakers(grpc_exec_ctx
|
54
|
-
grpc_channel_security_connector
|
55
|
-
grpc_handshake_manager
|
56
|
-
grpc_httpcli_ssl_channel_security_connector
|
57
|
-
(grpc_httpcli_ssl_channel_security_connector
|
58
|
-
tsi_handshaker
|
59
|
-
if (c->handshaker_factory !=
|
53
|
+
static void httpcli_ssl_add_handshakers(grpc_exec_ctx* exec_ctx,
|
54
|
+
grpc_channel_security_connector* sc,
|
55
|
+
grpc_handshake_manager* handshake_mgr) {
|
56
|
+
grpc_httpcli_ssl_channel_security_connector* c =
|
57
|
+
(grpc_httpcli_ssl_channel_security_connector*)sc;
|
58
|
+
tsi_handshaker* handshaker = nullptr;
|
59
|
+
if (c->handshaker_factory != nullptr) {
|
60
60
|
tsi_result result = tsi_ssl_client_handshaker_factory_create_handshaker(
|
61
61
|
c->handshaker_factory, c->secure_peer_name, &handshaker);
|
62
62
|
if (result != TSI_OK) {
|
@@ -70,18 +70,18 @@ static void httpcli_ssl_add_handshakers(grpc_exec_ctx *exec_ctx,
|
|
70
70
|
exec_ctx, tsi_create_adapter_handshaker(handshaker), &sc->base));
|
71
71
|
}
|
72
72
|
|
73
|
-
static void httpcli_ssl_check_peer(grpc_exec_ctx
|
74
|
-
grpc_security_connector
|
75
|
-
grpc_auth_context
|
76
|
-
grpc_closure
|
77
|
-
grpc_httpcli_ssl_channel_security_connector
|
78
|
-
(grpc_httpcli_ssl_channel_security_connector
|
79
|
-
grpc_error
|
73
|
+
static void httpcli_ssl_check_peer(grpc_exec_ctx* exec_ctx,
|
74
|
+
grpc_security_connector* sc, tsi_peer peer,
|
75
|
+
grpc_auth_context** auth_context,
|
76
|
+
grpc_closure* on_peer_checked) {
|
77
|
+
grpc_httpcli_ssl_channel_security_connector* c =
|
78
|
+
(grpc_httpcli_ssl_channel_security_connector*)sc;
|
79
|
+
grpc_error* error = GRPC_ERROR_NONE;
|
80
80
|
|
81
81
|
/* Check the peer name. */
|
82
|
-
if (c->secure_peer_name !=
|
82
|
+
if (c->secure_peer_name != nullptr &&
|
83
83
|
!tsi_ssl_peer_matches_name(&peer, c->secure_peer_name)) {
|
84
|
-
char
|
84
|
+
char* msg;
|
85
85
|
gpr_asprintf(&msg, "Peer name %s is not in peer certificate",
|
86
86
|
c->secure_peer_name);
|
87
87
|
error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg);
|
@@ -91,37 +91,51 @@ static void httpcli_ssl_check_peer(grpc_exec_ctx *exec_ctx,
|
|
91
91
|
tsi_peer_destruct(&peer);
|
92
92
|
}
|
93
93
|
|
94
|
+
static int httpcli_ssl_cmp(grpc_security_connector* sc1,
|
95
|
+
grpc_security_connector* sc2) {
|
96
|
+
grpc_httpcli_ssl_channel_security_connector* c1 =
|
97
|
+
(grpc_httpcli_ssl_channel_security_connector*)sc1;
|
98
|
+
grpc_httpcli_ssl_channel_security_connector* c2 =
|
99
|
+
(grpc_httpcli_ssl_channel_security_connector*)sc2;
|
100
|
+
return strcmp(c1->secure_peer_name, c2->secure_peer_name);
|
101
|
+
}
|
102
|
+
|
94
103
|
static grpc_security_connector_vtable httpcli_ssl_vtable = {
|
95
|
-
httpcli_ssl_destroy, httpcli_ssl_check_peer};
|
104
|
+
httpcli_ssl_destroy, httpcli_ssl_check_peer, httpcli_ssl_cmp};
|
96
105
|
|
97
106
|
static grpc_security_status httpcli_ssl_channel_security_connector_create(
|
98
|
-
grpc_exec_ctx
|
99
|
-
const char
|
107
|
+
grpc_exec_ctx* exec_ctx, const char* pem_root_certs,
|
108
|
+
const char* secure_peer_name, grpc_channel_security_connector** sc) {
|
100
109
|
tsi_result result = TSI_OK;
|
101
|
-
grpc_httpcli_ssl_channel_security_connector
|
110
|
+
grpc_httpcli_ssl_channel_security_connector* c;
|
102
111
|
|
103
|
-
if (secure_peer_name !=
|
112
|
+
if (secure_peer_name != nullptr && pem_root_certs == nullptr) {
|
104
113
|
gpr_log(GPR_ERROR,
|
105
114
|
"Cannot assert a secure peer name without a trust root.");
|
106
115
|
return GRPC_SECURITY_ERROR;
|
107
116
|
}
|
108
117
|
|
109
|
-
c =
|
118
|
+
c = (grpc_httpcli_ssl_channel_security_connector*)gpr_zalloc(
|
119
|
+
sizeof(grpc_httpcli_ssl_channel_security_connector));
|
110
120
|
|
111
121
|
gpr_ref_init(&c->base.base.refcount, 1);
|
112
122
|
c->base.base.vtable = &httpcli_ssl_vtable;
|
113
|
-
if (secure_peer_name !=
|
123
|
+
if (secure_peer_name != nullptr) {
|
114
124
|
c->secure_peer_name = gpr_strdup(secure_peer_name);
|
115
125
|
}
|
116
126
|
result = tsi_create_ssl_client_handshaker_factory(
|
117
|
-
|
127
|
+
nullptr, pem_root_certs, nullptr, nullptr, 0, &c->handshaker_factory);
|
118
128
|
if (result != TSI_OK) {
|
119
129
|
gpr_log(GPR_ERROR, "Handshaker factory creation failed with %s.",
|
120
130
|
tsi_result_to_string(result));
|
121
131
|
httpcli_ssl_destroy(exec_ctx, &c->base.base);
|
122
|
-
*sc =
|
132
|
+
*sc = nullptr;
|
123
133
|
return GRPC_SECURITY_ERROR;
|
124
134
|
}
|
135
|
+
// We don't actually need a channel credentials object in this case,
|
136
|
+
// but we set it to a non-NULL address so that we don't trigger
|
137
|
+
// assertions in grpc_channel_security_connector_cmp().
|
138
|
+
c->base.channel_creds = (grpc_channel_credentials*)1;
|
125
139
|
c->base.add_handshakers = httpcli_ssl_add_handshakers;
|
126
140
|
*sc = &c->base;
|
127
141
|
return GRPC_SECURITY_OK;
|
@@ -130,20 +144,20 @@ static grpc_security_status httpcli_ssl_channel_security_connector_create(
|
|
130
144
|
/* handshaker */
|
131
145
|
|
132
146
|
typedef struct {
|
133
|
-
void (*func)(grpc_exec_ctx
|
134
|
-
void
|
135
|
-
grpc_handshake_manager
|
147
|
+
void (*func)(grpc_exec_ctx* exec_ctx, void* arg, grpc_endpoint* endpoint);
|
148
|
+
void* arg;
|
149
|
+
grpc_handshake_manager* handshake_mgr;
|
136
150
|
} on_done_closure;
|
137
151
|
|
138
|
-
static void on_handshake_done(grpc_exec_ctx
|
139
|
-
grpc_error
|
140
|
-
grpc_handshaker_args
|
141
|
-
on_done_closure
|
152
|
+
static void on_handshake_done(grpc_exec_ctx* exec_ctx, void* arg,
|
153
|
+
grpc_error* error) {
|
154
|
+
grpc_handshaker_args* args = (grpc_handshaker_args*)arg;
|
155
|
+
on_done_closure* c = (on_done_closure*)args->user_data;
|
142
156
|
if (error != GRPC_ERROR_NONE) {
|
143
|
-
const char
|
157
|
+
const char* msg = grpc_error_string(error);
|
144
158
|
gpr_log(GPR_ERROR, "Secure transport setup failed: %s", msg);
|
145
159
|
|
146
|
-
c->func(exec_ctx, c->arg,
|
160
|
+
c->func(exec_ctx, c->arg, nullptr);
|
147
161
|
} else {
|
148
162
|
grpc_channel_args_destroy(exec_ctx, args->args);
|
149
163
|
grpc_slice_buffer_destroy_internal(exec_ctx, args->read_buffer);
|
@@ -154,22 +168,22 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg,
|
|
154
168
|
gpr_free(c);
|
155
169
|
}
|
156
170
|
|
157
|
-
static void ssl_handshake(grpc_exec_ctx
|
158
|
-
grpc_endpoint
|
159
|
-
|
160
|
-
void (*on_done)(grpc_exec_ctx
|
161
|
-
grpc_endpoint
|
162
|
-
on_done_closure
|
163
|
-
const char
|
164
|
-
if (pem_root_certs ==
|
171
|
+
static void ssl_handshake(grpc_exec_ctx* exec_ctx, void* arg,
|
172
|
+
grpc_endpoint* tcp, const char* host,
|
173
|
+
grpc_millis deadline,
|
174
|
+
void (*on_done)(grpc_exec_ctx* exec_ctx, void* arg,
|
175
|
+
grpc_endpoint* endpoint)) {
|
176
|
+
on_done_closure* c = (on_done_closure*)gpr_malloc(sizeof(*c));
|
177
|
+
const char* pem_root_certs = grpc_get_default_ssl_roots();
|
178
|
+
if (pem_root_certs == nullptr) {
|
165
179
|
gpr_log(GPR_ERROR, "Could not get default pem root certs.");
|
166
|
-
on_done(exec_ctx, arg,
|
180
|
+
on_done(exec_ctx, arg, nullptr);
|
167
181
|
gpr_free(c);
|
168
182
|
return;
|
169
183
|
}
|
170
184
|
c->func = on_done;
|
171
185
|
c->arg = arg;
|
172
|
-
grpc_channel_security_connector
|
186
|
+
grpc_channel_security_connector* sc = nullptr;
|
173
187
|
GPR_ASSERT(httpcli_ssl_channel_security_connector_create(
|
174
188
|
exec_ctx, pem_root_certs, host, &sc) == GRPC_SECURITY_OK);
|
175
189
|
grpc_arg channel_arg = grpc_security_connector_to_arg(&sc->base);
|
@@ -177,8 +191,8 @@ static void ssl_handshake(grpc_exec_ctx *exec_ctx, void *arg,
|
|
177
191
|
c->handshake_mgr = grpc_handshake_manager_create();
|
178
192
|
grpc_handshakers_add(exec_ctx, HANDSHAKER_CLIENT, &args, c->handshake_mgr);
|
179
193
|
grpc_handshake_manager_do_handshake(
|
180
|
-
exec_ctx, c->handshake_mgr, tcp,
|
181
|
-
|
194
|
+
exec_ctx, c->handshake_mgr, tcp, nullptr /* channel_args */, deadline,
|
195
|
+
nullptr /* acceptor */, on_handshake_done, c /* user_data */);
|
182
196
|
GRPC_SECURITY_CONNECTOR_UNREF(exec_ctx, &sc->base, "httpcli");
|
183
197
|
}
|
184
198
|
|
@@ -25,19 +25,19 @@
|
|
25
25
|
#include <grpc/support/log.h>
|
26
26
|
#include <grpc/support/useful.h>
|
27
27
|
|
28
|
-
|
28
|
+
grpc_core::TraceFlag grpc_http1_trace(false, "http1");
|
29
29
|
|
30
|
-
static char
|
31
|
-
char
|
30
|
+
static char* buf2str(void* buffer, size_t length) {
|
31
|
+
char* out = (char*)gpr_malloc(length + 1);
|
32
32
|
memcpy(out, buffer, length);
|
33
33
|
out[length] = 0;
|
34
34
|
return out;
|
35
35
|
}
|
36
36
|
|
37
|
-
static grpc_error
|
38
|
-
uint8_t
|
39
|
-
uint8_t
|
40
|
-
uint8_t
|
37
|
+
static grpc_error* handle_response_line(grpc_http_parser* parser) {
|
38
|
+
uint8_t* beg = parser->cur_line;
|
39
|
+
uint8_t* cur = beg;
|
40
|
+
uint8_t* end = beg + parser->cur_line_length;
|
41
41
|
|
42
42
|
if (cur == end || *cur++ != 'H')
|
43
43
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Expected 'H'");
|
@@ -75,10 +75,10 @@ static grpc_error *handle_response_line(grpc_http_parser *parser) {
|
|
75
75
|
return GRPC_ERROR_NONE;
|
76
76
|
}
|
77
77
|
|
78
|
-
static grpc_error
|
79
|
-
uint8_t
|
80
|
-
uint8_t
|
81
|
-
uint8_t
|
78
|
+
static grpc_error* handle_request_line(grpc_http_parser* parser) {
|
79
|
+
uint8_t* beg = parser->cur_line;
|
80
|
+
uint8_t* cur = beg;
|
81
|
+
uint8_t* end = beg + parser->cur_line_length;
|
82
82
|
uint8_t vers_major = 0;
|
83
83
|
uint8_t vers_minor = 0;
|
84
84
|
|
@@ -137,7 +137,7 @@ static grpc_error *handle_request_line(grpc_http_parser *parser) {
|
|
137
137
|
return GRPC_ERROR_NONE;
|
138
138
|
}
|
139
139
|
|
140
|
-
static grpc_error
|
140
|
+
static grpc_error* handle_first_line(grpc_http_parser* parser) {
|
141
141
|
switch (parser->type) {
|
142
142
|
case GRPC_HTTP_REQUEST:
|
143
143
|
return handle_request_line(parser);
|
@@ -148,14 +148,14 @@ static grpc_error *handle_first_line(grpc_http_parser *parser) {
|
|
148
148
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Should never reach here"));
|
149
149
|
}
|
150
150
|
|
151
|
-
static grpc_error
|
152
|
-
uint8_t
|
153
|
-
uint8_t
|
154
|
-
uint8_t
|
155
|
-
size_t
|
156
|
-
grpc_http_header
|
157
|
-
grpc_http_header hdr = {
|
158
|
-
grpc_error
|
151
|
+
static grpc_error* add_header(grpc_http_parser* parser) {
|
152
|
+
uint8_t* beg = parser->cur_line;
|
153
|
+
uint8_t* cur = beg;
|
154
|
+
uint8_t* end = beg + parser->cur_line_length;
|
155
|
+
size_t* hdr_count = nullptr;
|
156
|
+
grpc_http_header** hdrs = nullptr;
|
157
|
+
grpc_http_header hdr = {nullptr, nullptr};
|
158
|
+
grpc_error* error = GRPC_ERROR_NONE;
|
159
159
|
|
160
160
|
GPR_ASSERT(cur != end);
|
161
161
|
|
@@ -197,7 +197,7 @@ static grpc_error *add_header(grpc_http_parser *parser) {
|
|
197
197
|
if (*hdr_count == parser->hdr_capacity) {
|
198
198
|
parser->hdr_capacity =
|
199
199
|
GPR_MAX(parser->hdr_capacity + 1, parser->hdr_capacity * 3 / 2);
|
200
|
-
*hdrs = (grpc_http_header
|
200
|
+
*hdrs = (grpc_http_header*)gpr_realloc(
|
201
201
|
*hdrs, parser->hdr_capacity * sizeof(**hdrs));
|
202
202
|
}
|
203
203
|
(*hdrs)[(*hdr_count)++] = hdr;
|
@@ -210,9 +210,9 @@ done:
|
|
210
210
|
return error;
|
211
211
|
}
|
212
212
|
|
213
|
-
static grpc_error
|
214
|
-
bool
|
215
|
-
grpc_error
|
213
|
+
static grpc_error* finish_line(grpc_http_parser* parser,
|
214
|
+
bool* found_body_start) {
|
215
|
+
grpc_error* err;
|
216
216
|
switch (parser->state) {
|
217
217
|
case GRPC_HTTP_FIRST_LINE:
|
218
218
|
err = handle_first_line(parser);
|
@@ -239,9 +239,9 @@ static grpc_error *finish_line(grpc_http_parser *parser,
|
|
239
239
|
return GRPC_ERROR_NONE;
|
240
240
|
}
|
241
241
|
|
242
|
-
static grpc_error
|
243
|
-
size_t
|
244
|
-
char
|
242
|
+
static grpc_error* addbyte_body(grpc_http_parser* parser, uint8_t byte) {
|
243
|
+
size_t* body_length = nullptr;
|
244
|
+
char** body = nullptr;
|
245
245
|
|
246
246
|
if (parser->type == GRPC_HTTP_RESPONSE) {
|
247
247
|
body_length = &parser->http.response->body_length;
|
@@ -256,7 +256,7 @@ static grpc_error *addbyte_body(grpc_http_parser *parser, uint8_t byte) {
|
|
256
256
|
|
257
257
|
if (*body_length == parser->body_capacity) {
|
258
258
|
parser->body_capacity = GPR_MAX(8, parser->body_capacity * 3 / 2);
|
259
|
-
*body = (char
|
259
|
+
*body = (char*)gpr_realloc((void*)*body, parser->body_capacity);
|
260
260
|
}
|
261
261
|
(*body)[*body_length] = (char)byte;
|
262
262
|
(*body_length)++;
|
@@ -264,7 +264,7 @@ static grpc_error *addbyte_body(grpc_http_parser *parser, uint8_t byte) {
|
|
264
264
|
return GRPC_ERROR_NONE;
|
265
265
|
}
|
266
266
|
|
267
|
-
static bool check_line(grpc_http_parser
|
267
|
+
static bool check_line(grpc_http_parser* parser) {
|
268
268
|
if (parser->cur_line_length >= 2 &&
|
269
269
|
parser->cur_line[parser->cur_line_length - 2] == '\r' &&
|
270
270
|
parser->cur_line[parser->cur_line_length - 1] == '\n') {
|
@@ -288,13 +288,13 @@ static bool check_line(grpc_http_parser *parser) {
|
|
288
288
|
return false;
|
289
289
|
}
|
290
290
|
|
291
|
-
static grpc_error
|
292
|
-
bool
|
291
|
+
static grpc_error* addbyte(grpc_http_parser* parser, uint8_t byte,
|
292
|
+
bool* found_body_start) {
|
293
293
|
switch (parser->state) {
|
294
294
|
case GRPC_HTTP_FIRST_LINE:
|
295
295
|
case GRPC_HTTP_HEADERS:
|
296
296
|
if (parser->cur_line_length >= GRPC_HTTP_PARSER_MAX_HEADER_LENGTH) {
|
297
|
-
if (
|
297
|
+
if (grpc_http1_trace.enabled())
|
298
298
|
gpr_log(GPR_ERROR, "HTTP header max line length (%d) exceeded",
|
299
299
|
GRPC_HTTP_PARSER_MAX_HEADER_LENGTH);
|
300
300
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -312,8 +312,8 @@ static grpc_error *addbyte(grpc_http_parser *parser, uint8_t byte,
|
|
312
312
|
GPR_UNREACHABLE_CODE(return GRPC_ERROR_NONE);
|
313
313
|
}
|
314
314
|
|
315
|
-
void grpc_http_parser_init(grpc_http_parser
|
316
|
-
void
|
315
|
+
void grpc_http_parser_init(grpc_http_parser* parser, grpc_http_type type,
|
316
|
+
void* request_or_response) {
|
317
317
|
memset(parser, 0, sizeof(*parser));
|
318
318
|
parser->state = GRPC_HTTP_FIRST_LINE;
|
319
319
|
parser->type = type;
|
@@ -321,9 +321,9 @@ void grpc_http_parser_init(grpc_http_parser *parser, grpc_http_type type,
|
|
321
321
|
parser->cur_line_end_length = 2;
|
322
322
|
}
|
323
323
|
|
324
|
-
void grpc_http_parser_destroy(grpc_http_parser
|
324
|
+
void grpc_http_parser_destroy(grpc_http_parser* parser) {}
|
325
325
|
|
326
|
-
void grpc_http_request_destroy(grpc_http_request
|
326
|
+
void grpc_http_request_destroy(grpc_http_request* request) {
|
327
327
|
size_t i;
|
328
328
|
gpr_free(request->body);
|
329
329
|
for (i = 0; i < request->hdr_count; i++) {
|
@@ -335,7 +335,7 @@ void grpc_http_request_destroy(grpc_http_request *request) {
|
|
335
335
|
gpr_free(request->path);
|
336
336
|
}
|
337
337
|
|
338
|
-
void grpc_http_response_destroy(grpc_http_response
|
338
|
+
void grpc_http_response_destroy(grpc_http_response* response) {
|
339
339
|
size_t i;
|
340
340
|
gpr_free(response->body);
|
341
341
|
for (i = 0; i < response->hdr_count; i++) {
|
@@ -345,19 +345,19 @@ void grpc_http_response_destroy(grpc_http_response *response) {
|
|
345
345
|
gpr_free(response->hdrs);
|
346
346
|
}
|
347
347
|
|
348
|
-
grpc_error
|
349
|
-
size_t
|
348
|
+
grpc_error* grpc_http_parser_parse(grpc_http_parser* parser, grpc_slice slice,
|
349
|
+
size_t* start_of_body) {
|
350
350
|
for (size_t i = 0; i < GRPC_SLICE_LENGTH(slice); i++) {
|
351
351
|
bool found_body_start = false;
|
352
|
-
grpc_error
|
352
|
+
grpc_error* err =
|
353
353
|
addbyte(parser, GRPC_SLICE_START_PTR(slice)[i], &found_body_start);
|
354
354
|
if (err != GRPC_ERROR_NONE) return err;
|
355
|
-
if (found_body_start && start_of_body !=
|
355
|
+
if (found_body_start && start_of_body != nullptr) *start_of_body = i + 1;
|
356
356
|
}
|
357
357
|
return GRPC_ERROR_NONE;
|
358
358
|
}
|
359
359
|
|
360
|
-
grpc_error
|
360
|
+
grpc_error* grpc_http_parser_eof(grpc_http_parser* parser) {
|
361
361
|
if (parser->state != GRPC_HTTP_BODY) {
|
362
362
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING("Did not finish headers");
|
363
363
|
}
|