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
data/src/core/surface/call.h
CHANGED
@@ -49,7 +49,7 @@ typedef void (*grpc_ioreq_completion_func)(grpc_exec_ctx *exec_ctx,
|
|
49
49
|
void *user_data);
|
50
50
|
|
51
51
|
grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
|
52
|
-
|
52
|
+
uint32_t propagation_mask,
|
53
53
|
grpc_completion_queue *cq,
|
54
54
|
const void *server_transport_data,
|
55
55
|
grpc_mdelem **add_initial_metadata,
|
@@ -100,7 +100,7 @@ void *grpc_call_context_get(grpc_call *call, grpc_context_index elem);
|
|
100
100
|
#define GRPC_CALL_LOG_BATCH(sev, call, ops, nops, tag) \
|
101
101
|
if (grpc_api_trace) grpc_call_log_batch(sev, call, ops, nops, tag)
|
102
102
|
|
103
|
-
|
103
|
+
uint8_t grpc_call_is_client(grpc_call *call);
|
104
104
|
|
105
105
|
#ifdef __cplusplus
|
106
106
|
}
|
@@ -49,13 +49,13 @@ grpc_compression_algorithm grpc_call_test_only_get_compression_algorithm(
|
|
49
49
|
/** Return the message flags from \a call.
|
50
50
|
*
|
51
51
|
* \warning This function should \b only be used in test code. */
|
52
|
-
|
52
|
+
uint32_t grpc_call_test_only_get_message_flags(grpc_call *call);
|
53
53
|
|
54
54
|
/** Returns a bitset for the encodings (compression algorithms) supported by \a
|
55
55
|
* call's peer.
|
56
56
|
*
|
57
57
|
* To be indexed by grpc_compression_algorithm enum values. */
|
58
|
-
|
58
|
+
uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call);
|
59
59
|
|
60
60
|
#ifdef __cplusplus
|
61
61
|
}
|
data/src/core/surface/channel.c
CHANGED
@@ -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
|
@@ -63,7 +63,7 @@ typedef struct registered_call {
|
|
63
63
|
|
64
64
|
struct grpc_channel {
|
65
65
|
int is_client;
|
66
|
-
|
66
|
+
uint32_t max_message_length;
|
67
67
|
grpc_mdelem *default_authority;
|
68
68
|
|
69
69
|
gpr_mu registered_call_mu;
|
@@ -80,7 +80,7 @@ struct grpc_channel {
|
|
80
80
|
/* the protobuf library will (by default) start warning at 100megs */
|
81
81
|
#define DEFAULT_MAX_MESSAGE_LENGTH (100 * 1024 * 1024)
|
82
82
|
|
83
|
-
static void destroy_channel(grpc_exec_ctx *exec_ctx, void *arg,
|
83
|
+
static void destroy_channel(grpc_exec_ctx *exec_ctx, void *arg, bool success);
|
84
84
|
|
85
85
|
grpc_channel *grpc_channel_create_from_filters(
|
86
86
|
grpc_exec_ctx *exec_ctx, const char *target,
|
@@ -108,7 +108,7 @@ grpc_channel *grpc_channel_create_from_filters(
|
|
108
108
|
gpr_log(GPR_ERROR, "%s ignored: it must be >= 0",
|
109
109
|
GRPC_ARG_MAX_MESSAGE_LENGTH);
|
110
110
|
} else {
|
111
|
-
channel->max_message_length = (
|
111
|
+
channel->max_message_length = (uint32_t)args->args[i].value.integer;
|
112
112
|
}
|
113
113
|
} else if (0 == strcmp(args->args[i].key, GRPC_ARG_DEFAULT_AUTHORITY)) {
|
114
114
|
if (args->args[i].type != GRPC_ARG_STRING) {
|
@@ -166,7 +166,7 @@ char *grpc_channel_get_target(grpc_channel *channel) {
|
|
166
166
|
}
|
167
167
|
|
168
168
|
static grpc_call *grpc_channel_create_call_internal(
|
169
|
-
grpc_channel *channel, grpc_call *parent_call,
|
169
|
+
grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
|
170
170
|
grpc_completion_queue *cq, grpc_mdelem *path_mdelem,
|
171
171
|
grpc_mdelem *authority_mdelem, gpr_timespec deadline) {
|
172
172
|
grpc_mdelem *send_metadata[2];
|
@@ -187,7 +187,7 @@ static grpc_call *grpc_channel_create_call_internal(
|
|
187
187
|
|
188
188
|
grpc_call *grpc_channel_create_call(grpc_channel *channel,
|
189
189
|
grpc_call *parent_call,
|
190
|
-
|
190
|
+
uint32_t propagation_mask,
|
191
191
|
grpc_completion_queue *cq,
|
192
192
|
const char *method, const char *host,
|
193
193
|
gpr_timespec deadline, void *reserved) {
|
@@ -231,7 +231,7 @@ void *grpc_channel_register_call(grpc_channel *channel, const char *method,
|
|
231
231
|
}
|
232
232
|
|
233
233
|
grpc_call *grpc_channel_create_registered_call(
|
234
|
-
grpc_channel *channel, grpc_call *parent_call,
|
234
|
+
grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
|
235
235
|
grpc_completion_queue *completion_queue, void *registered_call_handle,
|
236
236
|
gpr_timespec deadline, void *reserved) {
|
237
237
|
registered_call *rc = registered_call_handle;
|
@@ -268,7 +268,7 @@ void grpc_channel_internal_unref(grpc_exec_ctx *exec_ctx,
|
|
268
268
|
}
|
269
269
|
|
270
270
|
static void destroy_channel(grpc_exec_ctx *exec_ctx, void *arg,
|
271
|
-
|
271
|
+
bool iomgr_success) {
|
272
272
|
grpc_channel *channel = arg;
|
273
273
|
grpc_channel_stack_destroy(exec_ctx, CHANNEL_STACK_FROM_CHANNEL(channel));
|
274
274
|
while (channel->registered_calls) {
|
@@ -322,6 +322,6 @@ grpc_mdelem *grpc_channel_get_reffed_status_elem(grpc_channel *channel, int i) {
|
|
322
322
|
grpc_mdstr_from_string(tmp));
|
323
323
|
}
|
324
324
|
|
325
|
-
|
325
|
+
uint32_t grpc_channel_get_max_message_length(grpc_channel *channel) {
|
326
326
|
return channel->max_message_length;
|
327
327
|
}
|
data/src/core/surface/channel.h
CHANGED
@@ -51,7 +51,7 @@ grpc_channel_stack *grpc_channel_get_channel_stack(grpc_channel *channel);
|
|
51
51
|
The returned elem is owned by the caller. */
|
52
52
|
grpc_mdelem *grpc_channel_get_reffed_status_elem(grpc_channel *channel,
|
53
53
|
int status_code);
|
54
|
-
|
54
|
+
uint32_t grpc_channel_get_max_message_length(grpc_channel *channel);
|
55
55
|
|
56
56
|
#ifdef GRPC_STREAM_REFCOUNT_DEBUG
|
57
57
|
void grpc_channel_internal_ref(grpc_channel *channel, const char *reason);
|
@@ -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
|
@@ -165,11 +165,11 @@ static void partly_done(grpc_exec_ctx *exec_ctx, state_watcher *w,
|
|
165
165
|
}
|
166
166
|
}
|
167
167
|
|
168
|
-
static void watch_complete(grpc_exec_ctx *exec_ctx, void *pw,
|
168
|
+
static void watch_complete(grpc_exec_ctx *exec_ctx, void *pw, bool success) {
|
169
169
|
partly_done(exec_ctx, pw, 1);
|
170
170
|
}
|
171
171
|
|
172
|
-
static void timeout_complete(grpc_exec_ctx *exec_ctx, void *pw,
|
172
|
+
static void timeout_complete(grpc_exec_ctx *exec_ctx, void *pw, bool success) {
|
173
173
|
partly_done(exec_ctx, pw, 0);
|
174
174
|
}
|
175
175
|
|
@@ -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
|
@@ -80,11 +80,11 @@ static void connector_unref(grpc_exec_ctx *exec_ctx, grpc_connector *con) {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
static void on_initial_connect_string_sent(grpc_exec_ctx *exec_ctx, void *arg,
|
83
|
-
|
83
|
+
bool success) {
|
84
84
|
connector_unref(exec_ctx, arg);
|
85
85
|
}
|
86
86
|
|
87
|
-
static void connected(grpc_exec_ctx *exec_ctx, void *arg,
|
87
|
+
static void connected(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
88
88
|
connector *c = arg;
|
89
89
|
grpc_closure *notify;
|
90
90
|
grpc_endpoint *tcp = c->tcp;
|
@@ -172,7 +172,7 @@ static grpc_subchannel *subchannel_factory_create_subchannel(
|
|
172
172
|
c->base.vtable = &connector_vtable;
|
173
173
|
gpr_ref_init(&c->refs, 1);
|
174
174
|
args->args = final_args;
|
175
|
-
s = grpc_subchannel_create(&c->base, args);
|
175
|
+
s = grpc_subchannel_create(exec_ctx, &c->base, args);
|
176
176
|
grpc_connector_unref(exec_ctx, &c->base);
|
177
177
|
grpc_channel_args_destroy(final_args);
|
178
178
|
return s;
|
@@ -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
|
@@ -53,7 +53,7 @@ static void ping_destroy(grpc_exec_ctx *exec_ctx, void *arg,
|
|
53
53
|
gpr_free(arg);
|
54
54
|
}
|
55
55
|
|
56
|
-
static void ping_done(grpc_exec_ctx *exec_ctx, void *arg,
|
56
|
+
static void ping_done(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
57
57
|
ping_result *pr = arg;
|
58
58
|
grpc_cq_end_op(exec_ctx, pr->cq, pr->tag, success, ping_destroy, pr,
|
59
59
|
&pr->completion_storage);
|
@@ -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
|
@@ -36,26 +36,29 @@
|
|
36
36
|
#include <stdio.h>
|
37
37
|
#include <string.h>
|
38
38
|
|
39
|
-
#include
|
39
|
+
#include <grpc/support/alloc.h>
|
40
|
+
#include <grpc/support/atm.h>
|
41
|
+
#include <grpc/support/log.h>
|
42
|
+
#include <grpc/support/time.h>
|
43
|
+
|
40
44
|
#include "src/core/iomgr/pollset.h"
|
45
|
+
#include "src/core/iomgr/timer.h"
|
46
|
+
#include "src/core/profiling/timers.h"
|
41
47
|
#include "src/core/support/string.h"
|
42
48
|
#include "src/core/surface/api_trace.h"
|
43
49
|
#include "src/core/surface/call.h"
|
44
50
|
#include "src/core/surface/event_string.h"
|
45
51
|
#include "src/core/surface/surface_trace.h"
|
46
|
-
#include "src/core/profiling/timers.h"
|
47
|
-
#include <grpc/support/alloc.h>
|
48
|
-
#include <grpc/support/atm.h>
|
49
|
-
#include <grpc/support/log.h>
|
50
|
-
#include <grpc/support/time.h>
|
51
52
|
|
52
53
|
typedef struct {
|
53
|
-
grpc_pollset_worker
|
54
|
+
grpc_pollset_worker **worker;
|
54
55
|
void *tag;
|
55
56
|
} plucker;
|
56
57
|
|
57
58
|
/* Completion queue structure */
|
58
59
|
struct grpc_completion_queue {
|
60
|
+
/** owned by pollset */
|
61
|
+
gpr_mu *mu;
|
59
62
|
/** completed events */
|
60
63
|
grpc_cq_completion completed_head;
|
61
64
|
grpc_cq_completion *completed_tail;
|
@@ -63,8 +66,6 @@ struct grpc_completion_queue {
|
|
63
66
|
gpr_refcount pending_events;
|
64
67
|
/** Once owning_refs drops to zero, we will destroy the cq */
|
65
68
|
gpr_refcount owning_refs;
|
66
|
-
/** the set of low level i/o things that concern this cq */
|
67
|
-
grpc_pollset pollset;
|
68
69
|
/** 0 initially, 1 once we've begun shutting down */
|
69
70
|
int shutdown;
|
70
71
|
int shutdown_called;
|
@@ -82,11 +83,13 @@ struct grpc_completion_queue {
|
|
82
83
|
grpc_completion_queue *next_free;
|
83
84
|
};
|
84
85
|
|
86
|
+
#define POLLSET_FROM_CQ(cq) ((grpc_pollset *)(cq + 1))
|
87
|
+
|
85
88
|
static gpr_mu g_freelist_mu;
|
86
89
|
grpc_completion_queue *g_freelist;
|
87
90
|
|
88
91
|
static void on_pollset_shutdown_done(grpc_exec_ctx *exec_ctx, void *cc,
|
89
|
-
|
92
|
+
bool success);
|
90
93
|
|
91
94
|
void grpc_cq_global_init(void) { gpr_mu_init(&g_freelist_mu); }
|
92
95
|
|
@@ -94,7 +97,7 @@ void grpc_cq_global_shutdown(void) {
|
|
94
97
|
gpr_mu_destroy(&g_freelist_mu);
|
95
98
|
while (g_freelist) {
|
96
99
|
grpc_completion_queue *next = g_freelist->next_free;
|
97
|
-
grpc_pollset_destroy(
|
100
|
+
grpc_pollset_destroy(POLLSET_FROM_CQ(g_freelist));
|
98
101
|
#ifndef NDEBUG
|
99
102
|
gpr_free(g_freelist->outstanding_tags);
|
100
103
|
#endif
|
@@ -124,8 +127,8 @@ grpc_completion_queue *grpc_completion_queue_create(void *reserved) {
|
|
124
127
|
if (g_freelist == NULL) {
|
125
128
|
gpr_mu_unlock(&g_freelist_mu);
|
126
129
|
|
127
|
-
cc = gpr_malloc(sizeof(grpc_completion_queue));
|
128
|
-
grpc_pollset_init(&cc->
|
130
|
+
cc = gpr_malloc(sizeof(grpc_completion_queue) + grpc_pollset_size());
|
131
|
+
grpc_pollset_init(POLLSET_FROM_CQ(cc), &cc->mu);
|
129
132
|
#ifndef NDEBUG
|
130
133
|
cc->outstanding_tags = NULL;
|
131
134
|
cc->outstanding_tag_capacity = 0;
|
@@ -142,7 +145,7 @@ grpc_completion_queue *grpc_completion_queue_create(void *reserved) {
|
|
142
145
|
/* One for destroy(), one for pollset_shutdown */
|
143
146
|
gpr_ref_init(&cc->owning_refs, 2);
|
144
147
|
cc->completed_tail = &cc->completed_head;
|
145
|
-
cc->completed_head.next = (
|
148
|
+
cc->completed_head.next = (uintptr_t)cc->completed_tail;
|
146
149
|
cc->shutdown = 0;
|
147
150
|
cc->shutdown_called = 0;
|
148
151
|
cc->is_server_cq = 0;
|
@@ -169,7 +172,7 @@ void grpc_cq_internal_ref(grpc_completion_queue *cc) {
|
|
169
172
|
}
|
170
173
|
|
171
174
|
static void on_pollset_shutdown_done(grpc_exec_ctx *exec_ctx, void *arg,
|
172
|
-
|
175
|
+
bool success) {
|
173
176
|
grpc_completion_queue *cc = arg;
|
174
177
|
GRPC_CQ_INTERNAL_UNREF(cc, "pollset_destroy");
|
175
178
|
}
|
@@ -183,8 +186,8 @@ void grpc_cq_internal_unref(grpc_completion_queue *cc, const char *reason,
|
|
183
186
|
void grpc_cq_internal_unref(grpc_completion_queue *cc) {
|
184
187
|
#endif
|
185
188
|
if (gpr_unref(&cc->owning_refs)) {
|
186
|
-
GPR_ASSERT(cc->completed_head.next == (
|
187
|
-
grpc_pollset_reset(
|
189
|
+
GPR_ASSERT(cc->completed_head.next == (uintptr_t)&cc->completed_head);
|
190
|
+
grpc_pollset_reset(POLLSET_FROM_CQ(cc));
|
188
191
|
gpr_mu_lock(&g_freelist_mu);
|
189
192
|
cc->next_free = g_freelist;
|
190
193
|
g_freelist = cc;
|
@@ -194,7 +197,7 @@ void grpc_cq_internal_unref(grpc_completion_queue *cc) {
|
|
194
197
|
|
195
198
|
void grpc_cq_begin_op(grpc_completion_queue *cc, void *tag) {
|
196
199
|
#ifndef NDEBUG
|
197
|
-
gpr_mu_lock(
|
200
|
+
gpr_mu_lock(cc->mu);
|
198
201
|
GPR_ASSERT(!cc->shutdown_called);
|
199
202
|
if (cc->outstanding_tag_count == cc->outstanding_tag_capacity) {
|
200
203
|
cc->outstanding_tag_capacity = GPR_MAX(4, 2 * cc->outstanding_tag_capacity);
|
@@ -203,7 +206,7 @@ void grpc_cq_begin_op(grpc_completion_queue *cc, void *tag) {
|
|
203
206
|
cc->outstanding_tag_capacity);
|
204
207
|
}
|
205
208
|
cc->outstanding_tags[cc->outstanding_tag_count++] = tag;
|
206
|
-
gpr_mu_unlock(
|
209
|
+
gpr_mu_unlock(cc->mu);
|
207
210
|
#endif
|
208
211
|
gpr_ref(&cc->pending_events);
|
209
212
|
}
|
@@ -229,9 +232,9 @@ void grpc_cq_end_op(grpc_exec_ctx *exec_ctx, grpc_completion_queue *cc,
|
|
229
232
|
storage->done = done;
|
230
233
|
storage->done_arg = done_arg;
|
231
234
|
storage->next =
|
232
|
-
((
|
235
|
+
((uintptr_t)&cc->completed_head) | ((uintptr_t)(success != 0));
|
233
236
|
|
234
|
-
gpr_mu_lock(
|
237
|
+
gpr_mu_lock(cc->mu);
|
235
238
|
#ifndef NDEBUG
|
236
239
|
for (i = 0; i < (int)cc->outstanding_tag_count; i++) {
|
237
240
|
if (cc->outstanding_tags[i] == tag) {
|
@@ -247,26 +250,27 @@ void grpc_cq_end_op(grpc_exec_ctx *exec_ctx, grpc_completion_queue *cc,
|
|
247
250
|
shutdown = gpr_unref(&cc->pending_events);
|
248
251
|
if (!shutdown) {
|
249
252
|
cc->completed_tail->next =
|
250
|
-
((
|
253
|
+
((uintptr_t)storage) | (1u & (uintptr_t)cc->completed_tail->next);
|
251
254
|
cc->completed_tail = storage;
|
252
255
|
pluck_worker = NULL;
|
253
256
|
for (i = 0; i < cc->num_pluckers; i++) {
|
254
257
|
if (cc->pluckers[i].tag == tag) {
|
255
|
-
pluck_worker = cc->pluckers[i].worker;
|
258
|
+
pluck_worker = *cc->pluckers[i].worker;
|
256
259
|
break;
|
257
260
|
}
|
258
261
|
}
|
259
|
-
grpc_pollset_kick(
|
260
|
-
gpr_mu_unlock(
|
262
|
+
grpc_pollset_kick(POLLSET_FROM_CQ(cc), pluck_worker);
|
263
|
+
gpr_mu_unlock(cc->mu);
|
261
264
|
} else {
|
262
265
|
cc->completed_tail->next =
|
263
|
-
((
|
266
|
+
((uintptr_t)storage) | (1u & (uintptr_t)cc->completed_tail->next);
|
264
267
|
cc->completed_tail = storage;
|
265
268
|
GPR_ASSERT(!cc->shutdown);
|
266
269
|
GPR_ASSERT(cc->shutdown_called);
|
267
270
|
cc->shutdown = 1;
|
268
|
-
grpc_pollset_shutdown(exec_ctx,
|
269
|
-
|
271
|
+
grpc_pollset_shutdown(exec_ctx, POLLSET_FROM_CQ(cc),
|
272
|
+
&cc->pollset_shutdown_done);
|
273
|
+
gpr_mu_unlock(cc->mu);
|
270
274
|
}
|
271
275
|
|
272
276
|
GPR_TIMER_END("grpc_cq_end_op", 0);
|
@@ -275,7 +279,7 @@ void grpc_cq_end_op(grpc_exec_ctx *exec_ctx, grpc_completion_queue *cc,
|
|
275
279
|
grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
|
276
280
|
gpr_timespec deadline, void *reserved) {
|
277
281
|
grpc_event ret;
|
278
|
-
grpc_pollset_worker worker;
|
282
|
+
grpc_pollset_worker *worker = NULL;
|
279
283
|
int first_loop = 1;
|
280
284
|
gpr_timespec now;
|
281
285
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
@@ -294,15 +298,15 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
|
|
294
298
|
deadline = gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC);
|
295
299
|
|
296
300
|
GRPC_CQ_INTERNAL_REF(cc, "next");
|
297
|
-
gpr_mu_lock(
|
301
|
+
gpr_mu_lock(cc->mu);
|
298
302
|
for (;;) {
|
299
303
|
if (cc->completed_tail != &cc->completed_head) {
|
300
304
|
grpc_cq_completion *c = (grpc_cq_completion *)cc->completed_head.next;
|
301
|
-
cc->completed_head.next = c->next & ~(
|
305
|
+
cc->completed_head.next = c->next & ~(uintptr_t)1;
|
302
306
|
if (c == cc->completed_tail) {
|
303
307
|
cc->completed_tail = &cc->completed_head;
|
304
308
|
}
|
305
|
-
gpr_mu_unlock(
|
309
|
+
gpr_mu_unlock(cc->mu);
|
306
310
|
ret.type = GRPC_OP_COMPLETE;
|
307
311
|
ret.success = c->next & 1u;
|
308
312
|
ret.tag = c->tag;
|
@@ -310,20 +314,34 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
|
|
310
314
|
break;
|
311
315
|
}
|
312
316
|
if (cc->shutdown) {
|
313
|
-
gpr_mu_unlock(
|
317
|
+
gpr_mu_unlock(cc->mu);
|
314
318
|
memset(&ret, 0, sizeof(ret));
|
315
319
|
ret.type = GRPC_QUEUE_SHUTDOWN;
|
316
320
|
break;
|
317
321
|
}
|
318
322
|
now = gpr_now(GPR_CLOCK_MONOTONIC);
|
319
323
|
if (!first_loop && gpr_time_cmp(now, deadline) >= 0) {
|
320
|
-
gpr_mu_unlock(
|
324
|
+
gpr_mu_unlock(cc->mu);
|
321
325
|
memset(&ret, 0, sizeof(ret));
|
322
326
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
323
327
|
break;
|
324
328
|
}
|
325
329
|
first_loop = 0;
|
326
|
-
|
330
|
+
/* Check alarms - these are a global resource so we just ping
|
331
|
+
each time through on every pollset.
|
332
|
+
May update deadline to ensure timely wakeups.
|
333
|
+
TODO(ctiller): can this work be localized? */
|
334
|
+
gpr_timespec iteration_deadline = deadline;
|
335
|
+
if (grpc_timer_check(&exec_ctx, now, &iteration_deadline)) {
|
336
|
+
GPR_TIMER_MARK("alarm_triggered", 0);
|
337
|
+
gpr_mu_unlock(cc->mu);
|
338
|
+
grpc_exec_ctx_flush(&exec_ctx);
|
339
|
+
gpr_mu_lock(cc->mu);
|
340
|
+
continue;
|
341
|
+
} else {
|
342
|
+
grpc_pollset_work(&exec_ctx, POLLSET_FROM_CQ(cc), &worker, now,
|
343
|
+
iteration_deadline);
|
344
|
+
}
|
327
345
|
}
|
328
346
|
GRPC_SURFACE_TRACE_RETURNED_EVENT(cc, &ret);
|
329
347
|
GRPC_CQ_INTERNAL_UNREF(cc, "next");
|
@@ -335,7 +353,7 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
|
|
335
353
|
}
|
336
354
|
|
337
355
|
static int add_plucker(grpc_completion_queue *cc, void *tag,
|
338
|
-
grpc_pollset_worker
|
356
|
+
grpc_pollset_worker **worker) {
|
339
357
|
if (cc->num_pluckers == GRPC_MAX_COMPLETION_QUEUE_PLUCKERS) {
|
340
358
|
return 0;
|
341
359
|
}
|
@@ -346,7 +364,7 @@ static int add_plucker(grpc_completion_queue *cc, void *tag,
|
|
346
364
|
}
|
347
365
|
|
348
366
|
static void del_plucker(grpc_completion_queue *cc, void *tag,
|
349
|
-
grpc_pollset_worker
|
367
|
+
grpc_pollset_worker **worker) {
|
350
368
|
int i;
|
351
369
|
for (i = 0; i < cc->num_pluckers; i++) {
|
352
370
|
if (cc->pluckers[i].tag == tag && cc->pluckers[i].worker == worker) {
|
@@ -363,7 +381,7 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
|
|
363
381
|
grpc_event ret;
|
364
382
|
grpc_cq_completion *c;
|
365
383
|
grpc_cq_completion *prev;
|
366
|
-
grpc_pollset_worker worker;
|
384
|
+
grpc_pollset_worker *worker = NULL;
|
367
385
|
gpr_timespec now;
|
368
386
|
int first_loop = 1;
|
369
387
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
@@ -382,18 +400,17 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
|
|
382
400
|
deadline = gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC);
|
383
401
|
|
384
402
|
GRPC_CQ_INTERNAL_REF(cc, "pluck");
|
385
|
-
gpr_mu_lock(
|
403
|
+
gpr_mu_lock(cc->mu);
|
386
404
|
for (;;) {
|
387
405
|
prev = &cc->completed_head;
|
388
|
-
while ((c = (grpc_cq_completion *)(prev->next & ~(
|
406
|
+
while ((c = (grpc_cq_completion *)(prev->next & ~(uintptr_t)1)) !=
|
389
407
|
&cc->completed_head) {
|
390
408
|
if (c->tag == tag) {
|
391
|
-
prev->next =
|
392
|
-
(prev->next & (gpr_uintptr)1) | (c->next & ~(gpr_uintptr)1);
|
409
|
+
prev->next = (prev->next & (uintptr_t)1) | (c->next & ~(uintptr_t)1);
|
393
410
|
if (c == cc->completed_tail) {
|
394
411
|
cc->completed_tail = prev;
|
395
412
|
}
|
396
|
-
gpr_mu_unlock(
|
413
|
+
gpr_mu_unlock(cc->mu);
|
397
414
|
ret.type = GRPC_OP_COMPLETE;
|
398
415
|
ret.success = c->next & 1u;
|
399
416
|
ret.tag = c->tag;
|
@@ -403,7 +420,7 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
|
|
403
420
|
prev = c;
|
404
421
|
}
|
405
422
|
if (cc->shutdown) {
|
406
|
-
gpr_mu_unlock(
|
423
|
+
gpr_mu_unlock(cc->mu);
|
407
424
|
memset(&ret, 0, sizeof(ret));
|
408
425
|
ret.type = GRPC_QUEUE_SHUTDOWN;
|
409
426
|
break;
|
@@ -413,7 +430,7 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
|
|
413
430
|
"Too many outstanding grpc_completion_queue_pluck calls: maximum "
|
414
431
|
"is %d",
|
415
432
|
GRPC_MAX_COMPLETION_QUEUE_PLUCKERS);
|
416
|
-
gpr_mu_unlock(
|
433
|
+
gpr_mu_unlock(cc->mu);
|
417
434
|
memset(&ret, 0, sizeof(ret));
|
418
435
|
/* TODO(ctiller): should we use a different result here */
|
419
436
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
@@ -422,13 +439,26 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
|
|
422
439
|
now = gpr_now(GPR_CLOCK_MONOTONIC);
|
423
440
|
if (!first_loop && gpr_time_cmp(now, deadline) >= 0) {
|
424
441
|
del_plucker(cc, tag, &worker);
|
425
|
-
gpr_mu_unlock(
|
442
|
+
gpr_mu_unlock(cc->mu);
|
426
443
|
memset(&ret, 0, sizeof(ret));
|
427
444
|
ret.type = GRPC_QUEUE_TIMEOUT;
|
428
445
|
break;
|
429
446
|
}
|
430
447
|
first_loop = 0;
|
431
|
-
|
448
|
+
/* Check alarms - these are a global resource so we just ping
|
449
|
+
each time through on every pollset.
|
450
|
+
May update deadline to ensure timely wakeups.
|
451
|
+
TODO(ctiller): can this work be localized? */
|
452
|
+
gpr_timespec iteration_deadline = deadline;
|
453
|
+
if (grpc_timer_check(&exec_ctx, now, &iteration_deadline)) {
|
454
|
+
GPR_TIMER_MARK("alarm_triggered", 0);
|
455
|
+
gpr_mu_unlock(cc->mu);
|
456
|
+
grpc_exec_ctx_flush(&exec_ctx);
|
457
|
+
gpr_mu_lock(cc->mu);
|
458
|
+
} else {
|
459
|
+
grpc_pollset_work(&exec_ctx, POLLSET_FROM_CQ(cc), &worker, now,
|
460
|
+
iteration_deadline);
|
461
|
+
}
|
432
462
|
del_plucker(cc, tag, &worker);
|
433
463
|
}
|
434
464
|
done:
|
@@ -447,9 +477,9 @@ void grpc_completion_queue_shutdown(grpc_completion_queue *cc) {
|
|
447
477
|
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
448
478
|
GPR_TIMER_BEGIN("grpc_completion_queue_shutdown", 0);
|
449
479
|
GRPC_API_TRACE("grpc_completion_queue_shutdown(cc=%p)", 1, (cc));
|
450
|
-
gpr_mu_lock(
|
480
|
+
gpr_mu_lock(cc->mu);
|
451
481
|
if (cc->shutdown_called) {
|
452
|
-
gpr_mu_unlock(
|
482
|
+
gpr_mu_unlock(cc->mu);
|
453
483
|
GPR_TIMER_END("grpc_completion_queue_shutdown", 0);
|
454
484
|
return;
|
455
485
|
}
|
@@ -457,9 +487,10 @@ void grpc_completion_queue_shutdown(grpc_completion_queue *cc) {
|
|
457
487
|
if (gpr_unref(&cc->pending_events)) {
|
458
488
|
GPR_ASSERT(!cc->shutdown);
|
459
489
|
cc->shutdown = 1;
|
460
|
-
grpc_pollset_shutdown(&exec_ctx,
|
490
|
+
grpc_pollset_shutdown(&exec_ctx, POLLSET_FROM_CQ(cc),
|
491
|
+
&cc->pollset_shutdown_done);
|
461
492
|
}
|
462
|
-
gpr_mu_unlock(
|
493
|
+
gpr_mu_unlock(cc->mu);
|
463
494
|
grpc_exec_ctx_finish(&exec_ctx);
|
464
495
|
GPR_TIMER_END("grpc_completion_queue_shutdown", 0);
|
465
496
|
}
|
@@ -473,7 +504,7 @@ void grpc_completion_queue_destroy(grpc_completion_queue *cc) {
|
|
473
504
|
}
|
474
505
|
|
475
506
|
grpc_pollset *grpc_cq_pollset(grpc_completion_queue *cc) {
|
476
|
-
return
|
507
|
+
return POLLSET_FROM_CQ(cc);
|
477
508
|
}
|
478
509
|
|
479
510
|
void grpc_cq_mark_server_cq(grpc_completion_queue *cc) { cc->is_server_cq = 1; }
|