grpc 0.12.0 → 0.13.0.pre1.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +5707 -22222
- data/include/grpc/byte_buffer.h +2 -83
- data/include/grpc/census.h +191 -121
- data/include/grpc/compression.h +14 -38
- data/include/grpc/grpc.h +88 -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 +373 -0
- data/include/grpc/impl/codegen/log.h +110 -0
- data/include/grpc/impl/codegen/port_platform.h +362 -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 +132 -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 +7 -7
- 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/src/boringssl/err_data.c +1252 -0
- data/src/core/census/context.c +492 -8
- data/src/core/census/grpc_filter.c +3 -3
- data/src/core/census/initialize.c +4 -7
- 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 +4 -3
- data/src/core/channel/channel_stack.c +1 -1
- data/src/core/channel/client_channel.c +18 -14
- 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 +2 -2
- data/src/core/channel/http_server_filter.c +9 -9
- data/src/core/channel/subchannel_call_holder.c +12 -10
- data/src/core/client_config/lb_policies/pick_first.c +49 -31
- data/src/core/client_config/lb_policies/round_robin.c +7 -7
- 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 +36 -25
- data/src/core/compression/algorithm.c +3 -3
- data/src/core/httpcli/format_request.c +1 -1
- data/src/core/httpcli/httpcli.c +5 -5
- data/src/core/httpcli/httpcli_security_connector.c +2 -3
- 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 +28 -17
- data/src/core/iomgr/fd_posix.h +7 -4
- data/src/core/iomgr/iocp_windows.c +6 -8
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
- data/src/core/iomgr/pollset_posix.c +15 -15
- data/src/core/iomgr/pollset_posix.h +4 -2
- data/src/core/iomgr/pollset_windows.c +3 -12
- 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 +7 -7
- data/src/core/iomgr/tcp_client_windows.c +4 -4
- data/src/core/iomgr/tcp_posix.c +14 -8
- 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 +8 -8
- data/src/core/iomgr/timer.h +1 -1
- 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 +2 -12
- data/src/core/iomgr/udp_server.h +1 -9
- data/src/core/iomgr/workqueue.h +2 -4
- data/src/core/iomgr/workqueue_posix.c +3 -3
- 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/security/base64.c +9 -9
- data/src/core/security/client_auth_filter.c +4 -4
- data/src/core/security/credentials.c +5 -5
- data/src/core/security/google_default_credentials.c +3 -3
- data/src/core/security/handshake.c +6 -5
- data/src/core/security/json_token.c +13 -7
- data/src/core/security/jwt_verifier.c +3 -2
- data/src/core/security/secure_endpoint.c +16 -16
- data/src/core/security/security_connector.c +47 -17
- data/src/core/security/security_connector.h +5 -5
- data/src/core/security/server_auth_filter.c +3 -3
- data/src/core/security/server_secure_chttp2.c +30 -31
- 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/cpu_posix.c +2 -2
- data/src/core/support/env_linux.c +12 -2
- data/src/core/support/env_win32.c +15 -7
- data/src/core/support/histogram.c +5 -5
- 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/wrap_memcpy.c +53 -0
- data/src/core/surface/alarm.c +83 -0
- data/src/core/surface/byte_buffer_reader.c +1 -1
- data/src/core/surface/call.c +78 -69
- 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 +3 -3
- data/src/core/surface/channel_ping.c +2 -2
- data/src/core/surface/completion_queue.c +11 -12
- data/src/core/surface/completion_queue.h +1 -1
- data/src/core/surface/init.c +7 -5
- data/src/core/surface/lame_client.c +3 -3
- data/src/core/surface/secure_channel_create.c +3 -3
- data/src/core/surface/server.c +28 -28
- 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 +3 -3
- 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 +97 -86
- data/src/core/transport/chttp2/parsing.c +25 -25
- data/src/core/transport/chttp2/stream_lists.c +26 -3
- 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 +26 -23
- data/src/core/transport/chttp2_transport.c +133 -92
- 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 +15 -16
- data/src/core/transport/static_metadata.h +5 -5
- data/src/core/transport/transport.c +5 -5
- data/src/core/transport/transport.h +14 -1
- data/src/core/tsi/fake_transport_security.c +7 -7
- data/src/core/tsi/ssl_transport_security.c +6 -4
- data/src/core/tsi/ssl_types.h +55 -0
- data/src/ruby/ext/grpc/extconf.rb +51 -14
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
- data/src/ruby/ext/grpc/rb_call.c +6 -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 +11 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -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/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/spec/pb/health/checker_spec.rb +1 -1
- 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/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 +492 -25
- data/Rakefile +0 -63
- data/src/ruby/lib/grpc/grpc.so +0 -0
@@ -54,23 +54,23 @@ typedef enum {
|
|
54
54
|
|
55
55
|
typedef struct {
|
56
56
|
grpc_chttp2_goaway_parse_state state;
|
57
|
-
|
58
|
-
|
57
|
+
uint32_t last_stream_id;
|
58
|
+
uint32_t error_code;
|
59
59
|
char *debug_data;
|
60
|
-
|
61
|
-
|
60
|
+
uint32_t debug_length;
|
61
|
+
uint32_t debug_pos;
|
62
62
|
} grpc_chttp2_goaway_parser;
|
63
63
|
|
64
64
|
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser *p);
|
65
65
|
void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser *p);
|
66
66
|
grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(
|
67
|
-
grpc_chttp2_goaway_parser *parser,
|
67
|
+
grpc_chttp2_goaway_parser *parser, uint32_t length, uint8_t flags);
|
68
68
|
grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
69
69
|
grpc_exec_ctx *exec_ctx, void *parser,
|
70
70
|
grpc_chttp2_transport_parsing *transport_parsing,
|
71
71
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
|
72
72
|
|
73
|
-
void grpc_chttp2_goaway_append(
|
73
|
+
void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
|
74
74
|
gpr_slice debug_data,
|
75
75
|
gpr_slice_buffer *slice_buffer);
|
76
76
|
|
@@ -39,9 +39,9 @@
|
|
39
39
|
#include <grpc/support/alloc.h>
|
40
40
|
#include <grpc/support/log.h>
|
41
41
|
|
42
|
-
gpr_slice grpc_chttp2_ping_create(
|
42
|
+
gpr_slice grpc_chttp2_ping_create(uint8_t ack, uint8_t *opaque_8bytes) {
|
43
43
|
gpr_slice slice = gpr_slice_malloc(9 + 8);
|
44
|
-
|
44
|
+
uint8_t *p = GPR_SLICE_START_PTR(slice);
|
45
45
|
|
46
46
|
*p++ = 0;
|
47
47
|
*p++ = 0;
|
@@ -58,7 +58,7 @@ gpr_slice grpc_chttp2_ping_create(gpr_uint8 ack, gpr_uint8 *opaque_8bytes) {
|
|
58
58
|
}
|
59
59
|
|
60
60
|
grpc_chttp2_parse_error grpc_chttp2_ping_parser_begin_frame(
|
61
|
-
grpc_chttp2_ping_parser *parser,
|
61
|
+
grpc_chttp2_ping_parser *parser, uint32_t length, uint8_t flags) {
|
62
62
|
if (flags & 0xfe || length != 8) {
|
63
63
|
gpr_log(GPR_ERROR, "invalid ping: length=%d, flags=%02x", length, flags);
|
64
64
|
return GRPC_CHTTP2_CONNECTION_ERROR;
|
@@ -72,9 +72,9 @@ grpc_chttp2_parse_error grpc_chttp2_ping_parser_parse(
|
|
72
72
|
grpc_exec_ctx *exec_ctx, void *parser,
|
73
73
|
grpc_chttp2_transport_parsing *transport_parsing,
|
74
74
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
75
|
-
|
76
|
-
|
77
|
-
|
75
|
+
uint8_t *const beg = GPR_SLICE_START_PTR(slice);
|
76
|
+
uint8_t *const end = GPR_SLICE_END_PTR(slice);
|
77
|
+
uint8_t *cur = beg;
|
78
78
|
grpc_chttp2_ping_parser *p = parser;
|
79
79
|
|
80
80
|
while (p->byte != 8 && cur != end) {
|
@@ -39,15 +39,15 @@
|
|
39
39
|
#include "src/core/transport/chttp2/frame.h"
|
40
40
|
|
41
41
|
typedef struct {
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
uint8_t byte;
|
43
|
+
uint8_t is_ack;
|
44
|
+
uint8_t opaque_8bytes[8];
|
45
45
|
} grpc_chttp2_ping_parser;
|
46
46
|
|
47
|
-
gpr_slice grpc_chttp2_ping_create(
|
47
|
+
gpr_slice grpc_chttp2_ping_create(uint8_t ack, uint8_t *opaque_8bytes);
|
48
48
|
|
49
49
|
grpc_chttp2_parse_error grpc_chttp2_ping_parser_begin_frame(
|
50
|
-
grpc_chttp2_ping_parser *parser,
|
50
|
+
grpc_chttp2_ping_parser *parser, uint32_t length, uint8_t flags);
|
51
51
|
grpc_chttp2_parse_error grpc_chttp2_ping_parser_parse(
|
52
52
|
grpc_exec_ctx *exec_ctx, void *parser,
|
53
53
|
grpc_chttp2_transport_parsing *transport_parsing,
|
@@ -38,29 +38,29 @@
|
|
38
38
|
|
39
39
|
#include "src/core/transport/chttp2/frame.h"
|
40
40
|
|
41
|
-
gpr_slice grpc_chttp2_rst_stream_create(
|
41
|
+
gpr_slice grpc_chttp2_rst_stream_create(uint32_t id, uint32_t code) {
|
42
42
|
gpr_slice slice = gpr_slice_malloc(13);
|
43
|
-
|
43
|
+
uint8_t *p = GPR_SLICE_START_PTR(slice);
|
44
44
|
|
45
45
|
*p++ = 0;
|
46
46
|
*p++ = 0;
|
47
47
|
*p++ = 4;
|
48
48
|
*p++ = GRPC_CHTTP2_FRAME_RST_STREAM;
|
49
49
|
*p++ = 0;
|
50
|
-
*p++ = (
|
51
|
-
*p++ = (
|
52
|
-
*p++ = (
|
53
|
-
*p++ = (
|
54
|
-
*p++ = (
|
55
|
-
*p++ = (
|
56
|
-
*p++ = (
|
57
|
-
*p++ = (
|
50
|
+
*p++ = (uint8_t)(id >> 24);
|
51
|
+
*p++ = (uint8_t)(id >> 16);
|
52
|
+
*p++ = (uint8_t)(id >> 8);
|
53
|
+
*p++ = (uint8_t)(id);
|
54
|
+
*p++ = (uint8_t)(code >> 24);
|
55
|
+
*p++ = (uint8_t)(code >> 16);
|
56
|
+
*p++ = (uint8_t)(code >> 8);
|
57
|
+
*p++ = (uint8_t)(code);
|
58
58
|
|
59
59
|
return slice;
|
60
60
|
}
|
61
61
|
|
62
62
|
grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_begin_frame(
|
63
|
-
grpc_chttp2_rst_stream_parser *parser,
|
63
|
+
grpc_chttp2_rst_stream_parser *parser, uint32_t length, uint8_t flags) {
|
64
64
|
if (length != 4) {
|
65
65
|
gpr_log(GPR_ERROR, "invalid rst_stream: length=%d, flags=%02x", length,
|
66
66
|
flags);
|
@@ -74,9 +74,9 @@ grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
|
|
74
74
|
grpc_exec_ctx *exec_ctx, void *parser,
|
75
75
|
grpc_chttp2_transport_parsing *transport_parsing,
|
76
76
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
uint8_t *const beg = GPR_SLICE_START_PTR(slice);
|
78
|
+
uint8_t *const end = GPR_SLICE_END_PTR(slice);
|
79
|
+
uint8_t *cur = beg;
|
80
80
|
grpc_chttp2_rst_stream_parser *p = parser;
|
81
81
|
|
82
82
|
while (p->byte != 4 && cur != end) {
|
@@ -89,11 +89,10 @@ grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
|
|
89
89
|
GPR_ASSERT(is_last);
|
90
90
|
stream_parsing->received_close = 1;
|
91
91
|
stream_parsing->saw_rst_stream = 1;
|
92
|
-
stream_parsing->rst_stream_reason =
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
(((gpr_uint32)p->reason_bytes[3]));
|
92
|
+
stream_parsing->rst_stream_reason = (((uint32_t)p->reason_bytes[0]) << 24) |
|
93
|
+
(((uint32_t)p->reason_bytes[1]) << 16) |
|
94
|
+
(((uint32_t)p->reason_bytes[2]) << 8) |
|
95
|
+
(((uint32_t)p->reason_bytes[3]));
|
97
96
|
}
|
98
97
|
|
99
98
|
return GRPC_CHTTP2_PARSE_OK;
|
@@ -39,14 +39,14 @@
|
|
39
39
|
#include "src/core/iomgr/exec_ctx.h"
|
40
40
|
|
41
41
|
typedef struct {
|
42
|
-
|
43
|
-
|
42
|
+
uint8_t byte;
|
43
|
+
uint8_t reason_bytes[4];
|
44
44
|
} grpc_chttp2_rst_stream_parser;
|
45
45
|
|
46
|
-
gpr_slice grpc_chttp2_rst_stream_create(
|
46
|
+
gpr_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code);
|
47
47
|
|
48
48
|
grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_begin_frame(
|
49
|
-
grpc_chttp2_rst_stream_parser *parser,
|
49
|
+
grpc_chttp2_rst_stream_parser *parser, uint32_t length, uint8_t flags);
|
50
50
|
grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
|
51
51
|
grpc_exec_ctx *exec_ctx, void *parser,
|
52
52
|
grpc_chttp2_transport_parsing *transport_parsing,
|
@@ -67,11 +67,10 @@ const grpc_chttp2_setting_parameters
|
|
67
67
|
GRPC_CHTTP2_PROTOCOL_ERROR},
|
68
68
|
};
|
69
69
|
|
70
|
-
static
|
71
|
-
|
72
|
-
*out++ = (
|
73
|
-
*out++ = (
|
74
|
-
*out++ = (gpr_uint8)(length);
|
70
|
+
static uint8_t *fill_header(uint8_t *out, uint32_t length, uint8_t flags) {
|
71
|
+
*out++ = (uint8_t)(length >> 16);
|
72
|
+
*out++ = (uint8_t)(length >> 8);
|
73
|
+
*out++ = (uint8_t)(length);
|
75
74
|
*out++ = GRPC_CHTTP2_FRAME_SETTINGS;
|
76
75
|
*out++ = flags;
|
77
76
|
*out++ = 0;
|
@@ -81,12 +80,12 @@ static gpr_uint8 *fill_header(gpr_uint8 *out, gpr_uint32 length,
|
|
81
80
|
return out;
|
82
81
|
}
|
83
82
|
|
84
|
-
gpr_slice grpc_chttp2_settings_create(
|
85
|
-
|
83
|
+
gpr_slice grpc_chttp2_settings_create(uint32_t *old, const uint32_t *new,
|
84
|
+
uint32_t force_mask, size_t count) {
|
86
85
|
size_t i;
|
87
|
-
|
86
|
+
uint32_t n = 0;
|
88
87
|
gpr_slice output;
|
89
|
-
|
88
|
+
uint8_t *p;
|
90
89
|
|
91
90
|
for (i = 0; i < count; i++) {
|
92
91
|
n += (new[i] != old[i] || (force_mask & (1u << i)) != 0);
|
@@ -98,12 +97,12 @@ gpr_slice grpc_chttp2_settings_create(gpr_uint32 *old, const gpr_uint32 *new,
|
|
98
97
|
for (i = 0; i < count; i++) {
|
99
98
|
if (new[i] != old[i] || (force_mask & (1u << i)) != 0) {
|
100
99
|
GPR_ASSERT(i);
|
101
|
-
*p++ = (
|
102
|
-
*p++ = (
|
103
|
-
*p++ = (
|
104
|
-
*p++ = (
|
105
|
-
*p++ = (
|
106
|
-
*p++ = (
|
100
|
+
*p++ = (uint8_t)(i >> 8);
|
101
|
+
*p++ = (uint8_t)(i);
|
102
|
+
*p++ = (uint8_t)(new[i] >> 24);
|
103
|
+
*p++ = (uint8_t)(new[i] >> 16);
|
104
|
+
*p++ = (uint8_t)(new[i] >> 8);
|
105
|
+
*p++ = (uint8_t)(new[i]);
|
107
106
|
old[i] = new[i];
|
108
107
|
}
|
109
108
|
}
|
@@ -120,11 +119,11 @@ gpr_slice grpc_chttp2_settings_ack_create(void) {
|
|
120
119
|
}
|
121
120
|
|
122
121
|
grpc_chttp2_parse_error grpc_chttp2_settings_parser_begin_frame(
|
123
|
-
grpc_chttp2_settings_parser *parser,
|
124
|
-
|
122
|
+
grpc_chttp2_settings_parser *parser, uint32_t length, uint8_t flags,
|
123
|
+
uint32_t *settings) {
|
125
124
|
parser->target_settings = settings;
|
126
125
|
memcpy(parser->incoming_settings, settings,
|
127
|
-
GRPC_CHTTP2_NUM_SETTINGS * sizeof(
|
126
|
+
GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
|
128
127
|
parser->is_ack = 0;
|
129
128
|
parser->state = GRPC_CHTTP2_SPS_ID0;
|
130
129
|
if (flags == GRPC_CHTTP2_FLAG_ACK) {
|
@@ -150,8 +149,8 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
150
149
|
grpc_chttp2_transport_parsing *transport_parsing,
|
151
150
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
152
151
|
grpc_chttp2_settings_parser *parser = p;
|
153
|
-
const
|
154
|
-
const
|
152
|
+
const uint8_t *cur = GPR_SLICE_START_PTR(slice);
|
153
|
+
const uint8_t *end = GPR_SLICE_END_PTR(slice);
|
155
154
|
|
156
155
|
if (parser->is_ack) {
|
157
156
|
return GRPC_CHTTP2_PARSE_OK;
|
@@ -165,13 +164,13 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
165
164
|
if (is_last) {
|
166
165
|
transport_parsing->settings_updated = 1;
|
167
166
|
memcpy(parser->target_settings, parser->incoming_settings,
|
168
|
-
GRPC_CHTTP2_NUM_SETTINGS * sizeof(
|
167
|
+
GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
|
169
168
|
gpr_slice_buffer_add(&transport_parsing->qbuf,
|
170
169
|
grpc_chttp2_settings_ack_create());
|
171
170
|
}
|
172
171
|
return GRPC_CHTTP2_PARSE_OK;
|
173
172
|
}
|
174
|
-
parser->id = (
|
173
|
+
parser->id = (uint16_t)(((uint16_t)*cur) << 8);
|
175
174
|
cur++;
|
176
175
|
/* fallthrough */
|
177
176
|
case GRPC_CHTTP2_SPS_ID1:
|
@@ -179,7 +178,7 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
179
178
|
parser->state = GRPC_CHTTP2_SPS_ID1;
|
180
179
|
return GRPC_CHTTP2_PARSE_OK;
|
181
180
|
}
|
182
|
-
parser->id = (
|
181
|
+
parser->id = (uint16_t)(parser->id | (*cur));
|
183
182
|
cur++;
|
184
183
|
/* fallthrough */
|
185
184
|
case GRPC_CHTTP2_SPS_VAL0:
|
@@ -187,7 +186,7 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
187
186
|
parser->state = GRPC_CHTTP2_SPS_VAL0;
|
188
187
|
return GRPC_CHTTP2_PARSE_OK;
|
189
188
|
}
|
190
|
-
parser->value = ((
|
189
|
+
parser->value = ((uint32_t)*cur) << 24;
|
191
190
|
cur++;
|
192
191
|
/* fallthrough */
|
193
192
|
case GRPC_CHTTP2_SPS_VAL1:
|
@@ -195,7 +194,7 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
195
194
|
parser->state = GRPC_CHTTP2_SPS_VAL1;
|
196
195
|
return GRPC_CHTTP2_PARSE_OK;
|
197
196
|
}
|
198
|
-
parser->value |= ((
|
197
|
+
parser->value |= ((uint32_t)*cur) << 16;
|
199
198
|
cur++;
|
200
199
|
/* fallthrough */
|
201
200
|
case GRPC_CHTTP2_SPS_VAL2:
|
@@ -203,7 +202,7 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
203
202
|
parser->state = GRPC_CHTTP2_SPS_VAL2;
|
204
203
|
return GRPC_CHTTP2_PARSE_OK;
|
205
204
|
}
|
206
|
-
parser->value |= ((
|
205
|
+
parser->value |= ((uint32_t)*cur) << 8;
|
207
206
|
cur++;
|
208
207
|
/* fallthrough */
|
209
208
|
case GRPC_CHTTP2_SPS_VAL3:
|
@@ -238,10 +237,11 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
|
238
237
|
if (parser->id == GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE &&
|
239
238
|
parser->incoming_settings[parser->id] != parser->value) {
|
240
239
|
transport_parsing->initial_window_update =
|
241
|
-
(
|
242
|
-
|
243
|
-
|
244
|
-
|
240
|
+
(int64_t)parser->value - parser->incoming_settings[parser->id];
|
241
|
+
if (grpc_http_trace) {
|
242
|
+
gpr_log(GPR_DEBUG, "adding %d for initial_window change",
|
243
|
+
(int)transport_parsing->initial_window_update);
|
244
|
+
}
|
245
245
|
}
|
246
246
|
parser->incoming_settings[parser->id] = parser->value;
|
247
247
|
if (grpc_http_trace) {
|
@@ -61,11 +61,11 @@ typedef enum {
|
|
61
61
|
|
62
62
|
typedef struct {
|
63
63
|
grpc_chttp2_settings_parse_state state;
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
64
|
+
uint32_t *target_settings;
|
65
|
+
uint8_t is_ack;
|
66
|
+
uint16_t id;
|
67
|
+
uint32_t value;
|
68
|
+
uint32_t incoming_settings[GRPC_CHTTP2_NUM_SETTINGS];
|
69
69
|
} grpc_chttp2_settings_parser;
|
70
70
|
|
71
71
|
typedef enum {
|
@@ -75,11 +75,11 @@ typedef enum {
|
|
75
75
|
|
76
76
|
typedef struct {
|
77
77
|
const char *name;
|
78
|
-
|
79
|
-
|
80
|
-
|
78
|
+
uint32_t default_value;
|
79
|
+
uint32_t min_value;
|
80
|
+
uint32_t max_value;
|
81
81
|
grpc_chttp2_invalid_value_behavior invalid_value_behavior;
|
82
|
-
|
82
|
+
uint32_t error_value;
|
83
83
|
} grpc_chttp2_setting_parameters;
|
84
84
|
|
85
85
|
/* HTTP/2 mandated connection setting parameters */
|
@@ -87,14 +87,14 @@ extern const grpc_chttp2_setting_parameters
|
|
87
87
|
grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS];
|
88
88
|
|
89
89
|
/* Create a settings frame by diffing old & new, and updating old to be new */
|
90
|
-
gpr_slice grpc_chttp2_settings_create(
|
91
|
-
|
90
|
+
gpr_slice grpc_chttp2_settings_create(uint32_t *old, const uint32_t *new,
|
91
|
+
uint32_t force_mask, size_t count);
|
92
92
|
/* Create an ack settings frame */
|
93
93
|
gpr_slice grpc_chttp2_settings_ack_create(void);
|
94
94
|
|
95
95
|
grpc_chttp2_parse_error grpc_chttp2_settings_parser_begin_frame(
|
96
|
-
grpc_chttp2_settings_parser *parser,
|
97
|
-
|
96
|
+
grpc_chttp2_settings_parser *parser, uint32_t length, uint8_t flags,
|
97
|
+
uint32_t *settings);
|
98
98
|
grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
|
99
99
|
grpc_exec_ctx *exec_ctx, void *parser,
|
100
100
|
grpc_chttp2_transport_parsing *transport_parsing,
|
@@ -36,10 +36,10 @@
|
|
36
36
|
|
37
37
|
#include <grpc/support/log.h>
|
38
38
|
|
39
|
-
gpr_slice grpc_chttp2_window_update_create(
|
40
|
-
|
39
|
+
gpr_slice grpc_chttp2_window_update_create(uint32_t id,
|
40
|
+
uint32_t window_update) {
|
41
41
|
gpr_slice slice = gpr_slice_malloc(13);
|
42
|
-
|
42
|
+
uint8_t *p = GPR_SLICE_START_PTR(slice);
|
43
43
|
|
44
44
|
GPR_ASSERT(window_update);
|
45
45
|
|
@@ -48,21 +48,20 @@ gpr_slice grpc_chttp2_window_update_create(gpr_uint32 id,
|
|
48
48
|
*p++ = 4;
|
49
49
|
*p++ = GRPC_CHTTP2_FRAME_WINDOW_UPDATE;
|
50
50
|
*p++ = 0;
|
51
|
-
*p++ = (
|
52
|
-
*p++ = (
|
53
|
-
*p++ = (
|
54
|
-
*p++ = (
|
55
|
-
*p++ = (
|
56
|
-
*p++ = (
|
57
|
-
*p++ = (
|
58
|
-
*p++ = (
|
51
|
+
*p++ = (uint8_t)(id >> 24);
|
52
|
+
*p++ = (uint8_t)(id >> 16);
|
53
|
+
*p++ = (uint8_t)(id >> 8);
|
54
|
+
*p++ = (uint8_t)(id);
|
55
|
+
*p++ = (uint8_t)(window_update >> 24);
|
56
|
+
*p++ = (uint8_t)(window_update >> 16);
|
57
|
+
*p++ = (uint8_t)(window_update >> 8);
|
58
|
+
*p++ = (uint8_t)(window_update);
|
59
59
|
|
60
60
|
return slice;
|
61
61
|
}
|
62
62
|
|
63
63
|
grpc_chttp2_parse_error grpc_chttp2_window_update_parser_begin_frame(
|
64
|
-
grpc_chttp2_window_update_parser *parser,
|
65
|
-
gpr_uint8 flags) {
|
64
|
+
grpc_chttp2_window_update_parser *parser, uint32_t length, uint8_t flags) {
|
66
65
|
if (flags || length != 4) {
|
67
66
|
gpr_log(GPR_ERROR, "invalid window update: length=%d, flags=%02x", length,
|
68
67
|
flags);
|
@@ -77,19 +76,19 @@ grpc_chttp2_parse_error grpc_chttp2_window_update_parser_parse(
|
|
77
76
|
grpc_exec_ctx *exec_ctx, void *parser,
|
78
77
|
grpc_chttp2_transport_parsing *transport_parsing,
|
79
78
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
80
|
-
|
81
|
-
|
82
|
-
|
79
|
+
uint8_t *const beg = GPR_SLICE_START_PTR(slice);
|
80
|
+
uint8_t *const end = GPR_SLICE_END_PTR(slice);
|
81
|
+
uint8_t *cur = beg;
|
83
82
|
grpc_chttp2_window_update_parser *p = parser;
|
84
83
|
|
85
84
|
while (p->byte != 4 && cur != end) {
|
86
|
-
p->amount |= ((
|
85
|
+
p->amount |= ((uint32_t)*cur) << (8 * (3 - p->byte));
|
87
86
|
cur++;
|
88
87
|
p->byte++;
|
89
88
|
}
|
90
89
|
|
91
90
|
if (p->byte == 4) {
|
92
|
-
|
91
|
+
uint32_t received_update = p->amount;
|
93
92
|
if (received_update == 0 || (received_update & 0x80000000u)) {
|
94
93
|
gpr_log(GPR_ERROR, "invalid window update bytes: %d", p->amount);
|
95
94
|
return GRPC_CHTTP2_CONNECTION_ERROR;
|
@@ -39,17 +39,15 @@
|
|
39
39
|
#include "src/core/transport/chttp2/frame.h"
|
40
40
|
|
41
41
|
typedef struct {
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
uint8_t byte;
|
43
|
+
uint8_t is_connection_update;
|
44
|
+
uint32_t amount;
|
45
45
|
} grpc_chttp2_window_update_parser;
|
46
46
|
|
47
|
-
gpr_slice grpc_chttp2_window_update_create(
|
48
|
-
gpr_uint32 window_delta);
|
47
|
+
gpr_slice grpc_chttp2_window_update_create(uint32_t id, uint32_t window_delta);
|
49
48
|
|
50
49
|
grpc_chttp2_parse_error grpc_chttp2_window_update_parser_begin_frame(
|
51
|
-
grpc_chttp2_window_update_parser *parser,
|
52
|
-
gpr_uint8 flags);
|
50
|
+
grpc_chttp2_window_update_parser *parser, uint32_t length, uint8_t flags);
|
53
51
|
grpc_chttp2_parse_error grpc_chttp2_window_update_parser_parse(
|
54
52
|
grpc_exec_ctx *exec_ctx, void *parser,
|
55
53
|
grpc_chttp2_transport_parsing *transport_parsing,
|