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
@@ -32,6 +32,10 @@
|
|
32
32
|
#define GRPC_GOOGLE_SERVICE_ACCOUNTS_KEY_URL_PREFIX \
|
33
33
|
"www.googleapis.com/robot/v1/metadata/x509"
|
34
34
|
|
35
|
+
#ifdef __cplusplus
|
36
|
+
extern "C" {
|
37
|
+
#endif
|
38
|
+
|
35
39
|
/* --- grpc_jwt_verifier_status. --- */
|
36
40
|
|
37
41
|
typedef enum {
|
@@ -45,25 +49,25 @@ typedef enum {
|
|
45
49
|
GRPC_JWT_VERIFIER_GENERIC_ERROR
|
46
50
|
} grpc_jwt_verifier_status;
|
47
51
|
|
48
|
-
const char
|
52
|
+
const char* grpc_jwt_verifier_status_to_string(grpc_jwt_verifier_status status);
|
49
53
|
|
50
54
|
/* --- grpc_jwt_claims. --- */
|
51
55
|
|
52
56
|
typedef struct grpc_jwt_claims grpc_jwt_claims;
|
53
57
|
|
54
|
-
void grpc_jwt_claims_destroy(grpc_exec_ctx
|
58
|
+
void grpc_jwt_claims_destroy(grpc_exec_ctx* exec_ctx, grpc_jwt_claims* claims);
|
55
59
|
|
56
60
|
/* Returns the whole JSON tree of the claims. */
|
57
|
-
const grpc_json
|
61
|
+
const grpc_json* grpc_jwt_claims_json(const grpc_jwt_claims* claims);
|
58
62
|
|
59
63
|
/* Access to registered claims in https://tools.ietf.org/html/rfc7519#page-9 */
|
60
|
-
const char
|
61
|
-
const char
|
62
|
-
const char
|
63
|
-
const char
|
64
|
-
gpr_timespec grpc_jwt_claims_issued_at(const grpc_jwt_claims
|
65
|
-
gpr_timespec grpc_jwt_claims_expires_at(const grpc_jwt_claims
|
66
|
-
gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims
|
64
|
+
const char* grpc_jwt_claims_subject(const grpc_jwt_claims* claims);
|
65
|
+
const char* grpc_jwt_claims_issuer(const grpc_jwt_claims* claims);
|
66
|
+
const char* grpc_jwt_claims_id(const grpc_jwt_claims* claims);
|
67
|
+
const char* grpc_jwt_claims_audience(const grpc_jwt_claims* claims);
|
68
|
+
gpr_timespec grpc_jwt_claims_issued_at(const grpc_jwt_claims* claims);
|
69
|
+
gpr_timespec grpc_jwt_claims_expires_at(const grpc_jwt_claims* claims);
|
70
|
+
gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims* claims);
|
67
71
|
|
68
72
|
/* --- grpc_jwt_verifier. --- */
|
69
73
|
|
@@ -71,17 +75,17 @@ typedef struct grpc_jwt_verifier grpc_jwt_verifier;
|
|
71
75
|
|
72
76
|
typedef struct {
|
73
77
|
/* The email domain is the part after the @ sign. */
|
74
|
-
const char
|
78
|
+
const char* email_domain;
|
75
79
|
|
76
80
|
/* The key url prefix will be used to get the public key from the issuer:
|
77
81
|
https://<key_url_prefix>/<issuer_email>
|
78
82
|
Therefore the key_url_prefix must NOT contain https://. */
|
79
|
-
const char
|
83
|
+
const char* key_url_prefix;
|
80
84
|
} grpc_jwt_verifier_email_domain_key_url_mapping;
|
81
85
|
|
82
86
|
/* Globals to control the verifier. Not thread-safe. */
|
83
87
|
extern gpr_timespec grpc_jwt_verifier_clock_skew;
|
84
|
-
extern
|
88
|
+
extern grpc_millis grpc_jwt_verifier_max_delay;
|
85
89
|
|
86
90
|
/* The verifier can be created with some custom mappings to help with key
|
87
91
|
discovery in the case where the issuer is an email address.
|
@@ -89,37 +93,41 @@ extern gpr_timespec grpc_jwt_verifier_max_delay;
|
|
89
93
|
A verifier object has one built-in mapping (unless overridden):
|
90
94
|
GRPC_GOOGLE_SERVICE_ACCOUNTS_EMAIL_DOMAIN ->
|
91
95
|
GRPC_GOOGLE_SERVICE_ACCOUNTS_KEY_URL_PREFIX.*/
|
92
|
-
grpc_jwt_verifier
|
93
|
-
const grpc_jwt_verifier_email_domain_key_url_mapping
|
96
|
+
grpc_jwt_verifier* grpc_jwt_verifier_create(
|
97
|
+
const grpc_jwt_verifier_email_domain_key_url_mapping* mappings,
|
94
98
|
size_t num_mappings);
|
95
99
|
|
96
100
|
/*The verifier must not be destroyed if there are still outstanding callbacks.*/
|
97
|
-
void grpc_jwt_verifier_destroy(grpc_exec_ctx
|
98
|
-
grpc_jwt_verifier
|
101
|
+
void grpc_jwt_verifier_destroy(grpc_exec_ctx* exec_ctx,
|
102
|
+
grpc_jwt_verifier* verifier);
|
99
103
|
|
100
104
|
/* User provided callback that will be called when the verification of the JWT
|
101
105
|
is done (maybe in another thread).
|
102
106
|
It is the responsibility of the callee to call grpc_jwt_claims_destroy on
|
103
107
|
the claims. */
|
104
|
-
typedef void (*grpc_jwt_verification_done_cb)(grpc_exec_ctx
|
105
|
-
void
|
108
|
+
typedef void (*grpc_jwt_verification_done_cb)(grpc_exec_ctx* exec_ctx,
|
109
|
+
void* user_data,
|
106
110
|
grpc_jwt_verifier_status status,
|
107
|
-
grpc_jwt_claims
|
111
|
+
grpc_jwt_claims* claims);
|
108
112
|
|
109
113
|
/* Verifies for the JWT for the given expected audience. */
|
110
|
-
void grpc_jwt_verifier_verify(grpc_exec_ctx
|
111
|
-
grpc_jwt_verifier
|
112
|
-
grpc_pollset
|
113
|
-
const char
|
114
|
+
void grpc_jwt_verifier_verify(grpc_exec_ctx* exec_ctx,
|
115
|
+
grpc_jwt_verifier* verifier,
|
116
|
+
grpc_pollset* pollset, const char* jwt,
|
117
|
+
const char* audience,
|
114
118
|
grpc_jwt_verification_done_cb cb,
|
115
|
-
void
|
119
|
+
void* user_data);
|
116
120
|
|
117
121
|
/* --- TESTING ONLY exposed functions. --- */
|
118
122
|
|
119
|
-
grpc_jwt_claims
|
120
|
-
grpc_json
|
121
|
-
grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims
|
122
|
-
const char
|
123
|
-
const char
|
123
|
+
grpc_jwt_claims* grpc_jwt_claims_from_json(grpc_exec_ctx* exec_ctx,
|
124
|
+
grpc_json* json, grpc_slice buffer);
|
125
|
+
grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims* claims,
|
126
|
+
const char* audience);
|
127
|
+
const char* grpc_jwt_issuer_email_domain(const char* issuer);
|
128
|
+
|
129
|
+
#ifdef __cplusplus
|
130
|
+
}
|
131
|
+
#endif
|
124
132
|
|
125
133
|
#endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_JWT_JWT_VERIFIER_H */
|
data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc}
RENAMED
@@ -32,26 +32,26 @@
|
|
32
32
|
//
|
33
33
|
|
34
34
|
int grpc_auth_refresh_token_is_valid(
|
35
|
-
const grpc_auth_refresh_token
|
36
|
-
return (refresh_token !=
|
35
|
+
const grpc_auth_refresh_token* refresh_token) {
|
36
|
+
return (refresh_token != nullptr) &&
|
37
37
|
strcmp(refresh_token->type, GRPC_AUTH_JSON_TYPE_INVALID);
|
38
38
|
}
|
39
39
|
|
40
40
|
grpc_auth_refresh_token grpc_auth_refresh_token_create_from_json(
|
41
|
-
const grpc_json
|
41
|
+
const grpc_json* json) {
|
42
42
|
grpc_auth_refresh_token result;
|
43
|
-
const char
|
43
|
+
const char* prop_value;
|
44
44
|
int success = 0;
|
45
45
|
|
46
46
|
memset(&result, 0, sizeof(grpc_auth_refresh_token));
|
47
47
|
result.type = GRPC_AUTH_JSON_TYPE_INVALID;
|
48
|
-
if (json ==
|
48
|
+
if (json == nullptr) {
|
49
49
|
gpr_log(GPR_ERROR, "Invalid json.");
|
50
50
|
goto end;
|
51
51
|
}
|
52
52
|
|
53
53
|
prop_value = grpc_json_get_string_property(json, "type");
|
54
|
-
if (prop_value ==
|
54
|
+
if (prop_value == nullptr ||
|
55
55
|
strcmp(prop_value, GRPC_AUTH_JSON_TYPE_AUTHORIZED_USER)) {
|
56
56
|
goto end;
|
57
57
|
}
|
@@ -72,30 +72,30 @@ end:
|
|
72
72
|
}
|
73
73
|
|
74
74
|
grpc_auth_refresh_token grpc_auth_refresh_token_create_from_string(
|
75
|
-
const char
|
76
|
-
char
|
77
|
-
grpc_json
|
75
|
+
const char* json_string) {
|
76
|
+
char* scratchpad = gpr_strdup(json_string);
|
77
|
+
grpc_json* json = grpc_json_parse_string(scratchpad);
|
78
78
|
grpc_auth_refresh_token result =
|
79
79
|
grpc_auth_refresh_token_create_from_json(json);
|
80
|
-
if (json !=
|
80
|
+
if (json != nullptr) grpc_json_destroy(json);
|
81
81
|
gpr_free(scratchpad);
|
82
82
|
return result;
|
83
83
|
}
|
84
84
|
|
85
|
-
void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token
|
86
|
-
if (refresh_token ==
|
85
|
+
void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token* refresh_token) {
|
86
|
+
if (refresh_token == nullptr) return;
|
87
87
|
refresh_token->type = GRPC_AUTH_JSON_TYPE_INVALID;
|
88
|
-
if (refresh_token->client_id !=
|
88
|
+
if (refresh_token->client_id != nullptr) {
|
89
89
|
gpr_free(refresh_token->client_id);
|
90
|
-
refresh_token->client_id =
|
90
|
+
refresh_token->client_id = nullptr;
|
91
91
|
}
|
92
|
-
if (refresh_token->client_secret !=
|
92
|
+
if (refresh_token->client_secret != nullptr) {
|
93
93
|
gpr_free(refresh_token->client_secret);
|
94
|
-
refresh_token->client_secret =
|
94
|
+
refresh_token->client_secret = nullptr;
|
95
95
|
}
|
96
|
-
if (refresh_token->refresh_token !=
|
96
|
+
if (refresh_token->refresh_token != nullptr) {
|
97
97
|
gpr_free(refresh_token->refresh_token);
|
98
|
-
refresh_token->refresh_token =
|
98
|
+
refresh_token->refresh_token = nullptr;
|
99
99
|
}
|
100
100
|
}
|
101
101
|
|
@@ -103,10 +103,10 @@ void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token *refresh_token) {
|
|
103
103
|
// Oauth2 Token Fetcher credentials.
|
104
104
|
//
|
105
105
|
|
106
|
-
static void oauth2_token_fetcher_destruct(grpc_exec_ctx
|
107
|
-
grpc_call_credentials
|
108
|
-
grpc_oauth2_token_fetcher_credentials
|
109
|
-
(grpc_oauth2_token_fetcher_credentials
|
106
|
+
static void oauth2_token_fetcher_destruct(grpc_exec_ctx* exec_ctx,
|
107
|
+
grpc_call_credentials* creds) {
|
108
|
+
grpc_oauth2_token_fetcher_credentials* c =
|
109
|
+
(grpc_oauth2_token_fetcher_credentials*)creds;
|
110
110
|
GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
|
111
111
|
gpr_mu_destroy(&c->mu);
|
112
112
|
grpc_pollset_set_destroy(exec_ctx,
|
@@ -116,21 +116,21 @@ static void oauth2_token_fetcher_destruct(grpc_exec_ctx *exec_ctx,
|
|
116
116
|
|
117
117
|
grpc_credentials_status
|
118
118
|
grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
119
|
-
grpc_exec_ctx
|
120
|
-
grpc_mdelem
|
121
|
-
char
|
122
|
-
char
|
119
|
+
grpc_exec_ctx* exec_ctx, const grpc_http_response* response,
|
120
|
+
grpc_mdelem* token_md, grpc_millis* token_lifetime) {
|
121
|
+
char* null_terminated_body = nullptr;
|
122
|
+
char* new_access_token = nullptr;
|
123
123
|
grpc_credentials_status status = GRPC_CREDENTIALS_OK;
|
124
|
-
grpc_json
|
124
|
+
grpc_json* json = nullptr;
|
125
125
|
|
126
|
-
if (response ==
|
126
|
+
if (response == nullptr) {
|
127
127
|
gpr_log(GPR_ERROR, "Received NULL response.");
|
128
128
|
status = GRPC_CREDENTIALS_ERROR;
|
129
129
|
goto end;
|
130
130
|
}
|
131
131
|
|
132
132
|
if (response->body_length > 0) {
|
133
|
-
null_terminated_body = gpr_malloc(response->body_length + 1);
|
133
|
+
null_terminated_body = (char*)gpr_malloc(response->body_length + 1);
|
134
134
|
null_terminated_body[response->body_length] = '\0';
|
135
135
|
memcpy(null_terminated_body, response->body, response->body_length);
|
136
136
|
}
|
@@ -138,16 +138,16 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
138
138
|
if (response->status != 200) {
|
139
139
|
gpr_log(GPR_ERROR, "Call to http server ended with error %d [%s].",
|
140
140
|
response->status,
|
141
|
-
null_terminated_body !=
|
141
|
+
null_terminated_body != nullptr ? null_terminated_body : "");
|
142
142
|
status = GRPC_CREDENTIALS_ERROR;
|
143
143
|
goto end;
|
144
144
|
} else {
|
145
|
-
grpc_json
|
146
|
-
grpc_json
|
147
|
-
grpc_json
|
148
|
-
grpc_json
|
145
|
+
grpc_json* access_token = nullptr;
|
146
|
+
grpc_json* token_type = nullptr;
|
147
|
+
grpc_json* expires_in = nullptr;
|
148
|
+
grpc_json* ptr;
|
149
149
|
json = grpc_json_parse_string(null_terminated_body);
|
150
|
-
if (json ==
|
150
|
+
if (json == nullptr) {
|
151
151
|
gpr_log(GPR_ERROR, "Could not parse JSON from %s", null_terminated_body);
|
152
152
|
status = GRPC_CREDENTIALS_ERROR;
|
153
153
|
goto end;
|
@@ -166,26 +166,24 @@ grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
|
166
166
|
expires_in = ptr;
|
167
167
|
}
|
168
168
|
}
|
169
|
-
if (access_token ==
|
169
|
+
if (access_token == nullptr || access_token->type != GRPC_JSON_STRING) {
|
170
170
|
gpr_log(GPR_ERROR, "Missing or invalid access_token in JSON.");
|
171
171
|
status = GRPC_CREDENTIALS_ERROR;
|
172
172
|
goto end;
|
173
173
|
}
|
174
|
-
if (token_type ==
|
174
|
+
if (token_type == nullptr || token_type->type != GRPC_JSON_STRING) {
|
175
175
|
gpr_log(GPR_ERROR, "Missing or invalid token_type in JSON.");
|
176
176
|
status = GRPC_CREDENTIALS_ERROR;
|
177
177
|
goto end;
|
178
178
|
}
|
179
|
-
if (expires_in ==
|
179
|
+
if (expires_in == nullptr || expires_in->type != GRPC_JSON_NUMBER) {
|
180
180
|
gpr_log(GPR_ERROR, "Missing or invalid expires_in in JSON.");
|
181
181
|
status = GRPC_CREDENTIALS_ERROR;
|
182
182
|
goto end;
|
183
183
|
}
|
184
184
|
gpr_asprintf(&new_access_token, "%s %s", token_type->value,
|
185
185
|
access_token->value);
|
186
|
-
token_lifetime
|
187
|
-
token_lifetime->tv_nsec = 0;
|
188
|
-
token_lifetime->clock_type = GPR_TIMESPAN;
|
186
|
+
*token_lifetime = strtol(expires_in->value, nullptr, 10) * GPR_MS_PER_SEC;
|
189
187
|
if (!GRPC_MDISNULL(*token_md)) GRPC_MDELEM_UNREF(exec_ctx, *token_md);
|
190
188
|
*token_md = grpc_mdelem_from_slices(
|
191
189
|
exec_ctx,
|
@@ -199,22 +197,22 @@ end:
|
|
199
197
|
GRPC_MDELEM_UNREF(exec_ctx, *token_md);
|
200
198
|
*token_md = GRPC_MDNULL;
|
201
199
|
}
|
202
|
-
if (null_terminated_body !=
|
203
|
-
if (new_access_token !=
|
204
|
-
if (json !=
|
200
|
+
if (null_terminated_body != nullptr) gpr_free(null_terminated_body);
|
201
|
+
if (new_access_token != nullptr) gpr_free(new_access_token);
|
202
|
+
if (json != nullptr) grpc_json_destroy(json);
|
205
203
|
return status;
|
206
204
|
}
|
207
205
|
|
208
|
-
static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx
|
209
|
-
void
|
210
|
-
grpc_error
|
206
|
+
static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx* exec_ctx,
|
207
|
+
void* user_data,
|
208
|
+
grpc_error* error) {
|
211
209
|
GRPC_LOG_IF_ERROR("oauth_fetch", GRPC_ERROR_REF(error));
|
212
|
-
grpc_credentials_metadata_request
|
213
|
-
(grpc_credentials_metadata_request
|
214
|
-
grpc_oauth2_token_fetcher_credentials
|
215
|
-
(grpc_oauth2_token_fetcher_credentials
|
210
|
+
grpc_credentials_metadata_request* r =
|
211
|
+
(grpc_credentials_metadata_request*)user_data;
|
212
|
+
grpc_oauth2_token_fetcher_credentials* c =
|
213
|
+
(grpc_oauth2_token_fetcher_credentials*)r->creds;
|
216
214
|
grpc_mdelem access_token_md = GRPC_MDNULL;
|
217
|
-
|
215
|
+
grpc_millis token_lifetime;
|
218
216
|
grpc_credentials_status status =
|
219
217
|
grpc_oauth2_token_fetcher_credentials_parse_server_response(
|
220
218
|
exec_ctx, &r->response, &access_token_md, &token_lifetime);
|
@@ -222,16 +220,15 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
|
|
222
220
|
gpr_mu_lock(&c->mu);
|
223
221
|
c->token_fetch_pending = false;
|
224
222
|
c->access_token_md = GRPC_MDELEM_REF(access_token_md);
|
225
|
-
c->token_expiration =
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
grpc_oauth2_pending_get_request_metadata *pending_request =
|
223
|
+
c->token_expiration = status == GRPC_CREDENTIALS_OK
|
224
|
+
? grpc_exec_ctx_now(exec_ctx) + token_lifetime
|
225
|
+
: 0;
|
226
|
+
grpc_oauth2_pending_get_request_metadata* pending_request =
|
230
227
|
c->pending_requests;
|
231
|
-
c->pending_requests =
|
228
|
+
c->pending_requests = nullptr;
|
232
229
|
gpr_mu_unlock(&c->mu);
|
233
230
|
// Invoke callbacks for all pending requests.
|
234
|
-
while (pending_request !=
|
231
|
+
while (pending_request != nullptr) {
|
235
232
|
if (status == GRPC_CREDENTIALS_OK) {
|
236
233
|
grpc_credentials_mdelem_array_add(pending_request->md_array,
|
237
234
|
access_token_md);
|
@@ -243,7 +240,7 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
|
|
243
240
|
grpc_polling_entity_del_from_pollset_set(
|
244
241
|
exec_ctx, pending_request->pollent,
|
245
242
|
grpc_polling_entity_pollset_set(&c->pollent));
|
246
|
-
grpc_oauth2_pending_get_request_metadata
|
243
|
+
grpc_oauth2_pending_get_request_metadata* prev = pending_request;
|
247
244
|
pending_request = pending_request->next;
|
248
245
|
gpr_free(prev);
|
249
246
|
}
|
@@ -253,21 +250,19 @@ static void on_oauth2_token_fetcher_http_response(grpc_exec_ctx *exec_ctx,
|
|
253
250
|
}
|
254
251
|
|
255
252
|
static bool oauth2_token_fetcher_get_request_metadata(
|
256
|
-
grpc_exec_ctx
|
257
|
-
grpc_polling_entity
|
258
|
-
grpc_credentials_mdelem_array
|
259
|
-
grpc_error
|
260
|
-
grpc_oauth2_token_fetcher_credentials
|
261
|
-
(grpc_oauth2_token_fetcher_credentials
|
253
|
+
grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
|
254
|
+
grpc_polling_entity* pollent, grpc_auth_metadata_context context,
|
255
|
+
grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
|
256
|
+
grpc_error** error) {
|
257
|
+
grpc_oauth2_token_fetcher_credentials* c =
|
258
|
+
(grpc_oauth2_token_fetcher_credentials*)creds;
|
262
259
|
// Check if we can use the cached token.
|
263
|
-
|
264
|
-
GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS
|
260
|
+
grpc_millis refresh_threshold =
|
261
|
+
GRPC_SECURE_TOKEN_REFRESH_THRESHOLD_SECS * GPR_MS_PER_SEC;
|
265
262
|
grpc_mdelem cached_access_token_md = GRPC_MDNULL;
|
266
263
|
gpr_mu_lock(&c->mu);
|
267
264
|
if (!GRPC_MDISNULL(c->access_token_md) &&
|
268
|
-
(
|
269
|
-
gpr_time_sub(c->token_expiration, gpr_now(GPR_CLOCK_REALTIME)),
|
270
|
-
refresh_threshold) > 0)) {
|
265
|
+
(c->token_expiration - grpc_exec_ctx_now(exec_ctx) > refresh_threshold)) {
|
271
266
|
cached_access_token_md = GRPC_MDELEM_REF(c->access_token_md);
|
272
267
|
}
|
273
268
|
if (!GRPC_MDISNULL(cached_access_token_md)) {
|
@@ -278,8 +273,8 @@ static bool oauth2_token_fetcher_get_request_metadata(
|
|
278
273
|
}
|
279
274
|
// Couldn't get the token from the cache.
|
280
275
|
// Add request to c->pending_requests and start a new fetch if needed.
|
281
|
-
grpc_oauth2_pending_get_request_metadata
|
282
|
-
(grpc_oauth2_pending_get_request_metadata
|
276
|
+
grpc_oauth2_pending_get_request_metadata* pending_request =
|
277
|
+
(grpc_oauth2_pending_get_request_metadata*)gpr_malloc(
|
283
278
|
sizeof(*pending_request));
|
284
279
|
pending_request->md_array = md_array;
|
285
280
|
pending_request->on_request_metadata = on_request_metadata;
|
@@ -296,27 +291,27 @@ static bool oauth2_token_fetcher_get_request_metadata(
|
|
296
291
|
gpr_mu_unlock(&c->mu);
|
297
292
|
if (start_fetch) {
|
298
293
|
grpc_call_credentials_ref(creds);
|
299
|
-
c->fetch_func(
|
300
|
-
|
301
|
-
|
302
|
-
|
294
|
+
c->fetch_func(exec_ctx, grpc_credentials_metadata_request_create(creds),
|
295
|
+
&c->httpcli_context, &c->pollent,
|
296
|
+
on_oauth2_token_fetcher_http_response,
|
297
|
+
grpc_exec_ctx_now(exec_ctx) + refresh_threshold);
|
303
298
|
}
|
304
299
|
return false;
|
305
300
|
}
|
306
301
|
|
307
302
|
static void oauth2_token_fetcher_cancel_get_request_metadata(
|
308
|
-
grpc_exec_ctx
|
309
|
-
grpc_credentials_mdelem_array
|
310
|
-
grpc_oauth2_token_fetcher_credentials
|
311
|
-
(grpc_oauth2_token_fetcher_credentials
|
303
|
+
grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
|
304
|
+
grpc_credentials_mdelem_array* md_array, grpc_error* error) {
|
305
|
+
grpc_oauth2_token_fetcher_credentials* c =
|
306
|
+
(grpc_oauth2_token_fetcher_credentials*)creds;
|
312
307
|
gpr_mu_lock(&c->mu);
|
313
|
-
grpc_oauth2_pending_get_request_metadata
|
314
|
-
grpc_oauth2_pending_get_request_metadata
|
308
|
+
grpc_oauth2_pending_get_request_metadata* prev = nullptr;
|
309
|
+
grpc_oauth2_pending_get_request_metadata* pending_request =
|
315
310
|
c->pending_requests;
|
316
|
-
while (pending_request !=
|
311
|
+
while (pending_request != nullptr) {
|
317
312
|
if (pending_request->md_array == md_array) {
|
318
313
|
// Remove matching pending request from the list.
|
319
|
-
if (prev !=
|
314
|
+
if (prev != nullptr) {
|
320
315
|
prev->next = pending_request->next;
|
321
316
|
} else {
|
322
317
|
c->pending_requests = pending_request->next;
|
@@ -334,13 +329,13 @@ static void oauth2_token_fetcher_cancel_get_request_metadata(
|
|
334
329
|
GRPC_ERROR_UNREF(error);
|
335
330
|
}
|
336
331
|
|
337
|
-
static void init_oauth2_token_fetcher(grpc_oauth2_token_fetcher_credentials
|
332
|
+
static void init_oauth2_token_fetcher(grpc_oauth2_token_fetcher_credentials* c,
|
338
333
|
grpc_fetch_oauth2_func fetch_func) {
|
339
334
|
memset(c, 0, sizeof(grpc_oauth2_token_fetcher_credentials));
|
340
335
|
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
|
341
336
|
gpr_ref_init(&c->base.refcount, 1);
|
342
337
|
gpr_mu_init(&c->mu);
|
343
|
-
c->token_expiration =
|
338
|
+
c->token_expiration = 0;
|
344
339
|
c->fetch_func = fetch_func;
|
345
340
|
c->pollent =
|
346
341
|
grpc_polling_entity_create_from_pollset_set(grpc_pollset_set_create());
|
@@ -356,20 +351,20 @@ static grpc_call_credentials_vtable compute_engine_vtable = {
|
|
356
351
|
oauth2_token_fetcher_cancel_get_request_metadata};
|
357
352
|
|
358
353
|
static void compute_engine_fetch_oauth2(
|
359
|
-
grpc_exec_ctx
|
360
|
-
grpc_httpcli_context
|
361
|
-
grpc_iomgr_cb_func response_cb,
|
362
|
-
grpc_http_header header = {"Metadata-Flavor", "Google"};
|
354
|
+
grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
|
355
|
+
grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
|
356
|
+
grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
|
357
|
+
grpc_http_header header = {(char*)"Metadata-Flavor", (char*)"Google"};
|
363
358
|
grpc_httpcli_request request;
|
364
359
|
memset(&request, 0, sizeof(grpc_httpcli_request));
|
365
|
-
request.host = GRPC_COMPUTE_ENGINE_METADATA_HOST;
|
366
|
-
request.http.path = GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH;
|
360
|
+
request.host = (char*)GRPC_COMPUTE_ENGINE_METADATA_HOST;
|
361
|
+
request.http.path = (char*)GRPC_COMPUTE_ENGINE_METADATA_TOKEN_PATH;
|
367
362
|
request.http.hdr_count = 1;
|
368
363
|
request.http.hdrs = &header;
|
369
364
|
/* TODO(ctiller): Carry the resource_quota in ctx and share it with the host
|
370
365
|
channel. This would allow us to cancel an authentication query when under
|
371
366
|
extreme memory pressure. */
|
372
|
-
grpc_resource_quota
|
367
|
+
grpc_resource_quota* resource_quota =
|
373
368
|
grpc_resource_quota_create("oauth2_credentials");
|
374
369
|
grpc_httpcli_get(
|
375
370
|
exec_ctx, httpcli_context, pollent, resource_quota, &request, deadline,
|
@@ -378,13 +373,14 @@ static void compute_engine_fetch_oauth2(
|
|
378
373
|
grpc_resource_quota_unref_internal(exec_ctx, resource_quota);
|
379
374
|
}
|
380
375
|
|
381
|
-
grpc_call_credentials
|
382
|
-
void
|
383
|
-
grpc_oauth2_token_fetcher_credentials
|
384
|
-
|
376
|
+
grpc_call_credentials* grpc_google_compute_engine_credentials_create(
|
377
|
+
void* reserved) {
|
378
|
+
grpc_oauth2_token_fetcher_credentials* c =
|
379
|
+
(grpc_oauth2_token_fetcher_credentials*)gpr_malloc(
|
380
|
+
sizeof(grpc_oauth2_token_fetcher_credentials));
|
385
381
|
GRPC_API_TRACE("grpc_compute_engine_credentials_create(reserved=%p)", 1,
|
386
382
|
(reserved));
|
387
|
-
GPR_ASSERT(reserved ==
|
383
|
+
GPR_ASSERT(reserved == nullptr);
|
388
384
|
init_oauth2_token_fetcher(c, compute_engine_fetch_oauth2);
|
389
385
|
c->base.vtable = &compute_engine_vtable;
|
390
386
|
return &c->base;
|
@@ -394,10 +390,10 @@ grpc_call_credentials *grpc_google_compute_engine_credentials_create(
|
|
394
390
|
// Google Refresh Token credentials.
|
395
391
|
//
|
396
392
|
|
397
|
-
static void refresh_token_destruct(grpc_exec_ctx
|
398
|
-
grpc_call_credentials
|
399
|
-
grpc_google_refresh_token_credentials
|
400
|
-
(grpc_google_refresh_token_credentials
|
393
|
+
static void refresh_token_destruct(grpc_exec_ctx* exec_ctx,
|
394
|
+
grpc_call_credentials* creds) {
|
395
|
+
grpc_google_refresh_token_credentials* c =
|
396
|
+
(grpc_google_refresh_token_credentials*)creds;
|
401
397
|
grpc_auth_refresh_token_destruct(&c->refresh_token);
|
402
398
|
oauth2_token_fetcher_destruct(exec_ctx, &c->base.base);
|
403
399
|
}
|
@@ -407,28 +403,28 @@ static grpc_call_credentials_vtable refresh_token_vtable = {
|
|
407
403
|
oauth2_token_fetcher_cancel_get_request_metadata};
|
408
404
|
|
409
405
|
static void refresh_token_fetch_oauth2(
|
410
|
-
grpc_exec_ctx
|
411
|
-
grpc_httpcli_context
|
412
|
-
grpc_iomgr_cb_func response_cb,
|
413
|
-
grpc_google_refresh_token_credentials
|
414
|
-
(grpc_google_refresh_token_credentials
|
415
|
-
grpc_http_header header = {"Content-Type",
|
416
|
-
"application/x-www-form-urlencoded"};
|
406
|
+
grpc_exec_ctx* exec_ctx, grpc_credentials_metadata_request* metadata_req,
|
407
|
+
grpc_httpcli_context* httpcli_context, grpc_polling_entity* pollent,
|
408
|
+
grpc_iomgr_cb_func response_cb, grpc_millis deadline) {
|
409
|
+
grpc_google_refresh_token_credentials* c =
|
410
|
+
(grpc_google_refresh_token_credentials*)metadata_req->creds;
|
411
|
+
grpc_http_header header = {(char*)"Content-Type",
|
412
|
+
(char*)"application/x-www-form-urlencoded"};
|
417
413
|
grpc_httpcli_request request;
|
418
|
-
char
|
414
|
+
char* body = nullptr;
|
419
415
|
gpr_asprintf(&body, GRPC_REFRESH_TOKEN_POST_BODY_FORMAT_STRING,
|
420
416
|
c->refresh_token.client_id, c->refresh_token.client_secret,
|
421
417
|
c->refresh_token.refresh_token);
|
422
418
|
memset(&request, 0, sizeof(grpc_httpcli_request));
|
423
|
-
request.host = GRPC_GOOGLE_OAUTH2_SERVICE_HOST;
|
424
|
-
request.http.path = GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH;
|
419
|
+
request.host = (char*)GRPC_GOOGLE_OAUTH2_SERVICE_HOST;
|
420
|
+
request.http.path = (char*)GRPC_GOOGLE_OAUTH2_SERVICE_TOKEN_PATH;
|
425
421
|
request.http.hdr_count = 1;
|
426
422
|
request.http.hdrs = &header;
|
427
423
|
request.handshaker = &grpc_httpcli_ssl;
|
428
424
|
/* TODO(ctiller): Carry the resource_quota in ctx and share it with the host
|
429
425
|
channel. This would allow us to cancel an authentication query when under
|
430
426
|
extreme memory pressure. */
|
431
|
-
grpc_resource_quota
|
427
|
+
grpc_resource_quota* resource_quota =
|
432
428
|
grpc_resource_quota_create("oauth2_credentials_refresh");
|
433
429
|
grpc_httpcli_post(
|
434
430
|
exec_ctx, httpcli_context, pollent, resource_quota, &request, body,
|
@@ -439,26 +435,27 @@ static void refresh_token_fetch_oauth2(
|
|
439
435
|
gpr_free(body);
|
440
436
|
}
|
441
437
|
|
442
|
-
grpc_call_credentials
|
438
|
+
grpc_call_credentials*
|
443
439
|
grpc_refresh_token_credentials_create_from_auth_refresh_token(
|
444
440
|
grpc_auth_refresh_token refresh_token) {
|
445
|
-
grpc_google_refresh_token_credentials
|
441
|
+
grpc_google_refresh_token_credentials* c;
|
446
442
|
if (!grpc_auth_refresh_token_is_valid(&refresh_token)) {
|
447
443
|
gpr_log(GPR_ERROR, "Invalid input for refresh token credentials creation");
|
448
|
-
return
|
444
|
+
return nullptr;
|
449
445
|
}
|
450
|
-
c =
|
446
|
+
c = (grpc_google_refresh_token_credentials*)gpr_zalloc(
|
447
|
+
sizeof(grpc_google_refresh_token_credentials));
|
451
448
|
init_oauth2_token_fetcher(&c->base, refresh_token_fetch_oauth2);
|
452
449
|
c->base.base.vtable = &refresh_token_vtable;
|
453
450
|
c->refresh_token = refresh_token;
|
454
451
|
return &c->base.base;
|
455
452
|
}
|
456
453
|
|
457
|
-
static char
|
454
|
+
static char* create_loggable_refresh_token(grpc_auth_refresh_token* token) {
|
458
455
|
if (strcmp(token->type, GRPC_AUTH_JSON_TYPE_INVALID) == 0) {
|
459
456
|
return gpr_strdup("<Invalid json token>");
|
460
457
|
}
|
461
|
-
char
|
458
|
+
char* loggable_token = nullptr;
|
462
459
|
gpr_asprintf(&loggable_token,
|
463
460
|
"{\n type: %s\n client_id: %s\n client_secret: "
|
464
461
|
"<redacted>\n refresh_token: <redacted>\n}",
|
@@ -466,19 +463,19 @@ static char *create_loggable_refresh_token(grpc_auth_refresh_token *token) {
|
|
466
463
|
return loggable_token;
|
467
464
|
}
|
468
465
|
|
469
|
-
grpc_call_credentials
|
470
|
-
const char
|
466
|
+
grpc_call_credentials* grpc_google_refresh_token_credentials_create(
|
467
|
+
const char* json_refresh_token, void* reserved) {
|
471
468
|
grpc_auth_refresh_token token =
|
472
469
|
grpc_auth_refresh_token_create_from_string(json_refresh_token);
|
473
|
-
if (
|
474
|
-
char
|
470
|
+
if (grpc_api_trace.enabled()) {
|
471
|
+
char* loggable_token = create_loggable_refresh_token(&token);
|
475
472
|
gpr_log(GPR_INFO,
|
476
473
|
"grpc_refresh_token_credentials_create(json_refresh_token=%s, "
|
477
474
|
"reserved=%p)",
|
478
475
|
loggable_token, reserved);
|
479
476
|
gpr_free(loggable_token);
|
480
477
|
}
|
481
|
-
GPR_ASSERT(reserved ==
|
478
|
+
GPR_ASSERT(reserved == nullptr);
|
482
479
|
return grpc_refresh_token_credentials_create_from_auth_refresh_token(token);
|
483
480
|
}
|
484
481
|
|
@@ -486,25 +483,25 @@ grpc_call_credentials *grpc_google_refresh_token_credentials_create(
|
|
486
483
|
// Oauth2 Access Token credentials.
|
487
484
|
//
|
488
485
|
|
489
|
-
static void access_token_destruct(grpc_exec_ctx
|
490
|
-
grpc_call_credentials
|
491
|
-
grpc_access_token_credentials
|
486
|
+
static void access_token_destruct(grpc_exec_ctx* exec_ctx,
|
487
|
+
grpc_call_credentials* creds) {
|
488
|
+
grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
|
492
489
|
GRPC_MDELEM_UNREF(exec_ctx, c->access_token_md);
|
493
490
|
}
|
494
491
|
|
495
492
|
static bool access_token_get_request_metadata(
|
496
|
-
grpc_exec_ctx
|
497
|
-
grpc_polling_entity
|
498
|
-
grpc_credentials_mdelem_array
|
499
|
-
grpc_error
|
500
|
-
grpc_access_token_credentials
|
493
|
+
grpc_exec_ctx* exec_ctx, grpc_call_credentials* creds,
|
494
|
+
grpc_polling_entity* pollent, grpc_auth_metadata_context context,
|
495
|
+
grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
|
496
|
+
grpc_error** error) {
|
497
|
+
grpc_access_token_credentials* c = (grpc_access_token_credentials*)creds;
|
501
498
|
grpc_credentials_mdelem_array_add(md_array, c->access_token_md);
|
502
499
|
return true;
|
503
500
|
}
|
504
501
|
|
505
502
|
static void access_token_cancel_get_request_metadata(
|
506
|
-
grpc_exec_ctx
|
507
|
-
grpc_credentials_mdelem_array
|
503
|
+
grpc_exec_ctx* exec_ctx, grpc_call_credentials* c,
|
504
|
+
grpc_credentials_mdelem_array* md_array, grpc_error* error) {
|
508
505
|
GRPC_ERROR_UNREF(error);
|
509
506
|
}
|
510
507
|
|
@@ -512,19 +509,19 @@ static grpc_call_credentials_vtable access_token_vtable = {
|
|
512
509
|
access_token_destruct, access_token_get_request_metadata,
|
513
510
|
access_token_cancel_get_request_metadata};
|
514
511
|
|
515
|
-
grpc_call_credentials
|
516
|
-
const char
|
517
|
-
grpc_access_token_credentials
|
518
|
-
|
512
|
+
grpc_call_credentials* grpc_access_token_credentials_create(
|
513
|
+
const char* access_token, void* reserved) {
|
514
|
+
grpc_access_token_credentials* c = (grpc_access_token_credentials*)gpr_zalloc(
|
515
|
+
sizeof(grpc_access_token_credentials));
|
519
516
|
GRPC_API_TRACE(
|
520
517
|
"grpc_access_token_credentials_create(access_token=<redacted>, "
|
521
518
|
"reserved=%p)",
|
522
519
|
1, (reserved));
|
523
|
-
GPR_ASSERT(reserved ==
|
520
|
+
GPR_ASSERT(reserved == nullptr);
|
524
521
|
c->base.type = GRPC_CALL_CREDENTIALS_TYPE_OAUTH2;
|
525
522
|
c->base.vtable = &access_token_vtable;
|
526
523
|
gpr_ref_init(&c->base.refcount, 1);
|
527
|
-
char
|
524
|
+
char* token_md_value;
|
528
525
|
gpr_asprintf(&token_md_value, "Bearer %s", access_token);
|
529
526
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
530
527
|
c->access_token_md = grpc_mdelem_from_slices(
|