awesome-grpc-that-works 0.12.2 → 0.14.0.dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/Makefile +5783 -22121
- data/include/grpc/byte_buffer.h +2 -83
- data/include/grpc/census.h +173 -121
- data/include/grpc/compression.h +14 -38
- data/include/grpc/grpc.h +85 -434
- data/include/grpc/grpc_security.h +76 -46
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +74 -0
- data/include/grpc/impl/codegen/atm.h +92 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
- data/include/grpc/impl/codegen/atm_win32.h +125 -0
- data/include/grpc/impl/codegen/byte_buffer.h +121 -0
- data/include/grpc/impl/codegen/compression_types.h +73 -0
- data/include/grpc/impl/codegen/connectivity_state.h +59 -0
- data/include/grpc/impl/codegen/grpc_types.h +378 -0
- data/include/grpc/impl/codegen/log.h +110 -0
- data/include/grpc/impl/codegen/port_platform.h +370 -0
- data/include/grpc/impl/codegen/propagation_bits.h +67 -0
- data/include/grpc/impl/codegen/slice.h +182 -0
- data/include/grpc/impl/codegen/slice_buffer.h +105 -0
- data/include/grpc/impl/codegen/status.h +163 -0
- data/include/grpc/impl/codegen/sync.h +316 -0
- data/include/grpc/impl/codegen/sync_generic.h +55 -0
- data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
- data/include/grpc/impl/codegen/sync_win32.h +49 -0
- data/include/grpc/impl/codegen/time.h +130 -0
- data/include/grpc/status.h +2 -126
- data/include/grpc/support/alloc.h +2 -35
- data/include/grpc/support/atm.h +2 -55
- data/include/grpc/support/atm_gcc_atomic.h +5 -38
- data/include/grpc/support/atm_gcc_sync.h +2 -50
- data/include/grpc/support/atm_win32.h +2 -88
- data/include/grpc/support/avl.h +10 -9
- data/include/grpc/support/cmdline.h +15 -13
- data/include/grpc/support/cpu.h +5 -3
- data/include/grpc/support/histogram.h +23 -20
- data/include/grpc/support/host_port.h +5 -3
- data/include/grpc/support/log.h +2 -71
- data/include/grpc/support/log_win32.h +2 -2
- data/include/grpc/support/port_platform.h +2 -319
- data/include/grpc/support/slice.h +2 -145
- data/include/grpc/support/slice_buffer.h +2 -65
- data/include/grpc/support/string_util.h +3 -3
- data/include/grpc/support/subprocess.h +8 -6
- data/include/grpc/support/sync.h +2 -278
- data/include/grpc/support/sync_generic.h +2 -18
- data/include/grpc/support/sync_posix.h +2 -10
- data/include/grpc/support/sync_win32.h +2 -12
- data/include/grpc/support/thd.h +11 -11
- data/include/grpc/support/time.h +2 -91
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_msvc.h +1 -1
- data/include/grpc/support/tls_pthread.h +2 -2
- data/include/grpc/support/useful.h +3 -1
- data/src/boringssl/err_data.c +1252 -0
- data/src/core/census/context.c +471 -8
- data/src/core/census/grpc_filter.c +5 -5
- data/src/core/census/initialize.c +4 -7
- data/src/core/census/mlog.c +600 -0
- data/src/core/census/mlog.h +95 -0
- data/src/core/census/operation.c +2 -2
- data/src/core/census/placeholders.c +109 -0
- data/src/core/census/rpc_metric_id.h +6 -6
- data/src/core/census/tracing.c +1 -1
- data/src/core/channel/channel_args.c +71 -9
- data/src/core/channel/channel_args.h +7 -1
- data/src/core/channel/channel_stack.c +1 -1
- data/src/core/channel/client_channel.c +33 -30
- data/src/core/channel/client_uchannel.c +3 -3
- data/src/core/channel/compress_filter.c +8 -8
- data/src/core/channel/http_client_filter.c +4 -4
- data/src/core/channel/http_server_filter.c +11 -11
- data/src/core/channel/subchannel_call_holder.c +11 -11
- data/src/core/client_config/connector.c +3 -2
- data/src/core/client_config/connector.h +2 -2
- data/src/core/client_config/lb_policies/load_balancer_api.c +163 -0
- data/src/core/client_config/lb_policies/load_balancer_api.h +85 -0
- data/src/core/client_config/lb_policies/pick_first.c +57 -40
- data/src/core/client_config/lb_policies/round_robin.c +14 -15
- data/src/core/client_config/lb_policy.c +3 -3
- data/src/core/client_config/lb_policy.h +3 -2
- data/src/core/client_config/resolvers/dns_resolver.c +3 -3
- data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
- data/src/core/client_config/subchannel.c +84 -39
- data/src/core/client_config/subchannel.h +15 -6
- data/src/core/client_config/subchannel_index.c +261 -0
- data/src/core/client_config/subchannel_index.h +77 -0
- data/src/core/compression/{algorithm.c → compression_algorithm.c} +3 -3
- data/src/core/httpcli/format_request.c +1 -1
- data/src/core/httpcli/httpcli.c +18 -16
- data/src/core/httpcli/httpcli.h +3 -2
- data/src/core/httpcli/httpcli_security_connector.c +9 -10
- data/src/core/httpcli/parser.c +7 -7
- data/src/core/httpcli/parser.h +1 -1
- data/src/core/iomgr/closure.c +7 -7
- data/src/core/iomgr/closure.h +6 -5
- data/src/core/iomgr/exec_ctx.c +12 -8
- data/src/core/iomgr/exec_ctx.h +12 -5
- data/src/core/iomgr/executor.c +4 -4
- data/src/core/iomgr/executor.h +2 -2
- data/src/core/iomgr/fd_posix.c +32 -19
- data/src/core/iomgr/fd_posix.h +7 -4
- data/src/core/iomgr/iocp_windows.c +7 -9
- data/src/core/iomgr/iomgr.c +2 -2
- data/src/core/iomgr/pollset.h +9 -10
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +71 -5
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +9 -5
- data/src/core/iomgr/pollset_posix.c +44 -49
- data/src/core/iomgr/pollset_posix.h +14 -8
- data/src/core/iomgr/pollset_set.h +3 -9
- data/src/core/iomgr/pollset_set_posix.c +23 -3
- data/src/core/iomgr/pollset_set_posix.h +2 -18
- data/src/core/iomgr/pollset_set_windows.c +3 -3
- data/src/core/iomgr/pollset_set_windows.h +2 -2
- data/src/core/iomgr/pollset_windows.c +29 -37
- data/src/core/iomgr/pollset_windows.h +1 -5
- data/src/core/iomgr/resolve_address_posix.c +2 -2
- data/src/core/iomgr/resolve_address_windows.c +2 -2
- data/src/core/iomgr/sockaddr_utils.c +6 -6
- data/src/core/iomgr/sockaddr_win32.h +1 -6
- data/src/core/iomgr/tcp_client_posix.c +14 -12
- data/src/core/iomgr/tcp_client_windows.c +4 -4
- data/src/core/iomgr/tcp_posix.c +18 -10
- data/src/core/iomgr/tcp_posix.h +7 -1
- data/src/core/iomgr/tcp_server.h +40 -20
- data/src/core/iomgr/tcp_server_posix.c +106 -49
- data/src/core/iomgr/tcp_server_windows.c +98 -49
- data/src/core/iomgr/tcp_windows.c +11 -15
- data/src/core/iomgr/timer.c +10 -11
- data/src/core/iomgr/timer.h +22 -2
- data/src/core/iomgr/timer_heap.c +10 -10
- data/src/core/iomgr/timer_heap.h +2 -2
- data/src/core/iomgr/udp_server.c +7 -16
- data/src/core/iomgr/udp_server.h +2 -9
- data/src/core/iomgr/workqueue.h +2 -4
- data/src/core/iomgr/workqueue_posix.c +4 -3
- data/src/core/iomgr/workqueue_posix.h +3 -1
- data/src/core/json/json_reader.c +11 -12
- data/src/core/json/json_reader.h +4 -4
- data/src/core/json/json_string.c +19 -19
- data/src/core/json/json_writer.c +7 -9
- data/src/core/profiling/basic_timers.c +1 -1
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.c +119 -0
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.h +182 -0
- data/src/core/security/{base64.c → b64.c} +10 -10
- data/src/core/security/{base64.h → b64.h} +1 -1
- data/src/core/security/client_auth_filter.c +4 -5
- data/src/core/security/credentials.c +17 -10
- data/src/core/security/credentials.h +3 -3
- data/src/core/security/google_default_credentials.c +27 -22
- data/src/core/security/handshake.c +21 -12
- data/src/core/security/handshake.h +2 -1
- data/src/core/security/json_token.c +14 -8
- data/src/core/security/jwt_verifier.c +4 -3
- data/src/core/security/secure_endpoint.c +16 -16
- data/src/core/security/security_connector.c +131 -81
- data/src/core/security/security_connector.h +47 -27
- data/src/core/security/security_context.c +8 -3
- data/src/core/security/server_auth_filter.c +5 -5
- data/src/core/security/server_secure_chttp2.c +36 -37
- data/src/core/statistics/census_interface.h +2 -2
- data/src/core/statistics/census_rpc_stats.h +3 -3
- data/src/core/support/alloc.c +1 -1
- data/src/core/support/avl.c +2 -2
- data/src/core/support/cpu_posix.c +2 -2
- data/src/core/support/env_linux.c +28 -1
- data/src/core/support/env_win32.c +15 -7
- data/src/core/support/histogram.c +5 -5
- data/src/core/support/{file.c → load_file.c} +2 -2
- data/src/core/support/{file.h → load_file.h} +4 -12
- data/src/core/support/log_posix.c +1 -1
- data/src/core/support/log_win32.c +4 -3
- data/src/core/support/murmur_hash.c +11 -11
- data/src/core/support/murmur_hash.h +1 -1
- data/src/core/support/slice.c +11 -11
- data/src/core/support/slice_buffer.c +6 -6
- data/src/core/support/stack_lockfree.c +20 -10
- data/src/core/support/string.c +15 -15
- data/src/core/support/string.h +5 -5
- data/src/core/support/string_win32.c +5 -5
- data/src/core/support/subprocess_windows.c +141 -0
- data/src/core/support/sync.c +4 -4
- data/src/core/support/sync_posix.c +2 -2
- data/src/core/support/sync_win32.c +10 -5
- data/src/core/support/time.c +29 -29
- data/src/core/support/time_posix.c +15 -6
- data/src/core/support/time_precise.c +2 -2
- data/src/core/support/time_win32.c +18 -9
- data/src/core/support/tls_pthread.c +1 -1
- data/src/core/support/tmpfile.h +55 -0
- data/src/core/support/{file_posix.c → tmpfile_posix.c} +2 -2
- data/src/core/support/{file_win32.c → tmpfile_win32.c} +2 -2
- data/src/core/support/wrap_memcpy.c +53 -0
- data/src/core/surface/alarm.c +84 -0
- data/src/core/surface/byte_buffer_reader.c +1 -1
- data/src/core/surface/call.c +175 -116
- data/src/core/surface/call.h +2 -2
- data/src/core/surface/call_test_only.h +2 -2
- data/src/core/surface/channel.c +9 -9
- data/src/core/surface/channel.h +1 -1
- data/src/core/surface/channel_connectivity.c +3 -3
- data/src/core/surface/channel_create.c +4 -4
- data/src/core/surface/channel_ping.c +2 -2
- data/src/core/surface/completion_queue.c +84 -53
- data/src/core/surface/completion_queue.h +1 -1
- data/src/core/surface/init.c +11 -5
- data/src/core/surface/lame_client.c +2 -3
- data/src/core/surface/secure_channel_create.c +9 -10
- data/src/core/surface/server.c +30 -30
- data/src/core/surface/server_chttp2.c +8 -8
- data/src/core/surface/server_create.c +1 -4
- data/src/core/surface/validate_metadata.c +4 -4
- data/src/core/surface/version.c +2 -2
- data/src/core/transport/byte_stream.c +8 -6
- data/src/core/transport/byte_stream.h +6 -5
- data/src/core/transport/chttp2/bin_encoder.c +29 -29
- data/src/core/transport/chttp2/frame_data.c +29 -26
- data/src/core/transport/chttp2/frame_data.h +6 -6
- data/src/core/transport/chttp2/frame_goaway.c +30 -30
- data/src/core/transport/chttp2/frame_goaway.h +6 -6
- data/src/core/transport/chttp2/frame_ping.c +6 -6
- data/src/core/transport/chttp2/frame_ping.h +5 -5
- data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
- data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
- data/src/core/transport/chttp2/frame_settings.c +30 -30
- data/src/core/transport/chttp2/frame_settings.h +13 -13
- data/src/core/transport/chttp2/frame_window_update.c +17 -18
- data/src/core/transport/chttp2/frame_window_update.h +5 -7
- data/src/core/transport/chttp2/hpack_encoder.c +69 -73
- data/src/core/transport/chttp2/hpack_encoder.h +16 -16
- data/src/core/transport/chttp2/hpack_parser.c +167 -167
- data/src/core/transport/chttp2/hpack_parser.h +16 -16
- data/src/core/transport/chttp2/hpack_table.c +13 -13
- data/src/core/transport/chttp2/hpack_table.h +11 -11
- data/src/core/transport/chttp2/internal.h +103 -87
- data/src/core/transport/chttp2/parsing.c +25 -25
- data/src/core/transport/chttp2/stream_lists.c +38 -1
- data/src/core/transport/chttp2/stream_map.c +13 -14
- data/src/core/transport/chttp2/stream_map.h +6 -7
- data/src/core/transport/chttp2/timeout_encoding.c +19 -16
- data/src/core/transport/chttp2/varint.c +8 -9
- data/src/core/transport/chttp2/varint.h +7 -8
- data/src/core/transport/chttp2/writing.c +25 -22
- data/src/core/transport/chttp2_transport.c +147 -100
- data/src/core/transport/connectivity_state.c +6 -6
- data/src/core/transport/metadata.c +18 -18
- data/src/core/transport/metadata.h +5 -5
- data/src/core/transport/static_metadata.c +32 -33
- data/src/core/transport/static_metadata.h +8 -8
- data/src/core/transport/transport.c +6 -5
- data/src/core/transport/transport.h +17 -1
- data/src/core/tsi/fake_transport_security.c +7 -7
- data/src/core/tsi/ssl_transport_security.c +6 -4
- data/src/core/{iomgr/timer_internal.h → tsi/ssl_types.h} +19 -25
- data/src/ruby/ext/grpc/extconf.rb +52 -14
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
- data/src/ruby/ext/grpc/rb_call.c +7 -3
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
- data/src/ruby/ext/grpc/rb_channel.c +4 -2
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
- data/src/ruby/ext/grpc/rb_grpc.c +28 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +562 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +846 -0
- data/src/ruby/ext/grpc/rb_loader.c +72 -0
- data/src/ruby/ext/grpc/rb_loader.h +40 -0
- data/src/ruby/ext/grpc/rb_server.c +3 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/grpc.rb +34 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +2 -2
- data/src/ruby/pb/grpc/health/checker.rb +11 -11
- data/src/ruby/pb/grpc/health/v1/health.rb +28 -0
- data/src/ruby/pb/grpc/health/{v1alpha → v1}/health_services.rb +4 -4
- data/src/ruby/spec/client_server_spec.rb +2 -1
- data/src/ruby/spec/pb/health/checker_spec.rb +23 -37
- data/third_party/boringssl/crypto/aes/aes.c +1142 -0
- data/third_party/boringssl/crypto/aes/internal.h +87 -0
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
- data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
- data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
- data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
- data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
- data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
- data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
- data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
- data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
- data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
- data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
- data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
- data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
- data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
- data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
- data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
- data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
- data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
- data/third_party/boringssl/crypto/base64/base64.c +478 -0
- data/third_party/boringssl/crypto/bio/bio.c +608 -0
- data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
- data/third_party/boringssl/crypto/bio/buffer.c +496 -0
- data/third_party/boringssl/crypto/bio/connect.c +544 -0
- data/third_party/boringssl/crypto/bio/fd.c +270 -0
- data/third_party/boringssl/crypto/bio/file.c +349 -0
- data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
- data/third_party/boringssl/crypto/bio/internal.h +108 -0
- data/third_party/boringssl/crypto/bio/pair.c +803 -0
- data/third_party/boringssl/crypto/bio/printf.c +119 -0
- data/third_party/boringssl/crypto/bio/socket.c +195 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
- data/third_party/boringssl/crypto/bn/add.c +377 -0
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
- data/third_party/boringssl/crypto/bn/bn.c +341 -0
- data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
- data/third_party/boringssl/crypto/bn/cmp.c +200 -0
- data/third_party/boringssl/crypto/bn/convert.c +597 -0
- data/third_party/boringssl/crypto/bn/ctx.c +311 -0
- data/third_party/boringssl/crypto/bn/div.c +625 -0
- data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
- data/third_party/boringssl/crypto/bn/gcd.c +711 -0
- data/third_party/boringssl/crypto/bn/generic.c +1019 -0
- data/third_party/boringssl/crypto/bn/internal.h +294 -0
- data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
- data/third_party/boringssl/crypto/bn/mul.c +888 -0
- data/third_party/boringssl/crypto/bn/prime.c +845 -0
- data/third_party/boringssl/crypto/bn/random.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
- data/third_party/boringssl/crypto/bn/shift.c +299 -0
- data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
- data/third_party/boringssl/crypto/buf/buf.c +235 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
- data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
- data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
- data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
- data/third_party/boringssl/crypto/cipher/aead.c +167 -0
- data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
- data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
- data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
- data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
- data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
- data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
- data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
- data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
- data/third_party/boringssl/crypto/cipher/internal.h +164 -0
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
- data/third_party/boringssl/crypto/conf/conf.c +778 -0
- data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
- data/third_party/boringssl/crypto/conf/internal.h +31 -0
- data/third_party/boringssl/crypto/cpu-arm.c +199 -0
- data/third_party/boringssl/crypto/cpu-intel.c +261 -0
- data/third_party/boringssl/crypto/crypto.c +140 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
- data/third_party/boringssl/crypto/des/des.c +771 -0
- data/third_party/boringssl/crypto/des/internal.h +212 -0
- data/third_party/boringssl/crypto/dh/check.c +180 -0
- data/third_party/boringssl/crypto/dh/dh.c +463 -0
- data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
- data/third_party/boringssl/crypto/dh/internal.h +80 -0
- data/third_party/boringssl/crypto/dh/params.c +301 -0
- data/third_party/boringssl/crypto/digest/digest.c +248 -0
- data/third_party/boringssl/crypto/digest/digests.c +321 -0
- data/third_party/boringssl/crypto/digest/internal.h +112 -0
- data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
- data/third_party/boringssl/crypto/directory.h +66 -0
- data/third_party/boringssl/crypto/directory_posix.c +108 -0
- data/third_party/boringssl/crypto/directory_win.c +144 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
- data/third_party/boringssl/crypto/dsa/internal.h +78 -0
- data/third_party/boringssl/crypto/ec/ec.c +889 -0
- data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
- data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
- data/third_party/boringssl/crypto/ec/internal.h +318 -0
- data/third_party/boringssl/crypto/ec/oct.c +416 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
- data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
- data/third_party/boringssl/crypto/ec/simple.c +1313 -0
- data/third_party/boringssl/crypto/ec/util-64.c +183 -0
- data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
- data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
- data/third_party/boringssl/crypto/engine/engine.c +96 -0
- data/third_party/boringssl/crypto/err/err.c +756 -0
- data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
- data/third_party/boringssl/crypto/evp/evp.c +411 -0
- data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
- data/third_party/boringssl/crypto/evp/internal.h +278 -0
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
- data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
- data/third_party/boringssl/crypto/evp/sign.c +151 -0
- data/third_party/boringssl/crypto/ex_data.c +294 -0
- data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
- data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
- data/third_party/boringssl/crypto/internal.h +532 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
- data/third_party/boringssl/crypto/md4/md4.c +225 -0
- data/third_party/boringssl/crypto/md5/md5.c +275 -0
- data/third_party/boringssl/crypto/mem.c +200 -0
- data/third_party/boringssl/crypto/modes/cbc.c +216 -0
- data/third_party/boringssl/crypto/modes/cfb.c +231 -0
- data/third_party/boringssl/crypto/modes/ctr.c +226 -0
- data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
- data/third_party/boringssl/crypto/modes/internal.h +370 -0
- data/third_party/boringssl/crypto/modes/ofb.c +108 -0
- data/third_party/boringssl/crypto/obj/obj.c +664 -0
- data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
- data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
- data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
- data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
- data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
- data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
- data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
- data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
- data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
- data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
- data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
- data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
- data/third_party/boringssl/crypto/rand/internal.h +32 -0
- data/third_party/boringssl/crypto/rand/rand.c +239 -0
- data/third_party/boringssl/crypto/rand/urandom.c +223 -0
- data/third_party/boringssl/crypto/rand/windows.c +56 -0
- data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
- data/third_party/boringssl/crypto/refcount_c11.c +67 -0
- data/third_party/boringssl/crypto/refcount_lock.c +53 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
- data/third_party/boringssl/crypto/rsa/internal.h +164 -0
- data/third_party/boringssl/crypto/rsa/padding.c +711 -0
- data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
- data/third_party/boringssl/crypto/sha/sha1.c +337 -0
- data/third_party/boringssl/crypto/sha/sha256.c +327 -0
- data/third_party/boringssl/crypto/sha/sha512.c +607 -0
- data/third_party/boringssl/crypto/stack/stack.c +386 -0
- data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
- data/third_party/boringssl/crypto/test/test_util.h +35 -0
- data/third_party/boringssl/crypto/thread.c +101 -0
- data/third_party/boringssl/crypto/thread_none.c +55 -0
- data/third_party/boringssl/crypto/thread_pthread.c +167 -0
- data/third_party/boringssl/crypto/thread_win.c +282 -0
- data/third_party/boringssl/crypto/time_support.c +212 -0
- data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
- data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
- data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
- data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
- data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
- data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
- data/third_party/boringssl/crypto/x509/by_file.c +295 -0
- data/third_party/boringssl/crypto/x509/charmap.h +15 -0
- data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
- data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
- data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
- data/third_party/boringssl/crypto/x509/t_req.c +246 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
- data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
- data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
- data/third_party/boringssl/crypto/x509/x509.c +152 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
- data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
- data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
- data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
- data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
- data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
- data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
- data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
- data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
- data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
- data/third_party/boringssl/crypto/x509/x509name.c +381 -0
- data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
- data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
- data/third_party/boringssl/crypto/x509/x509type.c +128 -0
- data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
- data/third_party/boringssl/crypto/x509/x_all.c +547 -0
- data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
- data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
- data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
- data/third_party/boringssl/crypto/x509/x_info.c +95 -0
- data/third_party/boringssl/crypto/x509/x_name.c +538 -0
- data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
- data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
- data/third_party/boringssl/crypto/x509/x_req.c +112 -0
- data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
- data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
- data/third_party/boringssl/crypto/x509/x_val.c +69 -0
- data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
- data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
- data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
- data/third_party/boringssl/include/openssl/aead.h +346 -0
- data/third_party/boringssl/include/openssl/aes.h +158 -0
- data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
- data/third_party/boringssl/include/openssl/asn1.h +1168 -0
- data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
- data/third_party/boringssl/include/openssl/asn1t.h +906 -0
- data/third_party/boringssl/include/openssl/base.h +261 -0
- data/third_party/boringssl/include/openssl/base64.h +184 -0
- data/third_party/boringssl/include/openssl/bio.h +902 -0
- data/third_party/boringssl/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl/include/openssl/bn.h +885 -0
- data/third_party/boringssl/include/openssl/buf.h +118 -0
- data/third_party/boringssl/include/openssl/buffer.h +18 -0
- data/third_party/boringssl/include/openssl/bytestring.h +360 -0
- data/third_party/boringssl/include/openssl/cast.h +96 -0
- data/third_party/boringssl/include/openssl/chacha.h +37 -0
- data/third_party/boringssl/include/openssl/cipher.h +571 -0
- data/third_party/boringssl/include/openssl/cmac.h +76 -0
- data/third_party/boringssl/include/openssl/conf.h +145 -0
- data/third_party/boringssl/include/openssl/cpu.h +184 -0
- data/third_party/boringssl/include/openssl/crypto.h +68 -0
- data/third_party/boringssl/include/openssl/curve25519.h +88 -0
- data/third_party/boringssl/include/openssl/des.h +177 -0
- data/third_party/boringssl/include/openssl/dh.h +238 -0
- data/third_party/boringssl/include/openssl/digest.h +258 -0
- data/third_party/boringssl/include/openssl/dsa.h +343 -0
- data/third_party/boringssl/include/openssl/dtls1.h +16 -0
- data/third_party/boringssl/include/openssl/ec.h +355 -0
- data/third_party/boringssl/include/openssl/ec_key.h +280 -0
- data/third_party/boringssl/include/openssl/ecdh.h +102 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
- data/third_party/boringssl/include/openssl/engine.h +98 -0
- data/third_party/boringssl/include/openssl/err.h +487 -0
- data/third_party/boringssl/include/openssl/evp.h +750 -0
- data/third_party/boringssl/include/openssl/ex_data.h +213 -0
- data/third_party/boringssl/include/openssl/hkdf.h +44 -0
- data/third_party/boringssl/include/openssl/hmac.h +160 -0
- data/third_party/boringssl/include/openssl/lhash.h +192 -0
- data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
- data/third_party/boringssl/include/openssl/md4.h +102 -0
- data/third_party/boringssl/include/openssl/md5.h +107 -0
- data/third_party/boringssl/include/openssl/mem.h +140 -0
- data/third_party/boringssl/include/openssl/obj.h +198 -0
- data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
- data/third_party/boringssl/include/openssl/objects.h +18 -0
- data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
- data/third_party/boringssl/include/openssl/opensslv.h +18 -0
- data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
- data/third_party/boringssl/include/openssl/pem.h +521 -0
- data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
- data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
- data/third_party/boringssl/include/openssl/poly1305.h +51 -0
- data/third_party/boringssl/include/openssl/pqueue.h +146 -0
- data/third_party/boringssl/include/openssl/rand.h +113 -0
- data/third_party/boringssl/include/openssl/rc4.h +90 -0
- data/third_party/boringssl/include/openssl/rsa.h +637 -0
- data/third_party/boringssl/include/openssl/safestack.h +16 -0
- data/third_party/boringssl/include/openssl/sha.h +256 -0
- data/third_party/boringssl/include/openssl/srtp.h +18 -0
- data/third_party/boringssl/include/openssl/ssl.h +4466 -0
- data/third_party/boringssl/include/openssl/ssl3.h +441 -0
- data/third_party/boringssl/include/openssl/stack.h +298 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
- data/third_party/boringssl/include/openssl/thread.h +173 -0
- data/third_party/boringssl/include/openssl/time_support.h +90 -0
- data/third_party/boringssl/include/openssl/tls1.h +653 -0
- data/third_party/boringssl/include/openssl/type_check.h +91 -0
- data/third_party/boringssl/include/openssl/x509.h +1258 -0
- data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
- data/third_party/boringssl/include/openssl/x509v3.h +798 -0
- data/third_party/boringssl/ssl/custom_extensions.c +257 -0
- data/third_party/boringssl/ssl/d1_both.c +880 -0
- data/third_party/boringssl/ssl/d1_clnt.c +566 -0
- data/third_party/boringssl/ssl/d1_lib.c +340 -0
- data/third_party/boringssl/ssl/d1_meth.c +130 -0
- data/third_party/boringssl/ssl/d1_pkt.c +578 -0
- data/third_party/boringssl/ssl/d1_srtp.c +234 -0
- data/third_party/boringssl/ssl/d1_srvr.c +485 -0
- data/third_party/boringssl/ssl/dtls_record.c +308 -0
- data/third_party/boringssl/ssl/internal.h +1276 -0
- data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
- data/third_party/boringssl/ssl/s3_both.c +571 -0
- data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
- data/third_party/boringssl/ssl/s3_enc.c +494 -0
- data/third_party/boringssl/ssl/s3_lib.c +587 -0
- data/third_party/boringssl/ssl/s3_meth.c +166 -0
- data/third_party/boringssl/ssl/s3_pkt.c +732 -0
- data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
- data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
- data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
- data/third_party/boringssl/ssl/ssl_cert.c +539 -0
- data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
- data/third_party/boringssl/ssl/ssl_file.c +633 -0
- data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
- data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
- data/third_party/boringssl/ssl/ssl_session.c +764 -0
- data/third_party/boringssl/ssl/ssl_stat.c +591 -0
- data/third_party/boringssl/ssl/t1_enc.c +708 -0
- data/third_party/boringssl/ssl/t1_lib.c +2905 -0
- data/third_party/boringssl/ssl/test/async_bio.h +45 -0
- data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
- data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
- data/third_party/boringssl/ssl/test/test_config.h +108 -0
- data/third_party/boringssl/ssl/tls_record.c +342 -0
- data/third_party/nanopb/pb.h +547 -0
- data/third_party/nanopb/pb_common.c +97 -0
- data/third_party/nanopb/pb_common.h +42 -0
- data/third_party/nanopb/pb_decode.c +1319 -0
- data/third_party/nanopb/pb_decode.h +149 -0
- data/third_party/nanopb/pb_encode.c +690 -0
- data/third_party/nanopb/pb_encode.h +154 -0
- data/third_party/zlib/adler32.c +179 -0
- data/third_party/zlib/compress.c +80 -0
- data/third_party/zlib/crc32.c +425 -0
- data/third_party/zlib/crc32.h +441 -0
- data/third_party/zlib/deflate.c +1967 -0
- data/third_party/zlib/deflate.h +346 -0
- data/third_party/zlib/gzclose.c +25 -0
- data/third_party/zlib/gzguts.h +209 -0
- data/third_party/zlib/gzlib.c +634 -0
- data/third_party/zlib/gzread.c +594 -0
- data/third_party/zlib/gzwrite.c +577 -0
- data/third_party/zlib/infback.c +640 -0
- data/third_party/zlib/inffast.c +340 -0
- data/third_party/zlib/inffast.h +11 -0
- data/third_party/zlib/inffixed.h +94 -0
- data/third_party/zlib/inflate.c +1512 -0
- data/third_party/zlib/inflate.h +122 -0
- data/third_party/zlib/inftrees.c +306 -0
- data/third_party/zlib/inftrees.h +62 -0
- data/third_party/zlib/trees.c +1226 -0
- data/third_party/zlib/trees.h +128 -0
- data/third_party/zlib/uncompr.c +59 -0
- data/third_party/zlib/zconf.h +511 -0
- data/third_party/zlib/zlib.h +1768 -0
- data/third_party/zlib/zutil.c +324 -0
- data/third_party/zlib/zutil.h +253 -0
- metadata +504 -20
- data/Rakefile +0 -63
- data/src/ruby/pb/grpc/health/v1alpha/health.rb +0 -29
@@ -75,8 +75,8 @@ void gpr_precise_clock_now(gpr_timespec *clk) {
|
|
75
75
|
gpr_get_cycle_counter(&counter);
|
76
76
|
secs = (double)(counter - start_cycle) / cycles_per_second;
|
77
77
|
clk->clock_type = GPR_CLOCK_PRECISE;
|
78
|
-
clk->tv_sec = (
|
79
|
-
clk->tv_nsec = (
|
78
|
+
clk->tv_sec = (int64_t)secs;
|
79
|
+
clk->tv_nsec = (int32_t)(1e9 * (secs - (double)clk->tv_sec));
|
80
80
|
}
|
81
81
|
|
82
82
|
#else /* GRPC_TIMERS_RDTSC */
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -37,9 +37,12 @@
|
|
37
37
|
|
38
38
|
#ifdef GPR_WIN32
|
39
39
|
|
40
|
+
#include <grpc/support/log.h>
|
40
41
|
#include <grpc/support/time.h>
|
41
42
|
#include <src/core/support/time_precise.h>
|
42
43
|
#include <sys/timeb.h>
|
44
|
+
#include <process.h>
|
45
|
+
#include <limits.h>
|
43
46
|
|
44
47
|
#include "src/core/support/block_annotate.h"
|
45
48
|
|
@@ -50,11 +53,12 @@ void gpr_time_init(void) {
|
|
50
53
|
LARGE_INTEGER frequency;
|
51
54
|
QueryPerformanceFrequency(&frequency);
|
52
55
|
QueryPerformanceCounter(&g_start_time);
|
53
|
-
g_time_scale = 1.0 / frequency.QuadPart;
|
56
|
+
g_time_scale = 1.0 / (double)frequency.QuadPart;
|
54
57
|
}
|
55
58
|
|
56
59
|
gpr_timespec gpr_now(gpr_clock_type clock) {
|
57
60
|
gpr_timespec now_tv;
|
61
|
+
LONGLONG diff;
|
58
62
|
struct _timeb now_tb;
|
59
63
|
LARGE_INTEGER timestamp;
|
60
64
|
double now_dbl;
|
@@ -62,15 +66,19 @@ gpr_timespec gpr_now(gpr_clock_type clock) {
|
|
62
66
|
switch (clock) {
|
63
67
|
case GPR_CLOCK_REALTIME:
|
64
68
|
_ftime_s(&now_tb);
|
65
|
-
now_tv.tv_sec = (
|
69
|
+
now_tv.tv_sec = (int64_t)now_tb.time;
|
66
70
|
now_tv.tv_nsec = now_tb.millitm * 1000000;
|
67
71
|
break;
|
68
72
|
case GPR_CLOCK_MONOTONIC:
|
69
73
|
case GPR_CLOCK_PRECISE:
|
70
74
|
QueryPerformanceCounter(×tamp);
|
71
|
-
|
72
|
-
|
73
|
-
now_tv.
|
75
|
+
diff = timestamp.QuadPart - g_start_time.QuadPart;
|
76
|
+
now_dbl = (double)diff * g_time_scale;
|
77
|
+
now_tv.tv_sec = (int64_t)now_dbl;
|
78
|
+
now_tv.tv_nsec = (int32_t)((now_dbl - (double)now_tv.tv_sec) * 1e9);
|
79
|
+
break;
|
80
|
+
case GPR_TIMESPAN:
|
81
|
+
abort();
|
74
82
|
break;
|
75
83
|
}
|
76
84
|
return now_tv;
|
@@ -79,7 +87,7 @@ gpr_timespec gpr_now(gpr_clock_type clock) {
|
|
79
87
|
void gpr_sleep_until(gpr_timespec until) {
|
80
88
|
gpr_timespec now;
|
81
89
|
gpr_timespec delta;
|
82
|
-
|
90
|
+
int64_t sleep_millis;
|
83
91
|
|
84
92
|
for (;;) {
|
85
93
|
/* We could simplify by using clock_nanosleep instead, but it might be
|
@@ -91,9 +99,10 @@ void gpr_sleep_until(gpr_timespec until) {
|
|
91
99
|
|
92
100
|
delta = gpr_time_sub(until, now);
|
93
101
|
sleep_millis =
|
94
|
-
|
102
|
+
delta.tv_sec * GPR_MS_PER_SEC + delta.tv_nsec / GPR_NS_PER_MS;
|
103
|
+
GPR_ASSERT((sleep_millis >= 0) && (sleep_millis <= INT_MAX));
|
95
104
|
GRPC_SCHEDULING_START_BLOCKING_REGION;
|
96
|
-
Sleep(sleep_millis);
|
105
|
+
Sleep((DWORD)sleep_millis);
|
97
106
|
GRPC_SCHEDULING_END_BLOCKING_REGION;
|
98
107
|
}
|
99
108
|
}
|
@@ -37,7 +37,7 @@
|
|
37
37
|
|
38
38
|
#include <grpc/support/tls.h>
|
39
39
|
|
40
|
-
|
40
|
+
intptr_t gpr_tls_set(struct gpr_pthread_thread_local *tls, intptr_t value) {
|
41
41
|
GPR_ASSERT(0 == pthread_setspecific(tls->key, (void *)value));
|
42
42
|
return value;
|
43
43
|
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#ifndef GRPC_INTERNAL_CORE_SUPPORT_TMPFILE_H
|
35
|
+
#define GRPC_INTERNAL_CORE_SUPPORT_TMPFILE_H
|
36
|
+
|
37
|
+
#include <stdio.h>
|
38
|
+
|
39
|
+
#include <grpc/support/slice.h>
|
40
|
+
|
41
|
+
#ifdef __cplusplus
|
42
|
+
extern "C" {
|
43
|
+
#endif
|
44
|
+
|
45
|
+
/* Creates a temporary file from a prefix.
|
46
|
+
If tmp_filename is not NULL, *tmp_filename is assigned the name of the
|
47
|
+
created file and it is the responsibility of the caller to gpr_free it
|
48
|
+
unless an error occurs in which case it will be set to NULL. */
|
49
|
+
FILE *gpr_tmpfile(const char *prefix, char **tmp_filename);
|
50
|
+
|
51
|
+
#ifdef __cplusplus
|
52
|
+
}
|
53
|
+
#endif
|
54
|
+
|
55
|
+
#endif /* GRPC_INTERNAL_CORE_SUPPORT_TMPFILE_H */
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
#ifdef GPR_POSIX_FILE
|
37
37
|
|
38
|
-
#include "src/core/support/
|
38
|
+
#include "src/core/support/tmpfile.h"
|
39
39
|
|
40
40
|
#include <errno.h>
|
41
41
|
#include <stdlib.h>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -44,8 +44,8 @@
|
|
44
44
|
#include <grpc/support/log.h>
|
45
45
|
#include <grpc/support/string_util.h>
|
46
46
|
|
47
|
-
#include "src/core/support/file.h"
|
48
47
|
#include "src/core/support/string_win32.h"
|
48
|
+
#include "src/core/support/tmpfile.h"
|
49
49
|
|
50
50
|
FILE *gpr_tmpfile(const char *prefix, char **tmp_filename_out) {
|
51
51
|
FILE *result = NULL;
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include <string.h>
|
35
|
+
|
36
|
+
/* Provide a wrapped memcpy for targets that need to be backwards
|
37
|
+
* compatible with older libc's.
|
38
|
+
*
|
39
|
+
* Enable by setting LDFLAGS=-Wl,-wrap,memcpy when linking.
|
40
|
+
*/
|
41
|
+
|
42
|
+
#ifdef __linux__
|
43
|
+
#ifdef __x86_64__
|
44
|
+
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
|
45
|
+
void *__wrap_memcpy(void *destination, const void *source, size_t num) {
|
46
|
+
return memcpy(destination, source, num);
|
47
|
+
}
|
48
|
+
#else /* !__x86_64__ */
|
49
|
+
void *__wrap_memcpy(void *destination, const void *source, size_t num) {
|
50
|
+
return memmove(destination, source, num);
|
51
|
+
}
|
52
|
+
#endif
|
53
|
+
#endif
|
@@ -0,0 +1,84 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include "src/core/iomgr/timer.h"
|
35
|
+
#include "src/core/surface/completion_queue.h"
|
36
|
+
#include <grpc/grpc.h>
|
37
|
+
#include <grpc/support/alloc.h>
|
38
|
+
|
39
|
+
struct grpc_alarm {
|
40
|
+
grpc_timer alarm;
|
41
|
+
grpc_cq_completion completion;
|
42
|
+
/** completion queue where events about this alarm will be posted */
|
43
|
+
grpc_completion_queue *cq;
|
44
|
+
/** user supplied tag */
|
45
|
+
void *tag;
|
46
|
+
};
|
47
|
+
|
48
|
+
static void do_nothing_end_completion(grpc_exec_ctx *exec_ctx, void *arg,
|
49
|
+
grpc_cq_completion *c) {}
|
50
|
+
|
51
|
+
static void alarm_cb(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
52
|
+
grpc_alarm *alarm = arg;
|
53
|
+
grpc_cq_end_op(exec_ctx, alarm->cq, alarm->tag, success,
|
54
|
+
do_nothing_end_completion, NULL, &alarm->completion);
|
55
|
+
}
|
56
|
+
|
57
|
+
grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq, gpr_timespec deadline,
|
58
|
+
void *tag) {
|
59
|
+
grpc_alarm *alarm = gpr_malloc(sizeof(grpc_alarm));
|
60
|
+
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
61
|
+
|
62
|
+
GRPC_CQ_INTERNAL_REF(cq, "alarm");
|
63
|
+
alarm->cq = cq;
|
64
|
+
alarm->tag = tag;
|
65
|
+
|
66
|
+
grpc_cq_begin_op(cq, tag);
|
67
|
+
grpc_timer_init(&exec_ctx, &alarm->alarm,
|
68
|
+
gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC),
|
69
|
+
alarm_cb, alarm, gpr_now(GPR_CLOCK_MONOTONIC));
|
70
|
+
grpc_exec_ctx_finish(&exec_ctx);
|
71
|
+
return alarm;
|
72
|
+
}
|
73
|
+
|
74
|
+
void grpc_alarm_cancel(grpc_alarm *alarm) {
|
75
|
+
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
76
|
+
grpc_timer_cancel(&exec_ctx, &alarm->alarm);
|
77
|
+
grpc_exec_ctx_finish(&exec_ctx);
|
78
|
+
}
|
79
|
+
|
80
|
+
void grpc_alarm_destroy(grpc_alarm *alarm) {
|
81
|
+
grpc_alarm_cancel(alarm);
|
82
|
+
GRPC_CQ_INTERNAL_UNREF(alarm->cq, "alarm");
|
83
|
+
gpr_free(alarm);
|
84
|
+
}
|
@@ -110,7 +110,7 @@ gpr_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader) {
|
|
110
110
|
size_t bytes_read = 0;
|
111
111
|
const size_t input_size = grpc_byte_buffer_length(reader->buffer_out);
|
112
112
|
gpr_slice out_slice = gpr_slice_malloc(input_size);
|
113
|
-
|
113
|
+
uint8_t *const outbuf = GPR_SLICE_START_PTR(out_slice); /* just an alias */
|
114
114
|
|
115
115
|
while (grpc_byte_buffer_reader_next(reader, &in_slice) != 0) {
|
116
116
|
const size_t slice_length = GPR_SLICE_LENGTH(in_slice);
|
data/src/core/surface/call.c
CHANGED
@@ -92,7 +92,7 @@ typedef enum {
|
|
92
92
|
} status_source;
|
93
93
|
|
94
94
|
typedef struct {
|
95
|
-
|
95
|
+
uint8_t is_set;
|
96
96
|
grpc_status_code code;
|
97
97
|
grpc_mdstr *details;
|
98
98
|
} received_status;
|
@@ -123,14 +123,14 @@ typedef struct batch_control {
|
|
123
123
|
void *notify_tag;
|
124
124
|
gpr_refcount steps_to_complete;
|
125
125
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
126
|
+
uint8_t send_initial_metadata;
|
127
|
+
uint8_t send_message;
|
128
|
+
uint8_t send_final_op;
|
129
|
+
uint8_t recv_initial_metadata;
|
130
|
+
uint8_t recv_message;
|
131
|
+
uint8_t recv_final_op;
|
132
|
+
uint8_t is_notify_tag_closure;
|
133
|
+
uint8_t success;
|
134
134
|
} batch_control;
|
135
135
|
|
136
136
|
struct grpc_call {
|
@@ -142,22 +142,25 @@ struct grpc_call {
|
|
142
142
|
gpr_mu mu;
|
143
143
|
|
144
144
|
/* client or server call */
|
145
|
-
|
145
|
+
uint8_t is_client;
|
146
146
|
/* is the alarm set */
|
147
|
-
|
147
|
+
uint8_t have_alarm;
|
148
148
|
/** has grpc_call_destroy been called */
|
149
|
-
|
149
|
+
uint8_t destroy_called;
|
150
150
|
/** flag indicating that cancellation is inherited */
|
151
|
-
|
151
|
+
uint8_t cancellation_is_inherited;
|
152
152
|
/** bitmask of live batches */
|
153
|
-
|
153
|
+
uint8_t used_batches;
|
154
154
|
/** which ops are in-flight */
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
155
|
+
uint8_t sent_initial_metadata;
|
156
|
+
uint8_t sending_message;
|
157
|
+
uint8_t sent_final_op;
|
158
|
+
uint8_t received_initial_metadata;
|
159
|
+
uint8_t receiving_message;
|
160
|
+
uint8_t received_final_op;
|
161
|
+
|
162
|
+
/* have we received initial metadata */
|
163
|
+
bool has_initial_md_been_received;
|
161
164
|
|
162
165
|
batch_control active_batches[MAX_CONCURRENT_BATCHES];
|
163
166
|
|
@@ -174,7 +177,7 @@ struct grpc_call {
|
|
174
177
|
/* Compression algorithm for the call */
|
175
178
|
grpc_compression_algorithm compression_algorithm;
|
176
179
|
/* Supported encodings (compression algorithms), a bitset */
|
177
|
-
|
180
|
+
uint32_t encodings_accepted_by_peer;
|
178
181
|
|
179
182
|
/* Contexts for various subsystems (security, tracing, ...). */
|
180
183
|
grpc_call_context_element context[GRPC_CONTEXT_COUNT];
|
@@ -200,7 +203,8 @@ struct grpc_call {
|
|
200
203
|
gpr_slice receiving_slice;
|
201
204
|
grpc_closure receiving_slice_ready;
|
202
205
|
grpc_closure receiving_stream_ready;
|
203
|
-
|
206
|
+
grpc_closure receiving_initial_metadata_ready;
|
207
|
+
uint32_t test_only_last_message_flags;
|
204
208
|
|
205
209
|
union {
|
206
210
|
struct {
|
@@ -212,6 +216,11 @@ struct grpc_call {
|
|
212
216
|
int *cancelled;
|
213
217
|
} server;
|
214
218
|
} final_op;
|
219
|
+
|
220
|
+
struct {
|
221
|
+
void *bctlp;
|
222
|
+
bool success;
|
223
|
+
} saved_receiving_stream_ready_ctx;
|
215
224
|
};
|
216
225
|
|
217
226
|
#define CALL_STACK_FROM_CALL(call) ((grpc_call_stack *)((call) + 1))
|
@@ -229,12 +238,12 @@ static grpc_call_error cancel_with_status(grpc_exec_ctx *exec_ctx, grpc_call *c,
|
|
229
238
|
grpc_status_code status,
|
230
239
|
const char *description);
|
231
240
|
static void destroy_call(grpc_exec_ctx *exec_ctx, void *call_stack,
|
232
|
-
|
241
|
+
bool success);
|
233
242
|
static void receiving_slice_ready(grpc_exec_ctx *exec_ctx, void *bctlp,
|
234
|
-
|
243
|
+
bool success);
|
235
244
|
|
236
245
|
grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
|
237
|
-
|
246
|
+
uint32_t propagation_mask,
|
238
247
|
grpc_completion_queue *cq,
|
239
248
|
const void *server_transport_data,
|
240
249
|
grpc_mdelem **add_initial_metadata,
|
@@ -351,7 +360,7 @@ void grpc_call_internal_unref(grpc_exec_ctx *exec_ctx, grpc_call *c REF_ARG) {
|
|
351
360
|
GRPC_CALL_STACK_UNREF(exec_ctx, CALL_STACK_FROM_CALL(c), REF_REASON);
|
352
361
|
}
|
353
362
|
|
354
|
-
static void destroy_call(grpc_exec_ctx *exec_ctx, void *call,
|
363
|
+
static void destroy_call(grpc_exec_ctx *exec_ctx, void *call, bool success) {
|
355
364
|
size_t i;
|
356
365
|
int ii;
|
357
366
|
grpc_call *c = call;
|
@@ -361,7 +370,7 @@ static void destroy_call(grpc_exec_ctx *exec_ctx, void *call, int success) {
|
|
361
370
|
&c->metadata_batch[1 /* is_receiving */][i /* is_initial */]);
|
362
371
|
}
|
363
372
|
if (c->receiving_stream != NULL) {
|
364
|
-
grpc_byte_stream_destroy(c->receiving_stream);
|
373
|
+
grpc_byte_stream_destroy(exec_ctx, c->receiving_stream);
|
365
374
|
}
|
366
375
|
grpc_call_stack_destroy(exec_ctx, CALL_STACK_FROM_CALL(c));
|
367
376
|
GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, c->channel, "call");
|
@@ -387,7 +396,7 @@ static void destroy_call(grpc_exec_ctx *exec_ctx, void *call, int success) {
|
|
387
396
|
}
|
388
397
|
|
389
398
|
static void set_status_code(grpc_call *call, status_source source,
|
390
|
-
|
399
|
+
uint32_t status) {
|
391
400
|
if (call->status[source].is_set) return;
|
392
401
|
|
393
402
|
call->status[source].is_set = 1;
|
@@ -410,8 +419,8 @@ grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
|
|
410
419
|
return algorithm;
|
411
420
|
}
|
412
421
|
|
413
|
-
|
414
|
-
|
422
|
+
uint32_t grpc_call_test_only_get_message_flags(grpc_call *call) {
|
423
|
+
uint32_t flags;
|
415
424
|
gpr_mu_lock(&call->mu);
|
416
425
|
flags = call->test_only_last_message_flags;
|
417
426
|
gpr_mu_unlock(&call->mu);
|
@@ -431,7 +440,7 @@ static void set_encodings_accepted_by_peer(grpc_call *call, grpc_mdelem *mdel) {
|
|
431
440
|
grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
|
432
441
|
if (accepted_user_data != NULL) {
|
433
442
|
call->encodings_accepted_by_peer =
|
434
|
-
(
|
443
|
+
(uint32_t)(((uintptr_t)accepted_user_data) - 1);
|
435
444
|
return;
|
436
445
|
}
|
437
446
|
|
@@ -464,11 +473,11 @@ static void set_encodings_accepted_by_peer(grpc_call *call, grpc_mdelem *mdel) {
|
|
464
473
|
|
465
474
|
grpc_mdelem_set_user_data(
|
466
475
|
mdel, destroy_encodings_accepted_by_peer,
|
467
|
-
(void *)(((
|
476
|
+
(void *)(((uintptr_t)call->encodings_accepted_by_peer) + 1));
|
468
477
|
}
|
469
478
|
|
470
|
-
|
471
|
-
|
479
|
+
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call) {
|
480
|
+
uint32_t encodings_accepted_by_peer;
|
472
481
|
gpr_mu_lock(&call->mu);
|
473
482
|
encodings_accepted_by_peer = call->encodings_accepted_by_peer;
|
474
483
|
gpr_mu_unlock(&call->mu);
|
@@ -562,7 +571,7 @@ static int prepare_application_metadata(grpc_call *call, int count,
|
|
562
571
|
grpc_linked_mdelem *l = (grpc_linked_mdelem *)&md->internal_data;
|
563
572
|
GPR_ASSERT(sizeof(grpc_linked_mdelem) == sizeof(md->internal_data));
|
564
573
|
l->md = grpc_mdelem_from_string_and_buffer(
|
565
|
-
md->key, (const
|
574
|
+
md->key, (const uint8_t *)md->value, md->value_length);
|
566
575
|
if (!grpc_header_key_is_legal(grpc_mdstr_as_c_string(l->md->key),
|
567
576
|
GRPC_MDSTR_LENGTH(l->md->key))) {
|
568
577
|
gpr_log(GPR_ERROR, "attempt to send invalid metadata key: %s",
|
@@ -688,13 +697,13 @@ typedef struct cancel_closure {
|
|
688
697
|
grpc_status_code status;
|
689
698
|
} cancel_closure;
|
690
699
|
|
691
|
-
static void done_cancel(grpc_exec_ctx *exec_ctx, void *ccp,
|
700
|
+
static void done_cancel(grpc_exec_ctx *exec_ctx, void *ccp, bool success) {
|
692
701
|
cancel_closure *cc = ccp;
|
693
702
|
GRPC_CALL_INTERNAL_UNREF(exec_ctx, cc->call, "cancel");
|
694
703
|
gpr_free(cc);
|
695
704
|
}
|
696
705
|
|
697
|
-
static void send_cancel(grpc_exec_ctx *exec_ctx, void *ccp,
|
706
|
+
static void send_cancel(grpc_exec_ctx *exec_ctx, void *ccp, bool success) {
|
698
707
|
grpc_transport_stream_op op;
|
699
708
|
cancel_closure *cc = ccp;
|
700
709
|
memset(&op, 0, sizeof(op));
|
@@ -714,14 +723,14 @@ static grpc_call_error cancel_with_status(grpc_exec_ctx *exec_ctx, grpc_call *c,
|
|
714
723
|
|
715
724
|
GPR_ASSERT(status != GRPC_STATUS_OK);
|
716
725
|
|
717
|
-
set_status_code(c, STATUS_FROM_API_OVERRIDE, (
|
726
|
+
set_status_code(c, STATUS_FROM_API_OVERRIDE, (uint32_t)status);
|
718
727
|
set_status_details(c, STATUS_FROM_API_OVERRIDE, details);
|
719
728
|
|
720
729
|
grpc_closure_init(&cc->closure, send_cancel, cc);
|
721
730
|
cc->call = c;
|
722
731
|
cc->status = status;
|
723
732
|
GRPC_CALL_INTERNAL_REF(c, "cancel");
|
724
|
-
grpc_exec_ctx_enqueue(exec_ctx, &cc->closure,
|
733
|
+
grpc_exec_ctx_enqueue(exec_ctx, &cc->closure, true, NULL);
|
725
734
|
|
726
735
|
return GRPC_CALL_OK;
|
727
736
|
}
|
@@ -757,7 +766,7 @@ grpc_call *grpc_call_from_top_element(grpc_call_element *elem) {
|
|
757
766
|
return CALL_FROM_TOP_ELEM(elem);
|
758
767
|
}
|
759
768
|
|
760
|
-
static void call_alarm(grpc_exec_ctx *exec_ctx, void *arg,
|
769
|
+
static void call_alarm(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
761
770
|
grpc_call *call = arg;
|
762
771
|
gpr_mu_lock(&call->mu);
|
763
772
|
call->have_alarm = 0;
|
@@ -789,15 +798,15 @@ static void set_deadline_alarm(grpc_exec_ctx *exec_ctx, grpc_call *call,
|
|
789
798
|
#define STATUS_OFFSET 1
|
790
799
|
static void destroy_status(void *ignored) {}
|
791
800
|
|
792
|
-
static
|
793
|
-
|
801
|
+
static uint32_t decode_status(grpc_mdelem *md) {
|
802
|
+
uint32_t status;
|
794
803
|
void *user_data;
|
795
804
|
if (md == GRPC_MDELEM_GRPC_STATUS_0) return 0;
|
796
805
|
if (md == GRPC_MDELEM_GRPC_STATUS_1) return 1;
|
797
806
|
if (md == GRPC_MDELEM_GRPC_STATUS_2) return 2;
|
798
807
|
user_data = grpc_mdelem_get_user_data(md, destroy_status);
|
799
808
|
if (user_data != NULL) {
|
800
|
-
status = ((
|
809
|
+
status = ((uint32_t)(intptr_t)user_data) - STATUS_OFFSET;
|
801
810
|
} else {
|
802
811
|
if (!gpr_parse_bytes_to_uint32(grpc_mdstr_as_c_string(md->value),
|
803
812
|
GPR_SLICE_LENGTH(md->value->slice),
|
@@ -805,12 +814,12 @@ static gpr_uint32 decode_status(grpc_mdelem *md) {
|
|
805
814
|
status = GRPC_STATUS_UNKNOWN; /* could not parse status code */
|
806
815
|
}
|
807
816
|
grpc_mdelem_set_user_data(md, destroy_status,
|
808
|
-
(void *)(
|
817
|
+
(void *)(intptr_t)(status + STATUS_OFFSET));
|
809
818
|
}
|
810
819
|
return status;
|
811
820
|
}
|
812
821
|
|
813
|
-
static
|
822
|
+
static uint32_t decode_compression(grpc_mdelem *md) {
|
814
823
|
grpc_compression_algorithm algorithm =
|
815
824
|
grpc_compression_algorithm_from_mdstr(md->value);
|
816
825
|
if (algorithm == GRPC_COMPRESS_ALGORITHMS_COUNT) {
|
@@ -900,11 +909,11 @@ static void set_cancelled_value(grpc_status_code status, void *dest) {
|
|
900
909
|
*(int *)dest = (status != GRPC_STATUS_OK);
|
901
910
|
}
|
902
911
|
|
903
|
-
static int are_write_flags_valid(
|
912
|
+
static int are_write_flags_valid(uint32_t flags) {
|
904
913
|
/* check that only bits in GRPC_WRITE_(INTERNAL?)_USED_MASK are set */
|
905
|
-
const
|
914
|
+
const uint32_t allowed_write_positions =
|
906
915
|
(GRPC_WRITE_USED_MASK | GRPC_WRITE_INTERNAL_USED_MASK);
|
907
|
-
const
|
916
|
+
const uint32_t invalid_positions = ~allowed_write_positions;
|
908
917
|
return !(flags & invalid_positions);
|
909
918
|
}
|
910
919
|
|
@@ -912,8 +921,7 @@ static batch_control *allocate_batch_control(grpc_call *call) {
|
|
912
921
|
size_t i;
|
913
922
|
for (i = 0; i < MAX_CONCURRENT_BATCHES; i++) {
|
914
923
|
if ((call->used_batches & (1 << i)) == 0) {
|
915
|
-
call->used_batches =
|
916
|
-
(gpr_uint8)(call->used_batches | (gpr_uint8)(1 << i));
|
924
|
+
call->used_batches = (uint8_t)(call->used_batches | (uint8_t)(1 << i));
|
917
925
|
return &call->active_batches[i];
|
918
926
|
}
|
919
927
|
}
|
@@ -925,8 +933,8 @@ static void finish_batch_completion(grpc_exec_ctx *exec_ctx, void *user_data,
|
|
925
933
|
batch_control *bctl = user_data;
|
926
934
|
grpc_call *call = bctl->call;
|
927
935
|
gpr_mu_lock(&call->mu);
|
928
|
-
call->used_batches = (
|
929
|
-
call->used_batches & ~(
|
936
|
+
call->used_batches = (uint8_t)(
|
937
|
+
call->used_batches & ~(uint8_t)(1 << (bctl - call->active_batches)));
|
930
938
|
gpr_mu_unlock(&call->mu);
|
931
939
|
GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "completion");
|
932
940
|
}
|
@@ -935,11 +943,11 @@ static void post_batch_completion(grpc_exec_ctx *exec_ctx,
|
|
935
943
|
batch_control *bctl) {
|
936
944
|
grpc_call *call = bctl->call;
|
937
945
|
if (bctl->is_notify_tag_closure) {
|
938
|
-
grpc_exec_ctx_enqueue(exec_ctx, bctl->notify_tag, bctl->success);
|
946
|
+
grpc_exec_ctx_enqueue(exec_ctx, bctl->notify_tag, bctl->success, NULL);
|
939
947
|
gpr_mu_lock(&call->mu);
|
940
948
|
bctl->call->used_batches =
|
941
|
-
(
|
942
|
-
|
949
|
+
(uint8_t)(bctl->call->used_batches &
|
950
|
+
~(uint8_t)(1 << (bctl - bctl->call->active_batches)));
|
943
951
|
gpr_mu_unlock(&call->mu);
|
944
952
|
GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "completion");
|
945
953
|
} else {
|
@@ -956,7 +964,7 @@ static void continue_receiving_slices(grpc_exec_ctx *exec_ctx,
|
|
956
964
|
(*call->receiving_buffer)->data.raw.slice_buffer.length;
|
957
965
|
if (remaining == 0) {
|
958
966
|
call->receiving_message = 0;
|
959
|
-
grpc_byte_stream_destroy(call->receiving_stream);
|
967
|
+
grpc_byte_stream_destroy(exec_ctx, call->receiving_stream);
|
960
968
|
call->receiving_stream = NULL;
|
961
969
|
if (gpr_unref(&bctl->steps_to_complete)) {
|
962
970
|
post_batch_completion(exec_ctx, bctl);
|
@@ -975,18 +983,114 @@ static void continue_receiving_slices(grpc_exec_ctx *exec_ctx,
|
|
975
983
|
}
|
976
984
|
|
977
985
|
static void receiving_slice_ready(grpc_exec_ctx *exec_ctx, void *bctlp,
|
978
|
-
|
986
|
+
bool success) {
|
987
|
+
batch_control *bctl = bctlp;
|
988
|
+
grpc_call *call = bctl->call;
|
989
|
+
|
990
|
+
if (success) {
|
991
|
+
gpr_slice_buffer_add(&(*call->receiving_buffer)->data.raw.slice_buffer,
|
992
|
+
call->receiving_slice);
|
993
|
+
continue_receiving_slices(exec_ctx, bctl);
|
994
|
+
} else {
|
995
|
+
grpc_byte_stream_destroy(exec_ctx, call->receiving_stream);
|
996
|
+
call->receiving_stream = NULL;
|
997
|
+
grpc_byte_buffer_destroy(*call->receiving_buffer);
|
998
|
+
*call->receiving_buffer = NULL;
|
999
|
+
if (gpr_unref(&bctl->steps_to_complete)) {
|
1000
|
+
post_batch_completion(exec_ctx, bctl);
|
1001
|
+
}
|
1002
|
+
}
|
1003
|
+
}
|
1004
|
+
|
1005
|
+
static void process_data_after_md(grpc_exec_ctx *exec_ctx, batch_control *bctl,
|
1006
|
+
bool success) {
|
1007
|
+
grpc_call *call = bctl->call;
|
1008
|
+
if (call->receiving_stream == NULL) {
|
1009
|
+
*call->receiving_buffer = NULL;
|
1010
|
+
call->receiving_message = 0;
|
1011
|
+
if (gpr_unref(&bctl->steps_to_complete)) {
|
1012
|
+
post_batch_completion(exec_ctx, bctl);
|
1013
|
+
}
|
1014
|
+
} else if (call->receiving_stream->length >
|
1015
|
+
grpc_channel_get_max_message_length(call->channel)) {
|
1016
|
+
cancel_with_status(exec_ctx, call, GRPC_STATUS_INTERNAL,
|
1017
|
+
"Max message size exceeded");
|
1018
|
+
grpc_byte_stream_destroy(exec_ctx, call->receiving_stream);
|
1019
|
+
call->receiving_stream = NULL;
|
1020
|
+
*call->receiving_buffer = NULL;
|
1021
|
+
call->receiving_message = 0;
|
1022
|
+
if (gpr_unref(&bctl->steps_to_complete)) {
|
1023
|
+
post_batch_completion(exec_ctx, bctl);
|
1024
|
+
}
|
1025
|
+
} else {
|
1026
|
+
call->test_only_last_message_flags = call->receiving_stream->flags;
|
1027
|
+
if ((call->receiving_stream->flags & GRPC_WRITE_INTERNAL_COMPRESS) &&
|
1028
|
+
(call->compression_algorithm > GRPC_COMPRESS_NONE)) {
|
1029
|
+
*call->receiving_buffer = grpc_raw_compressed_byte_buffer_create(
|
1030
|
+
NULL, 0, call->compression_algorithm);
|
1031
|
+
} else {
|
1032
|
+
*call->receiving_buffer = grpc_raw_byte_buffer_create(NULL, 0);
|
1033
|
+
}
|
1034
|
+
grpc_closure_init(&call->receiving_slice_ready, receiving_slice_ready,
|
1035
|
+
bctl);
|
1036
|
+
continue_receiving_slices(exec_ctx, bctl);
|
1037
|
+
/* early out */
|
1038
|
+
return;
|
1039
|
+
}
|
1040
|
+
}
|
1041
|
+
|
1042
|
+
static void receiving_stream_ready(grpc_exec_ctx *exec_ctx, void *bctlp,
|
1043
|
+
bool success) {
|
1044
|
+
batch_control *bctl = bctlp;
|
1045
|
+
grpc_call *call = bctl->call;
|
1046
|
+
|
1047
|
+
gpr_mu_lock(&bctl->call->mu);
|
1048
|
+
if (bctl->call->has_initial_md_been_received) {
|
1049
|
+
gpr_mu_unlock(&bctl->call->mu);
|
1050
|
+
process_data_after_md(exec_ctx, bctlp, success);
|
1051
|
+
} else {
|
1052
|
+
call->saved_receiving_stream_ready_ctx.bctlp = bctlp;
|
1053
|
+
call->saved_receiving_stream_ready_ctx.success = success;
|
1054
|
+
gpr_mu_unlock(&bctl->call->mu);
|
1055
|
+
}
|
1056
|
+
}
|
1057
|
+
|
1058
|
+
static void receiving_initial_metadata_ready(grpc_exec_ctx *exec_ctx,
|
1059
|
+
void *bctlp, bool success) {
|
979
1060
|
batch_control *bctl = bctlp;
|
980
1061
|
grpc_call *call = bctl->call;
|
981
1062
|
|
982
|
-
|
983
|
-
|
984
|
-
|
1063
|
+
gpr_mu_lock(&call->mu);
|
1064
|
+
|
1065
|
+
grpc_metadata_batch *md =
|
1066
|
+
&call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */];
|
1067
|
+
grpc_metadata_batch_filter(md, recv_initial_filter, call);
|
1068
|
+
call->has_initial_md_been_received = true;
|
1069
|
+
|
1070
|
+
if (gpr_time_cmp(md->deadline, gpr_inf_future(md->deadline.clock_type)) !=
|
1071
|
+
0 &&
|
1072
|
+
!call->is_client) {
|
1073
|
+
GPR_TIMER_BEGIN("set_deadline_alarm", 0);
|
1074
|
+
set_deadline_alarm(exec_ctx, call, md->deadline);
|
1075
|
+
GPR_TIMER_END("set_deadline_alarm", 0);
|
1076
|
+
}
|
1077
|
+
|
1078
|
+
if (call->saved_receiving_stream_ready_ctx.bctlp != NULL) {
|
1079
|
+
grpc_closure *saved_rsr_closure = grpc_closure_create(
|
1080
|
+
receiving_stream_ready, call->saved_receiving_stream_ready_ctx.bctlp);
|
1081
|
+
grpc_exec_ctx_enqueue(exec_ctx, saved_rsr_closure,
|
1082
|
+
call->saved_receiving_stream_ready_ctx.success, NULL);
|
1083
|
+
call->saved_receiving_stream_ready_ctx.bctlp = NULL;
|
1084
|
+
}
|
1085
|
+
|
1086
|
+
gpr_mu_unlock(&call->mu);
|
985
1087
|
|
986
|
-
|
1088
|
+
if (gpr_unref(&bctl->steps_to_complete)) {
|
1089
|
+
post_batch_completion(exec_ctx, bctl);
|
1090
|
+
}
|
987
1091
|
}
|
988
1092
|
|
989
|
-
static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp,
|
1093
|
+
static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp, bool success) {
|
990
1094
|
batch_control *bctl = bctlp;
|
991
1095
|
grpc_call *call = bctl->call;
|
992
1096
|
grpc_call *child_call;
|
@@ -1004,19 +1108,6 @@ static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp, int success) {
|
|
1004
1108
|
grpc_metadata_batch_destroy(
|
1005
1109
|
&call->metadata_batch[0 /* is_receiving */][1 /* is_trailing */]);
|
1006
1110
|
}
|
1007
|
-
if (bctl->recv_initial_metadata) {
|
1008
|
-
grpc_metadata_batch *md =
|
1009
|
-
&call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */];
|
1010
|
-
grpc_metadata_batch_filter(md, recv_initial_filter, call);
|
1011
|
-
|
1012
|
-
if (gpr_time_cmp(md->deadline, gpr_inf_future(md->deadline.clock_type)) !=
|
1013
|
-
0 &&
|
1014
|
-
!call->is_client) {
|
1015
|
-
GPR_TIMER_BEGIN("set_deadline_alarm", 0);
|
1016
|
-
set_deadline_alarm(exec_ctx, call, md->deadline);
|
1017
|
-
GPR_TIMER_END("set_deadline_alarm", 0);
|
1018
|
-
}
|
1019
|
-
}
|
1020
1111
|
if (bctl->recv_final_op) {
|
1021
1112
|
grpc_metadata_batch *md =
|
1022
1113
|
&call->metadata_batch[1 /* is_receiving */][1 /* is_trailing */];
|
@@ -1058,43 +1149,6 @@ static void finish_batch(grpc_exec_ctx *exec_ctx, void *bctlp, int success) {
|
|
1058
1149
|
}
|
1059
1150
|
}
|
1060
1151
|
|
1061
|
-
static void receiving_stream_ready(grpc_exec_ctx *exec_ctx, void *bctlp,
|
1062
|
-
int success) {
|
1063
|
-
batch_control *bctl = bctlp;
|
1064
|
-
grpc_call *call = bctl->call;
|
1065
|
-
|
1066
|
-
if (call->receiving_stream == NULL) {
|
1067
|
-
*call->receiving_buffer = NULL;
|
1068
|
-
if (gpr_unref(&bctl->steps_to_complete)) {
|
1069
|
-
post_batch_completion(exec_ctx, bctl);
|
1070
|
-
}
|
1071
|
-
} else if (call->receiving_stream->length >
|
1072
|
-
grpc_channel_get_max_message_length(call->channel)) {
|
1073
|
-
cancel_with_status(exec_ctx, call, GRPC_STATUS_INTERNAL,
|
1074
|
-
"Max message size exceeded");
|
1075
|
-
grpc_byte_stream_destroy(call->receiving_stream);
|
1076
|
-
call->receiving_stream = NULL;
|
1077
|
-
*call->receiving_buffer = NULL;
|
1078
|
-
if (gpr_unref(&bctl->steps_to_complete)) {
|
1079
|
-
post_batch_completion(exec_ctx, bctl);
|
1080
|
-
}
|
1081
|
-
} else {
|
1082
|
-
call->test_only_last_message_flags = call->receiving_stream->flags;
|
1083
|
-
if ((call->receiving_stream->flags & GRPC_WRITE_INTERNAL_COMPRESS) &&
|
1084
|
-
(call->compression_algorithm > GRPC_COMPRESS_NONE)) {
|
1085
|
-
*call->receiving_buffer = grpc_raw_compressed_byte_buffer_create(
|
1086
|
-
NULL, 0, call->compression_algorithm);
|
1087
|
-
} else {
|
1088
|
-
*call->receiving_buffer = grpc_raw_byte_buffer_create(NULL, 0);
|
1089
|
-
}
|
1090
|
-
grpc_closure_init(&call->receiving_slice_ready, receiving_slice_ready,
|
1091
|
-
bctl);
|
1092
|
-
continue_receiving_slices(exec_ctx, bctl);
|
1093
|
-
/* early out */
|
1094
|
-
return;
|
1095
|
-
}
|
1096
|
-
}
|
1097
|
-
|
1098
1152
|
static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
|
1099
1153
|
grpc_call *call, const grpc_op *ops,
|
1100
1154
|
size_t nops, void *notify_tag,
|
@@ -1118,7 +1172,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
|
|
1118
1172
|
memset(bctl, 0, sizeof(*bctl));
|
1119
1173
|
bctl->call = call;
|
1120
1174
|
bctl->notify_tag = notify_tag;
|
1121
|
-
bctl->is_notify_tag_closure = (
|
1175
|
+
bctl->is_notify_tag_closure = (uint8_t)(is_notify_tag_closure != 0);
|
1122
1176
|
|
1123
1177
|
if (nops == 0) {
|
1124
1178
|
GRPC_CALL_INTERNAL_REF(call, "completion");
|
@@ -1241,7 +1295,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
|
|
1241
1295
|
GRPC_MDSTR_REF(call->send_extra_metadata[1].md->value));
|
1242
1296
|
}
|
1243
1297
|
set_status_code(call, STATUS_FROM_API_OVERRIDE,
|
1244
|
-
(
|
1298
|
+
(uint32_t)op->data.send_status_from_server.status);
|
1245
1299
|
if (!prepare_application_metadata(
|
1246
1300
|
call,
|
1247
1301
|
(int)op->data.send_status_from_server.trailing_metadata_count,
|
@@ -1264,9 +1318,14 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
|
|
1264
1318
|
}
|
1265
1319
|
call->received_initial_metadata = 1;
|
1266
1320
|
call->buffered_metadata[0] = op->data.recv_initial_metadata;
|
1321
|
+
grpc_closure_init(&call->receiving_initial_metadata_ready,
|
1322
|
+
receiving_initial_metadata_ready, bctl);
|
1267
1323
|
bctl->recv_initial_metadata = 1;
|
1268
1324
|
stream_op.recv_initial_metadata =
|
1269
1325
|
&call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */];
|
1326
|
+
stream_op.recv_initial_metadata_ready =
|
1327
|
+
&call->receiving_initial_metadata_ready;
|
1328
|
+
num_completion_callbacks_needed++;
|
1270
1329
|
break;
|
1271
1330
|
case GRPC_OP_RECV_MESSAGE:
|
1272
1331
|
/* Flag validation: currently allow no flags */
|
@@ -1362,7 +1421,7 @@ done_with_error:
|
|
1362
1421
|
}
|
1363
1422
|
if (bctl->send_message) {
|
1364
1423
|
call->sending_message = 0;
|
1365
|
-
grpc_byte_stream_destroy(&call->sending_stream.base);
|
1424
|
+
grpc_byte_stream_destroy(exec_ctx, &call->sending_stream.base);
|
1366
1425
|
}
|
1367
1426
|
if (bctl->send_final_op) {
|
1368
1427
|
call->sent_final_op = 0;
|
@@ -1421,4 +1480,4 @@ void *grpc_call_context_get(grpc_call *call, grpc_context_index elem) {
|
|
1421
1480
|
return call->context[elem].value;
|
1422
1481
|
}
|
1423
1482
|
|
1424
|
-
|
1483
|
+
uint8_t grpc_call_is_client(grpc_call *call) { return call->is_client; }
|