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
@@ -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
|
@@ -43,9 +43,6 @@ grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
|
|
43
43
|
const grpc_channel_filter *filters[3];
|
44
44
|
size_t num_filters = 0;
|
45
45
|
filters[num_filters++] = &grpc_compress_filter;
|
46
|
-
if (grpc_channel_args_is_census_enabled(args)) {
|
47
|
-
filters[num_filters++] = &grpc_server_census_filter;
|
48
|
-
}
|
49
46
|
GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved));
|
50
47
|
return grpc_server_create_from_filters(filters, num_filters, args);
|
51
48
|
}
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
#include <grpc/support/port_platform.h>
|
38
38
|
|
39
|
-
static int conforms_to(const char *s, size_t len, const
|
39
|
+
static int conforms_to(const char *s, size_t len, const uint8_t *legal_bits) {
|
40
40
|
const char *p = s;
|
41
41
|
const char *e = s + len;
|
42
42
|
for (; p != e; p++) {
|
@@ -49,7 +49,7 @@ static int conforms_to(const char *s, size_t len, const gpr_uint8 *legal_bits) {
|
|
49
49
|
}
|
50
50
|
|
51
51
|
int grpc_header_key_is_legal(const char *key, size_t length) {
|
52
|
-
static const
|
52
|
+
static const uint8_t legal_header_bits[256 / 8] = {
|
53
53
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xff, 0x03, 0x00, 0x00, 0x00,
|
54
54
|
0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
55
55
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
@@ -60,7 +60,7 @@ int grpc_header_key_is_legal(const char *key, size_t length) {
|
|
60
60
|
}
|
61
61
|
|
62
62
|
int grpc_header_nonbin_value_is_legal(const char *value, size_t length) {
|
63
|
-
static const
|
63
|
+
static const uint8_t legal_header_bits[256 / 8] = {
|
64
64
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
65
65
|
0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
66
66
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
data/src/core/surface/version.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
|
@@ -36,4 +36,4 @@
|
|
36
36
|
|
37
37
|
#include <grpc/grpc.h>
|
38
38
|
|
39
|
-
const char *grpc_version_string(void) { return "0.
|
39
|
+
const char *grpc_version_string(void) { return "0.13.0-pre1"; }
|
@@ -44,8 +44,9 @@ int grpc_byte_stream_next(grpc_exec_ctx *exec_ctx,
|
|
44
44
|
on_complete);
|
45
45
|
}
|
46
46
|
|
47
|
-
void grpc_byte_stream_destroy(
|
48
|
-
|
47
|
+
void grpc_byte_stream_destroy(grpc_exec_ctx *exec_ctx,
|
48
|
+
grpc_byte_stream *byte_stream) {
|
49
|
+
byte_stream->destroy(exec_ctx, byte_stream);
|
49
50
|
}
|
50
51
|
|
51
52
|
/* slice_buffer_stream */
|
@@ -61,13 +62,14 @@ static int slice_buffer_stream_next(grpc_exec_ctx *exec_ctx,
|
|
61
62
|
return 1;
|
62
63
|
}
|
63
64
|
|
64
|
-
static void slice_buffer_stream_destroy(
|
65
|
+
static void slice_buffer_stream_destroy(grpc_exec_ctx *exec_ctx,
|
66
|
+
grpc_byte_stream *byte_stream) {}
|
65
67
|
|
66
68
|
void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
|
67
69
|
gpr_slice_buffer *slice_buffer,
|
68
|
-
|
69
|
-
GPR_ASSERT(slice_buffer->length <=
|
70
|
-
stream->base.length = (
|
70
|
+
uint32_t flags) {
|
71
|
+
GPR_ASSERT(slice_buffer->length <= UINT32_MAX);
|
72
|
+
stream->base.length = (uint32_t)slice_buffer->length;
|
71
73
|
stream->base.flags = flags;
|
72
74
|
stream->base.next = slice_buffer_stream_next;
|
73
75
|
stream->base.destroy = slice_buffer_stream_destroy;
|
@@ -47,12 +47,12 @@ struct grpc_byte_stream;
|
|
47
47
|
typedef struct grpc_byte_stream grpc_byte_stream;
|
48
48
|
|
49
49
|
struct grpc_byte_stream {
|
50
|
-
|
51
|
-
|
50
|
+
uint32_t length;
|
51
|
+
uint32_t flags;
|
52
52
|
int (*next)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream,
|
53
53
|
gpr_slice *slice, size_t max_size_hint,
|
54
54
|
grpc_closure *on_complete);
|
55
|
-
void (*destroy)(grpc_byte_stream *byte_stream);
|
55
|
+
void (*destroy)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream);
|
56
56
|
};
|
57
57
|
|
58
58
|
/* returns 1 if the bytes are available immediately (in which case
|
@@ -72,7 +72,8 @@ int grpc_byte_stream_next(grpc_exec_ctx *exec_ctx,
|
|
72
72
|
grpc_byte_stream *byte_stream, gpr_slice *slice,
|
73
73
|
size_t max_size_hint, grpc_closure *on_complete);
|
74
74
|
|
75
|
-
void grpc_byte_stream_destroy(
|
75
|
+
void grpc_byte_stream_destroy(grpc_exec_ctx *exec_ctx,
|
76
|
+
grpc_byte_stream *byte_stream);
|
76
77
|
|
77
78
|
/* grpc_byte_stream that wraps a slice buffer */
|
78
79
|
typedef struct grpc_slice_buffer_stream {
|
@@ -83,6 +84,6 @@ typedef struct grpc_slice_buffer_stream {
|
|
83
84
|
|
84
85
|
void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
|
85
86
|
gpr_slice_buffer *slice_buffer,
|
86
|
-
|
87
|
+
uint32_t flags);
|
87
88
|
|
88
89
|
#endif /* GRPC_INTERNAL_CORE_TRANSPORT_BYTE_STREAM_H */
|
@@ -42,8 +42,8 @@ static const char alphabet[] =
|
|
42
42
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
43
43
|
|
44
44
|
typedef struct {
|
45
|
-
|
46
|
-
|
45
|
+
uint16_t bits;
|
46
|
+
uint8_t length;
|
47
47
|
} b64_huff_sym;
|
48
48
|
|
49
49
|
static const b64_huff_sym huff_alphabet[64] = {{0x21, 6},
|
@@ -111,7 +111,7 @@ static const b64_huff_sym huff_alphabet[64] = {{0x21, 6},
|
|
111
111
|
{0x7fb, 11},
|
112
112
|
{0x18, 6}};
|
113
113
|
|
114
|
-
static const
|
114
|
+
static const uint8_t tail_xtra[3] = {0, 2, 3};
|
115
115
|
|
116
116
|
gpr_slice grpc_chttp2_base64_encode(gpr_slice input) {
|
117
117
|
size_t input_length = GPR_SLICE_LENGTH(input);
|
@@ -119,7 +119,7 @@ gpr_slice grpc_chttp2_base64_encode(gpr_slice input) {
|
|
119
119
|
size_t tail_case = input_length % 3;
|
120
120
|
size_t output_length = input_triplets * 4 + tail_xtra[tail_case];
|
121
121
|
gpr_slice output = gpr_slice_malloc(output_length);
|
122
|
-
|
122
|
+
uint8_t *in = GPR_SLICE_START_PTR(input);
|
123
123
|
char *out = (char *)GPR_SLICE_START_PTR(output);
|
124
124
|
size_t i;
|
125
125
|
|
@@ -159,11 +159,11 @@ gpr_slice grpc_chttp2_base64_encode(gpr_slice input) {
|
|
159
159
|
|
160
160
|
gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
|
161
161
|
size_t nbits;
|
162
|
-
|
163
|
-
|
162
|
+
uint8_t *in;
|
163
|
+
uint8_t *out;
|
164
164
|
gpr_slice output;
|
165
|
-
|
166
|
-
|
165
|
+
uint32_t temp = 0;
|
166
|
+
uint32_t temp_length = 0;
|
167
167
|
|
168
168
|
nbits = 0;
|
169
169
|
for (in = GPR_SLICE_START_PTR(input); in != GPR_SLICE_END_PTR(input); ++in) {
|
@@ -180,7 +180,7 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
|
|
180
180
|
|
181
181
|
while (temp_length > 8) {
|
182
182
|
temp_length -= 8;
|
183
|
-
*out++ = (
|
183
|
+
*out++ = (uint8_t)(temp >> temp_length);
|
184
184
|
}
|
185
185
|
}
|
186
186
|
|
@@ -189,8 +189,8 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
|
|
189
189
|
* expanded form due to the "integral promotion" performed (see section
|
190
190
|
* 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
|
191
191
|
* is then required to avoid the compiler warning */
|
192
|
-
*out++ = (
|
193
|
-
|
192
|
+
*out++ = (uint8_t)((uint8_t)(temp << (8u - temp_length)) |
|
193
|
+
(uint8_t)(0xffu >> temp_length));
|
194
194
|
}
|
195
195
|
|
196
196
|
GPR_ASSERT(out == GPR_SLICE_END_PTR(output));
|
@@ -199,28 +199,28 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
|
|
199
199
|
}
|
200
200
|
|
201
201
|
typedef struct {
|
202
|
-
|
203
|
-
|
204
|
-
|
202
|
+
uint32_t temp;
|
203
|
+
uint32_t temp_length;
|
204
|
+
uint8_t *out;
|
205
205
|
} huff_out;
|
206
206
|
|
207
207
|
static void enc_flush_some(huff_out *out) {
|
208
208
|
while (out->temp_length > 8) {
|
209
209
|
out->temp_length -= 8;
|
210
|
-
*out->out++ = (
|
210
|
+
*out->out++ = (uint8_t)(out->temp >> out->temp_length);
|
211
211
|
}
|
212
212
|
}
|
213
213
|
|
214
|
-
static void enc_add2(huff_out *out,
|
214
|
+
static void enc_add2(huff_out *out, uint8_t a, uint8_t b) {
|
215
215
|
b64_huff_sym sa = huff_alphabet[a];
|
216
216
|
b64_huff_sym sb = huff_alphabet[b];
|
217
217
|
out->temp = (out->temp << (sa.length + sb.length)) |
|
218
|
-
((
|
219
|
-
out->temp_length += (
|
218
|
+
((uint32_t)sa.bits << sb.length) | sb.bits;
|
219
|
+
out->temp_length += (uint32_t)sa.length + (uint32_t)sb.length;
|
220
220
|
enc_flush_some(out);
|
221
221
|
}
|
222
222
|
|
223
|
-
static void enc_add1(huff_out *out,
|
223
|
+
static void enc_add1(huff_out *out, uint8_t a) {
|
224
224
|
b64_huff_sym sa = huff_alphabet[a];
|
225
225
|
out->temp = (out->temp << sa.length) | sa.bits;
|
226
226
|
out->temp_length += sa.length;
|
@@ -235,8 +235,8 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) {
|
|
235
235
|
size_t max_output_bits = 11 * output_syms;
|
236
236
|
size_t max_output_length = max_output_bits / 8 + (max_output_bits % 8 != 0);
|
237
237
|
gpr_slice output = gpr_slice_malloc(max_output_length);
|
238
|
-
|
239
|
-
|
238
|
+
uint8_t *in = GPR_SLICE_START_PTR(input);
|
239
|
+
uint8_t *start_out = GPR_SLICE_START_PTR(output);
|
240
240
|
huff_out out;
|
241
241
|
size_t i;
|
242
242
|
|
@@ -246,9 +246,9 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) {
|
|
246
246
|
|
247
247
|
/* encode full triplets */
|
248
248
|
for (i = 0; i < input_triplets; i++) {
|
249
|
-
enc_add2(&out, in[0] >> 2, (
|
250
|
-
enc_add2(&out, (
|
251
|
-
(
|
249
|
+
enc_add2(&out, in[0] >> 2, (uint8_t)((in[0] & 0x3) << 4) | (in[1] >> 4));
|
250
|
+
enc_add2(&out, (uint8_t)((in[1] & 0xf) << 2) | (in[2] >> 6),
|
251
|
+
(uint8_t)(in[2] & 0x3f));
|
252
252
|
in += 3;
|
253
253
|
}
|
254
254
|
|
@@ -257,13 +257,13 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) {
|
|
257
257
|
case 0:
|
258
258
|
break;
|
259
259
|
case 1:
|
260
|
-
enc_add2(&out, in[0] >> 2, (
|
260
|
+
enc_add2(&out, in[0] >> 2, (uint8_t)((in[0] & 0x3) << 4));
|
261
261
|
in += 1;
|
262
262
|
break;
|
263
263
|
case 2:
|
264
264
|
enc_add2(&out, in[0] >> 2,
|
265
|
-
(
|
266
|
-
enc_add1(&out, (
|
265
|
+
(uint8_t)((in[0] & 0x3) << 4) | (uint8_t)(in[1] >> 4));
|
266
|
+
enc_add1(&out, (uint8_t)((in[1] & 0xf) << 2));
|
267
267
|
in += 2;
|
268
268
|
break;
|
269
269
|
}
|
@@ -273,8 +273,8 @@ gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input) {
|
|
273
273
|
* expanded form due to the "integral promotion" performed (see section
|
274
274
|
* 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
|
275
275
|
* is then required to avoid the compiler warning */
|
276
|
-
*out.out++ = (
|
277
|
-
|
276
|
+
*out.out++ = (uint8_t)((uint8_t)(out.temp << (8u - out.temp_length)) |
|
277
|
+
(uint8_t)(0xffu >> out.temp_length));
|
278
278
|
}
|
279
279
|
|
280
280
|
GPR_ASSERT(out.out <= GPR_SLICE_END_PTR(output));
|
@@ -53,16 +53,17 @@ void grpc_chttp2_data_parser_destroy(grpc_exec_ctx *exec_ctx,
|
|
53
53
|
grpc_chttp2_data_parser *parser) {
|
54
54
|
grpc_byte_stream *bs;
|
55
55
|
if (parser->parsing_frame) {
|
56
|
-
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, parser->parsing_frame
|
56
|
+
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, parser->parsing_frame,
|
57
|
+
0, 1);
|
57
58
|
}
|
58
59
|
while (
|
59
60
|
(bs = grpc_chttp2_incoming_frame_queue_pop(&parser->incoming_frames))) {
|
60
|
-
grpc_byte_stream_destroy(bs);
|
61
|
+
grpc_byte_stream_destroy(exec_ctx, bs);
|
61
62
|
}
|
62
63
|
}
|
63
64
|
|
64
65
|
grpc_chttp2_parse_error grpc_chttp2_data_parser_begin_frame(
|
65
|
-
grpc_chttp2_data_parser *parser,
|
66
|
+
grpc_chttp2_data_parser *parser, uint8_t flags) {
|
66
67
|
if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
|
67
68
|
gpr_log(GPR_ERROR, "unsupported data flags: 0x%02x", flags);
|
68
69
|
return GRPC_CHTTP2_STREAM_ERROR;
|
@@ -110,24 +111,24 @@ grpc_byte_stream *grpc_chttp2_incoming_frame_queue_pop(
|
|
110
111
|
return out;
|
111
112
|
}
|
112
113
|
|
113
|
-
void grpc_chttp2_encode_data(
|
114
|
-
|
114
|
+
void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
|
115
|
+
uint32_t write_bytes, int is_eof,
|
115
116
|
gpr_slice_buffer *outbuf) {
|
116
117
|
gpr_slice hdr;
|
117
|
-
|
118
|
+
uint8_t *p;
|
118
119
|
|
119
120
|
hdr = gpr_slice_malloc(9);
|
120
121
|
p = GPR_SLICE_START_PTR(hdr);
|
121
122
|
GPR_ASSERT(write_bytes < (1 << 24));
|
122
|
-
*p++ = (
|
123
|
-
*p++ = (
|
124
|
-
*p++ = (
|
123
|
+
*p++ = (uint8_t)(write_bytes >> 16);
|
124
|
+
*p++ = (uint8_t)(write_bytes >> 8);
|
125
|
+
*p++ = (uint8_t)(write_bytes);
|
125
126
|
*p++ = GRPC_CHTTP2_FRAME_DATA;
|
126
127
|
*p++ = is_eof ? GRPC_CHTTP2_DATA_FLAG_END_STREAM : 0;
|
127
|
-
*p++ = (
|
128
|
-
*p++ = (
|
129
|
-
*p++ = (
|
130
|
-
*p++ = (
|
128
|
+
*p++ = (uint8_t)(id >> 24);
|
129
|
+
*p++ = (uint8_t)(id >> 16);
|
130
|
+
*p++ = (uint8_t)(id >> 8);
|
131
|
+
*p++ = (uint8_t)(id);
|
131
132
|
gpr_slice_buffer_add(outbuf, hdr);
|
132
133
|
|
133
134
|
gpr_slice_buffer_move_first(inbuf, write_bytes, outbuf);
|
@@ -137,11 +138,11 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
|
|
137
138
|
grpc_exec_ctx *exec_ctx, void *parser,
|
138
139
|
grpc_chttp2_transport_parsing *transport_parsing,
|
139
140
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
140
|
-
|
141
|
-
|
142
|
-
|
141
|
+
uint8_t *const beg = GPR_SLICE_START_PTR(slice);
|
142
|
+
uint8_t *const end = GPR_SLICE_END_PTR(slice);
|
143
|
+
uint8_t *cur = beg;
|
143
144
|
grpc_chttp2_data_parser *p = parser;
|
144
|
-
|
145
|
+
uint32_t message_flags;
|
145
146
|
grpc_chttp2_incoming_byte_stream *incoming_byte_stream;
|
146
147
|
|
147
148
|
if (is_last && p->is_last_frame) {
|
@@ -173,28 +174,28 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
|
|
173
174
|
}
|
174
175
|
/* fallthrough */
|
175
176
|
case GRPC_CHTTP2_DATA_FH_1:
|
176
|
-
p->frame_size = ((
|
177
|
+
p->frame_size = ((uint32_t)*cur) << 24;
|
177
178
|
if (++cur == end) {
|
178
179
|
p->state = GRPC_CHTTP2_DATA_FH_2;
|
179
180
|
return GRPC_CHTTP2_PARSE_OK;
|
180
181
|
}
|
181
182
|
/* fallthrough */
|
182
183
|
case GRPC_CHTTP2_DATA_FH_2:
|
183
|
-
p->frame_size |= ((
|
184
|
+
p->frame_size |= ((uint32_t)*cur) << 16;
|
184
185
|
if (++cur == end) {
|
185
186
|
p->state = GRPC_CHTTP2_DATA_FH_3;
|
186
187
|
return GRPC_CHTTP2_PARSE_OK;
|
187
188
|
}
|
188
189
|
/* fallthrough */
|
189
190
|
case GRPC_CHTTP2_DATA_FH_3:
|
190
|
-
p->frame_size |= ((
|
191
|
+
p->frame_size |= ((uint32_t)*cur) << 8;
|
191
192
|
if (++cur == end) {
|
192
193
|
p->state = GRPC_CHTTP2_DATA_FH_4;
|
193
194
|
return GRPC_CHTTP2_PARSE_OK;
|
194
195
|
}
|
195
196
|
/* fallthrough */
|
196
197
|
case GRPC_CHTTP2_DATA_FH_4:
|
197
|
-
p->frame_size |= ((
|
198
|
+
p->frame_size |= ((uint32_t)*cur);
|
198
199
|
p->state = GRPC_CHTTP2_DATA_FRAME;
|
199
200
|
++cur;
|
200
201
|
message_flags = 0;
|
@@ -214,20 +215,22 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
|
|
214
215
|
}
|
215
216
|
grpc_chttp2_list_add_parsing_seen_stream(transport_parsing,
|
216
217
|
stream_parsing);
|
217
|
-
if ((
|
218
|
+
if ((uint32_t)(end - cur) == p->frame_size) {
|
218
219
|
grpc_chttp2_incoming_byte_stream_push(
|
219
220
|
exec_ctx, p->parsing_frame,
|
220
221
|
gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
|
221
|
-
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, p->parsing_frame
|
222
|
+
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, p->parsing_frame, 1,
|
223
|
+
1);
|
222
224
|
p->parsing_frame = NULL;
|
223
225
|
p->state = GRPC_CHTTP2_DATA_FH_0;
|
224
226
|
return GRPC_CHTTP2_PARSE_OK;
|
225
|
-
} else if ((
|
227
|
+
} else if ((uint32_t)(end - cur) > p->frame_size) {
|
226
228
|
grpc_chttp2_incoming_byte_stream_push(
|
227
229
|
exec_ctx, p->parsing_frame,
|
228
230
|
gpr_slice_sub(slice, (size_t)(cur - beg),
|
229
231
|
(size_t)(cur + p->frame_size - beg)));
|
230
|
-
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, p->parsing_frame
|
232
|
+
grpc_chttp2_incoming_byte_stream_finished(exec_ctx, p->parsing_frame, 1,
|
233
|
+
1);
|
231
234
|
p->parsing_frame = NULL;
|
232
235
|
cur += p->frame_size;
|
233
236
|
goto fh_0; /* loop */
|
@@ -236,7 +239,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
|
|
236
239
|
exec_ctx, p->parsing_frame,
|
237
240
|
gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
|
238
241
|
GPR_ASSERT((size_t)(end - cur) <= p->frame_size);
|
239
|
-
p->frame_size -= (
|
242
|
+
p->frame_size -= (uint32_t)(end - cur);
|
240
243
|
return GRPC_CHTTP2_PARSE_OK;
|
241
244
|
}
|
242
245
|
}
|
@@ -61,9 +61,9 @@ typedef struct grpc_chttp2_incoming_frame_queue {
|
|
61
61
|
|
62
62
|
typedef struct {
|
63
63
|
grpc_chttp2_stream_state state;
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
uint8_t is_last_frame;
|
65
|
+
uint8_t frame_type;
|
66
|
+
uint32_t frame_size;
|
67
67
|
|
68
68
|
int is_frame_compressed;
|
69
69
|
grpc_chttp2_incoming_frame_queue incoming_frames;
|
@@ -85,7 +85,7 @@ void grpc_chttp2_data_parser_destroy(grpc_exec_ctx *exec_ctx,
|
|
85
85
|
|
86
86
|
/* start processing a new data frame */
|
87
87
|
grpc_chttp2_parse_error grpc_chttp2_data_parser_begin_frame(
|
88
|
-
grpc_chttp2_data_parser *parser,
|
88
|
+
grpc_chttp2_data_parser *parser, uint8_t flags);
|
89
89
|
|
90
90
|
/* handle a slice of a data frame - is_last indicates the last slice of a
|
91
91
|
frame */
|
@@ -94,8 +94,8 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
|
|
94
94
|
grpc_chttp2_transport_parsing *transport_parsing,
|
95
95
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
|
96
96
|
|
97
|
-
void grpc_chttp2_encode_data(
|
98
|
-
|
97
|
+
void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
|
98
|
+
uint32_t write_bytes, int is_eof,
|
99
99
|
gpr_slice_buffer *outbuf);
|
100
100
|
|
101
101
|
#endif /* GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_DATA_H */
|
@@ -48,7 +48,7 @@ void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser *p) {
|
|
48
48
|
}
|
49
49
|
|
50
50
|
grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(
|
51
|
-
grpc_chttp2_goaway_parser *p,
|
51
|
+
grpc_chttp2_goaway_parser *p, uint32_t length, uint8_t flags) {
|
52
52
|
if (length < 8) {
|
53
53
|
gpr_log(GPR_ERROR, "goaway frame too short (%d bytes)", length);
|
54
54
|
return GRPC_CHTTP2_CONNECTION_ERROR;
|
@@ -66,9 +66,9 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
66
66
|
grpc_exec_ctx *exec_ctx, void *parser,
|
67
67
|
grpc_chttp2_transport_parsing *transport_parsing,
|
68
68
|
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
|
69
|
-
|
70
|
-
|
71
|
-
|
69
|
+
uint8_t *const beg = GPR_SLICE_START_PTR(slice);
|
70
|
+
uint8_t *const end = GPR_SLICE_END_PTR(slice);
|
71
|
+
uint8_t *cur = beg;
|
72
72
|
grpc_chttp2_goaway_parser *p = parser;
|
73
73
|
|
74
74
|
switch (p->state) {
|
@@ -77,7 +77,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
77
77
|
p->state = GRPC_CHTTP2_GOAWAY_LSI0;
|
78
78
|
return GRPC_CHTTP2_PARSE_OK;
|
79
79
|
}
|
80
|
-
p->last_stream_id = ((
|
80
|
+
p->last_stream_id = ((uint32_t)*cur) << 24;
|
81
81
|
++cur;
|
82
82
|
/* fallthrough */
|
83
83
|
case GRPC_CHTTP2_GOAWAY_LSI1:
|
@@ -85,7 +85,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
85
85
|
p->state = GRPC_CHTTP2_GOAWAY_LSI1;
|
86
86
|
return GRPC_CHTTP2_PARSE_OK;
|
87
87
|
}
|
88
|
-
p->last_stream_id |= ((
|
88
|
+
p->last_stream_id |= ((uint32_t)*cur) << 16;
|
89
89
|
++cur;
|
90
90
|
/* fallthrough */
|
91
91
|
case GRPC_CHTTP2_GOAWAY_LSI2:
|
@@ -93,7 +93,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
93
93
|
p->state = GRPC_CHTTP2_GOAWAY_LSI2;
|
94
94
|
return GRPC_CHTTP2_PARSE_OK;
|
95
95
|
}
|
96
|
-
p->last_stream_id |= ((
|
96
|
+
p->last_stream_id |= ((uint32_t)*cur) << 8;
|
97
97
|
++cur;
|
98
98
|
/* fallthrough */
|
99
99
|
case GRPC_CHTTP2_GOAWAY_LSI3:
|
@@ -101,7 +101,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
101
101
|
p->state = GRPC_CHTTP2_GOAWAY_LSI3;
|
102
102
|
return GRPC_CHTTP2_PARSE_OK;
|
103
103
|
}
|
104
|
-
p->last_stream_id |= ((
|
104
|
+
p->last_stream_id |= ((uint32_t)*cur);
|
105
105
|
++cur;
|
106
106
|
/* fallthrough */
|
107
107
|
case GRPC_CHTTP2_GOAWAY_ERR0:
|
@@ -109,7 +109,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
109
109
|
p->state = GRPC_CHTTP2_GOAWAY_ERR0;
|
110
110
|
return GRPC_CHTTP2_PARSE_OK;
|
111
111
|
}
|
112
|
-
p->error_code = ((
|
112
|
+
p->error_code = ((uint32_t)*cur) << 24;
|
113
113
|
++cur;
|
114
114
|
/* fallthrough */
|
115
115
|
case GRPC_CHTTP2_GOAWAY_ERR1:
|
@@ -117,7 +117,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
117
117
|
p->state = GRPC_CHTTP2_GOAWAY_ERR1;
|
118
118
|
return GRPC_CHTTP2_PARSE_OK;
|
119
119
|
}
|
120
|
-
p->error_code |= ((
|
120
|
+
p->error_code |= ((uint32_t)*cur) << 16;
|
121
121
|
++cur;
|
122
122
|
/* fallthrough */
|
123
123
|
case GRPC_CHTTP2_GOAWAY_ERR2:
|
@@ -125,7 +125,7 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
125
125
|
p->state = GRPC_CHTTP2_GOAWAY_ERR2;
|
126
126
|
return GRPC_CHTTP2_PARSE_OK;
|
127
127
|
}
|
128
|
-
p->error_code |= ((
|
128
|
+
p->error_code |= ((uint32_t)*cur) << 8;
|
129
129
|
++cur;
|
130
130
|
/* fallthrough */
|
131
131
|
case GRPC_CHTTP2_GOAWAY_ERR3:
|
@@ -133,13 +133,13 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
133
133
|
p->state = GRPC_CHTTP2_GOAWAY_ERR3;
|
134
134
|
return GRPC_CHTTP2_PARSE_OK;
|
135
135
|
}
|
136
|
-
p->error_code |= ((
|
136
|
+
p->error_code |= ((uint32_t)*cur);
|
137
137
|
++cur;
|
138
138
|
/* fallthrough */
|
139
139
|
case GRPC_CHTTP2_GOAWAY_DEBUG:
|
140
140
|
memcpy(p->debug_data + p->debug_pos, cur, (size_t)(end - cur));
|
141
|
-
GPR_ASSERT((size_t)(end - cur) <
|
142
|
-
p->debug_pos += (
|
141
|
+
GPR_ASSERT((size_t)(end - cur) < UINT32_MAX - p->debug_pos);
|
142
|
+
p->debug_pos += (uint32_t)(end - cur);
|
143
143
|
p->state = GRPC_CHTTP2_GOAWAY_DEBUG;
|
144
144
|
if (is_last) {
|
145
145
|
transport_parsing->goaway_received = 1;
|
@@ -155,19 +155,19 @@ grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
|
|
155
155
|
GPR_UNREACHABLE_CODE(return GRPC_CHTTP2_CONNECTION_ERROR);
|
156
156
|
}
|
157
157
|
|
158
|
-
void grpc_chttp2_goaway_append(
|
158
|
+
void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
|
159
159
|
gpr_slice debug_data,
|
160
160
|
gpr_slice_buffer *slice_buffer) {
|
161
161
|
gpr_slice header = gpr_slice_malloc(9 + 4 + 4);
|
162
|
-
|
163
|
-
|
164
|
-
GPR_ASSERT(GPR_SLICE_LENGTH(debug_data) <
|
165
|
-
frame_length = 4 + 4 + (
|
162
|
+
uint8_t *p = GPR_SLICE_START_PTR(header);
|
163
|
+
uint32_t frame_length;
|
164
|
+
GPR_ASSERT(GPR_SLICE_LENGTH(debug_data) < UINT32_MAX - 4 - 4);
|
165
|
+
frame_length = 4 + 4 + (uint32_t)GPR_SLICE_LENGTH(debug_data);
|
166
166
|
|
167
167
|
/* frame header: length */
|
168
|
-
*p++ = (
|
169
|
-
*p++ = (
|
170
|
-
*p++ = (
|
168
|
+
*p++ = (uint8_t)(frame_length >> 16);
|
169
|
+
*p++ = (uint8_t)(frame_length >> 8);
|
170
|
+
*p++ = (uint8_t)(frame_length);
|
171
171
|
/* frame header: type */
|
172
172
|
*p++ = GRPC_CHTTP2_FRAME_GOAWAY;
|
173
173
|
/* frame header: flags */
|
@@ -178,15 +178,15 @@ void grpc_chttp2_goaway_append(gpr_uint32 last_stream_id, gpr_uint32 error_code,
|
|
178
178
|
*p++ = 0;
|
179
179
|
*p++ = 0;
|
180
180
|
/* payload: last stream id */
|
181
|
-
*p++ = (
|
182
|
-
*p++ = (
|
183
|
-
*p++ = (
|
184
|
-
*p++ = (
|
181
|
+
*p++ = (uint8_t)(last_stream_id >> 24);
|
182
|
+
*p++ = (uint8_t)(last_stream_id >> 16);
|
183
|
+
*p++ = (uint8_t)(last_stream_id >> 8);
|
184
|
+
*p++ = (uint8_t)(last_stream_id);
|
185
185
|
/* payload: error code */
|
186
|
-
*p++ = (
|
187
|
-
*p++ = (
|
188
|
-
*p++ = (
|
189
|
-
*p++ = (
|
186
|
+
*p++ = (uint8_t)(error_code >> 24);
|
187
|
+
*p++ = (uint8_t)(error_code >> 16);
|
188
|
+
*p++ = (uint8_t)(error_code >> 8);
|
189
|
+
*p++ = (uint8_t)(error_code);
|
190
190
|
GPR_ASSERT(p == GPR_SLICE_END_PTR(header));
|
191
191
|
gpr_slice_buffer_add(slice_buffer, header);
|
192
192
|
gpr_slice_buffer_add(slice_buffer, debug_data);
|