puma-plus-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ext/puma_plus_core/extconf.rb +85 -0
- data/go/cmd/puma-plus/main.go +472 -0
- data/go/go.mod +20 -0
- data/go/go.sum +38 -0
- data/go/internal/control/booted_test.go +97 -0
- data/go/internal/control/decide.go +427 -0
- data/go/internal/control/decide_test.go +526 -0
- data/go/internal/control/loop.go +343 -0
- data/go/internal/control/loop_test.go +228 -0
- data/go/internal/control/replay.go +121 -0
- data/go/internal/control/sim/cooldown_test.go +74 -0
- data/go/internal/control/sim/sim.go +599 -0
- data/go/internal/control/sim/sim_test.go +300 -0
- data/go/internal/frontend/acceptor.go +164 -0
- data/go/internal/frontend/altsvc.go +57 -0
- data/go/internal/frontend/altsvc_test.go +170 -0
- data/go/internal/frontend/bodypump.go +81 -0
- data/go/internal/frontend/env.go +224 -0
- data/go/internal/frontend/env_test.go +64 -0
- data/go/internal/frontend/handler.go +543 -0
- data/go/internal/frontend/handler_test.go +486 -0
- data/go/internal/frontend/hijack.go +108 -0
- data/go/internal/frontend/hijack_test.go +197 -0
- data/go/internal/frontend/hooks_test.go +283 -0
- data/go/internal/frontend/launcher_test.go +289 -0
- data/go/internal/frontend/listeners.go +196 -0
- data/go/internal/frontend/protocol_test.go +391 -0
- data/go/internal/frontend/ractor_shepherd.go +160 -0
- data/go/internal/frontend/ractor_smoke_test.go +168 -0
- data/go/internal/frontend/realcert_test.go +163 -0
- data/go/internal/frontend/rtbridge.go +410 -0
- data/go/internal/frontend/shepherd.go +188 -0
- data/go/internal/frontend/socket.go +37 -0
- data/go/internal/frontend/socketpair_test.go +34 -0
- data/go/internal/frontend/tlscert.go +184 -0
- data/go/internal/frontend/tlscert_test.go +81 -0
- data/go/internal/frontend/wscontrol.go +198 -0
- data/go/internal/metrics/collector.go +207 -0
- data/go/internal/metrics/endpoints.go +244 -0
- data/go/internal/metrics/gvl.go +136 -0
- data/go/internal/metrics/gvl_test.go +122 -0
- data/go/internal/metrics/hist.go +204 -0
- data/go/internal/metrics/hist_test.go +353 -0
- data/go/internal/metrics/window.go +120 -0
- data/go/internal/queue/drain_test.go +141 -0
- data/go/internal/queue/queue.go +297 -0
- data/go/internal/realtime/event.go +53 -0
- data/go/internal/realtime/hub.go +456 -0
- data/go/internal/realtime/hub_test.go +370 -0
- data/go/internal/realtime/id.go +69 -0
- data/go/internal/realtime/id_test.go +64 -0
- data/go/internal/websocket/frame.go +186 -0
- data/go/internal/websocket/serve.go +196 -0
- data/go/internal/websocket/transport.go +101 -0
- data/go/internal/webtransport/serve.go +169 -0
- data/go/internal/webtransport/transport.go +220 -0
- data/go/internal/wire/golden_test.go +250 -0
- data/go/internal/wire/rack_test.go +40 -0
- data/go/internal/wire/ractor_test.go +43 -0
- data/go/internal/wire/wire.go +401 -0
- data/go/vendor/github.com/dunglas/httpsfv/LICENSE +27 -0
- data/go/vendor/github.com/dunglas/httpsfv/README.md +25 -0
- data/go/vendor/github.com/dunglas/httpsfv/bareitem.go +115 -0
- data/go/vendor/github.com/dunglas/httpsfv/binary.go +59 -0
- data/go/vendor/github.com/dunglas/httpsfv/boolean.go +49 -0
- data/go/vendor/github.com/dunglas/httpsfv/date.go +41 -0
- data/go/vendor/github.com/dunglas/httpsfv/decimal.go +64 -0
- data/go/vendor/github.com/dunglas/httpsfv/decode.go +63 -0
- data/go/vendor/github.com/dunglas/httpsfv/dictionary.go +167 -0
- data/go/vendor/github.com/dunglas/httpsfv/displaystring.go +105 -0
- data/go/vendor/github.com/dunglas/httpsfv/encode.go +42 -0
- data/go/vendor/github.com/dunglas/httpsfv/innerlist.go +91 -0
- data/go/vendor/github.com/dunglas/httpsfv/integer.go +120 -0
- data/go/vendor/github.com/dunglas/httpsfv/item.go +73 -0
- data/go/vendor/github.com/dunglas/httpsfv/key.go +81 -0
- data/go/vendor/github.com/dunglas/httpsfv/list.go +99 -0
- data/go/vendor/github.com/dunglas/httpsfv/member.go +9 -0
- data/go/vendor/github.com/dunglas/httpsfv/params.go +143 -0
- data/go/vendor/github.com/dunglas/httpsfv/string.go +88 -0
- data/go/vendor/github.com/dunglas/httpsfv/token.go +71 -0
- data/go/vendor/github.com/dunglas/httpsfv/utils.go +16 -0
- data/go/vendor/github.com/quic-go/qpack/LICENSE.md +7 -0
- data/go/vendor/github.com/quic-go/qpack/README.md +21 -0
- data/go/vendor/github.com/quic-go/qpack/decoder.go +183 -0
- data/go/vendor/github.com/quic-go/qpack/encoder.go +95 -0
- data/go/vendor/github.com/quic-go/qpack/header_field.go +16 -0
- data/go/vendor/github.com/quic-go/qpack/static_table.go +255 -0
- data/go/vendor/github.com/quic-go/qpack/varint.go +69 -0
- data/go/vendor/github.com/quic-go/quic-go/FIPS140.md +37 -0
- data/go/vendor/github.com/quic-go/quic-go/FUZZING.md +59 -0
- data/go/vendor/github.com/quic-go/quic-go/LICENSE +21 -0
- data/go/vendor/github.com/quic-go/quic-go/README.md +65 -0
- data/go/vendor/github.com/quic-go/quic-go/SECURITY.md +14 -0
- data/go/vendor/github.com/quic-go/quic-go/buffer_pool.go +92 -0
- data/go/vendor/github.com/quic-go/quic-go/client.go +109 -0
- data/go/vendor/github.com/quic-go/quic-go/closed_conn.go +58 -0
- data/go/vendor/github.com/quic-go/quic-go/codecov.yml +23 -0
- data/go/vendor/github.com/quic-go/quic-go/config.go +129 -0
- data/go/vendor/github.com/quic-go/quic-go/conn_id_generator.go +212 -0
- data/go/vendor/github.com/quic-go/quic-go/conn_id_manager.go +321 -0
- data/go/vendor/github.com/quic-go/quic-go/connection.go +3150 -0
- data/go/vendor/github.com/quic-go/quic-go/connection_logging.go +315 -0
- data/go/vendor/github.com/quic-go/quic-go/crypto_stream.go +249 -0
- data/go/vendor/github.com/quic-go/quic-go/crypto_stream_manager.go +73 -0
- data/go/vendor/github.com/quic-go/quic-go/datagram_queue.go +137 -0
- data/go/vendor/github.com/quic-go/quic-go/errors.go +105 -0
- data/go/vendor/github.com/quic-go/quic-go/flow_controller_base.go +84 -0
- data/go/vendor/github.com/quic-go/quic-go/flow_controller_connection.go +186 -0
- data/go/vendor/github.com/quic-go/quic-go/flow_controller_stream.go +196 -0
- data/go/vendor/github.com/quic-go/quic-go/frame_sorter.go +274 -0
- data/go/vendor/github.com/quic-go/quic-go/framer.go +295 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/README.md +9 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/body.go +137 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/capsule.go +148 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/client.go +496 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/conn.go +319 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/error.go +63 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/error_codes.go +84 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/frames.go +327 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/gzip_reader.go +39 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/headers.go +429 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/ip_addr.go +48 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/mockgen.go +11 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/qlog/event.go +138 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/qlog/frame.go +220 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/qlog/qlog_dir.go +15 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/qlog.go +56 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/request_writer.go +324 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/response_writer.go +372 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/server.go +738 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/server_conn.go +259 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/state_tracking_stream.go +173 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/stream.go +406 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/trace.go +105 -0
- data/go/vendor/github.com/quic-go/quic-go/http3/transport.go +538 -0
- data/go/vendor/github.com/quic-go/quic-go/interface.go +221 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/ack_eliciting.go +33 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/ecn.go +340 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/frame.go +21 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/interfaces.go +39 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/lost_packet_tracker.go +73 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/mockgen.go +6 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/packet.go +60 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/packet_number_generator.go +84 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/received_packet_handler.go +119 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/received_packet_history.go +159 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/received_packet_tracker.go +228 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/send_mode.go +46 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/sent_packet_handler.go +1143 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/ackhandler/sent_packet_history.go +274 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/bandwidth.go +22 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/clock.go +20 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/cubic.go +214 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/cubic_sender.go +330 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/hybrid_slow_start.go +112 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/interface.go +27 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/congestion/pacer.go +110 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/aead.go +91 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/cipher_suite.go +114 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/cipher_suite_fips140.go +48 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/crypto_setup.go +718 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/fake_conn.go +21 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/fips140_go126.go +9 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/fips140_legacy.go +7 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/header_protector.go +134 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/hkdf.go +26 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/initial_aead.go +80 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/interface.go +140 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/quic_event_go125.go +11 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/quic_event_go126.go +11 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/retry_go125.go +68 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/retry_go126.go +70 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/session_ticket.go +55 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/tls_config_go126.go +54 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/tls_config_go127.go +24 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/token_generator.go +126 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/token_protector.go +78 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/handshake/updatable_aead.go +372 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/monotime/time.go +90 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/connection_id.go +116 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/encryption_level.go +65 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/key_phase.go +36 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/packet_number.go +57 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/params.go +169 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/perspective.go +26 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/protocol.go +156 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/stream.go +102 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/protocol/version.go +115 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/qerr/error_codes.go +87 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/qerr/errors.go +134 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/buffered_write_closer.go +26 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/connstats.go +14 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/linkedlist/README.md +6 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/linkedlist/linkedlist.go +264 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/log.go +131 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/rand.go +29 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/ringbuffer/ringbuffer.go +96 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/utils/rtt_stats.go +159 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/ack_frame.go +298 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/ack_frequency_frame.go +65 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/ack_range.go +14 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/connection_close_frame.go +75 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/crypto_frame.go +97 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/data_blocked_frame.go +29 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/datagram_frame.go +85 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/extended_header.go +164 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/frame.go +33 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/frame_parser.go +192 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/frame_type.go +81 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/handshake_done_frame.go +17 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/header.go +302 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/immediate_ack_frame.go +18 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/log.go +74 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/max_data_frame.go +33 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/max_stream_data_frame.go +43 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/max_streams_frame.go +50 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/new_connection_id_frame.go +80 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/new_token_frame.go +43 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/path_challenge_frame.go +32 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/path_response_frame.go +32 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/ping_frame.go +17 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/pool.go +33 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/reset_stream_frame.go +79 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/retire_connection_id_frame.go +30 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/short_header.go +62 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/stop_sending_frame.go +45 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/stream_data_blocked_frame.go +42 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/stream_frame.go +191 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/streams_blocked_frame.go +50 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/transport_parameters.go +593 -0
- data/go/vendor/github.com/quic-go/quic-go/internal/wire/version_negotiation.go +53 -0
- data/go/vendor/github.com/quic-go/quic-go/mockgen.go +47 -0
- data/go/vendor/github.com/quic-go/quic-go/mtu_discoverer.go +253 -0
- data/go/vendor/github.com/quic-go/quic-go/oss-fuzz.sh +52 -0
- data/go/vendor/github.com/quic-go/quic-go/packet_packer.go +1009 -0
- data/go/vendor/github.com/quic-go/quic-go/packet_unpacker.go +222 -0
- data/go/vendor/github.com/quic-go/quic-go/path_manager.go +206 -0
- data/go/vendor/github.com/quic-go/quic-go/path_manager_outgoing.go +314 -0
- data/go/vendor/github.com/quic-go/quic-go/qlog/event.go +849 -0
- data/go/vendor/github.com/quic-go/quic-go/qlog/frame.go +481 -0
- data/go/vendor/github.com/quic-go/quic-go/qlog/packet_header.go +96 -0
- data/go/vendor/github.com/quic-go/quic-go/qlog/qlog_dir.go +61 -0
- data/go/vendor/github.com/quic-go/quic-go/qlog/types.go +305 -0
- data/go/vendor/github.com/quic-go/quic-go/qlogwriter/jsontext/encoder.go +324 -0
- data/go/vendor/github.com/quic-go/quic-go/qlogwriter/trace.go +124 -0
- data/go/vendor/github.com/quic-go/quic-go/qlogwriter/writer.go +229 -0
- data/go/vendor/github.com/quic-go/quic-go/quicvarint/io.go +98 -0
- data/go/vendor/github.com/quic-go/quic-go/quicvarint/varint.go +180 -0
- data/go/vendor/github.com/quic-go/quic-go/receive_stream.go +578 -0
- data/go/vendor/github.com/quic-go/quic-go/retransmission_queue.go +158 -0
- data/go/vendor/github.com/quic-go/quic-go/send_conn.go +124 -0
- data/go/vendor/github.com/quic-go/quic-go/send_queue.go +112 -0
- data/go/vendor/github.com/quic-go/quic-go/send_stream.go +915 -0
- data/go/vendor/github.com/quic-go/quic-go/server.go +1119 -0
- data/go/vendor/github.com/quic-go/quic-go/sni.go +136 -0
- data/go/vendor/github.com/quic-go/quic-go/stateless_reset.go +42 -0
- data/go/vendor/github.com/quic-go/quic-go/stream.go +253 -0
- data/go/vendor/github.com/quic-go/quic-go/streams_map.go +356 -0
- data/go/vendor/github.com/quic-go/quic-go/streams_map_incoming.go +209 -0
- data/go/vendor/github.com/quic-go/quic-go/streams_map_outgoing.go +253 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn.go +143 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_buffers.go +68 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_buffers_write.go +70 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_df.go +22 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_df_darwin.go +90 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_df_linux.go +42 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_df_windows.go +52 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_helper_darwin.go +38 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_helper_freebsd.go +33 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_helper_linux.go +156 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_helper_nonlinux.go +10 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_no_oob.go +21 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_oob.go +338 -0
- data/go/vendor/github.com/quic-go/quic-go/sys_conn_windows.go +42 -0
- data/go/vendor/github.com/quic-go/quic-go/token_store.go +116 -0
- data/go/vendor/github.com/quic-go/quic-go/transport.go +848 -0
- data/go/vendor/github.com/quic-go/webtransport-go/LICENSE +7 -0
- data/go/vendor/github.com/quic-go/webtransport-go/README.md +31 -0
- data/go/vendor/github.com/quic-go/webtransport-go/SECURITY.md +14 -0
- data/go/vendor/github.com/quic-go/webtransport-go/capsule.go +261 -0
- data/go/vendor/github.com/quic-go/webtransport-go/client_conn.go +289 -0
- data/go/vendor/github.com/quic-go/webtransport-go/codecov.yml +12 -0
- data/go/vendor/github.com/quic-go/webtransport-go/config.go +90 -0
- data/go/vendor/github.com/quic-go/webtransport-go/errors.go +96 -0
- data/go/vendor/github.com/quic-go/webtransport-go/flow_control.go +107 -0
- data/go/vendor/github.com/quic-go/webtransport-go/protocol.go +59 -0
- data/go/vendor/github.com/quic-go/webtransport-go/receive_stream.go +185 -0
- data/go/vendor/github.com/quic-go/webtransport-go/send_stream.go +322 -0
- data/go/vendor/github.com/quic-go/webtransport-go/server.go +533 -0
- data/go/vendor/github.com/quic-go/webtransport-go/session.go +463 -0
- data/go/vendor/github.com/quic-go/webtransport-go/session_manager.go +190 -0
- data/go/vendor/github.com/quic-go/webtransport-go/stream.go +147 -0
- data/go/vendor/github.com/quic-go/webtransport-go/streams_map_incoming.go +179 -0
- data/go/vendor/github.com/quic-go/webtransport-go/streams_map_outgoing.go +357 -0
- data/go/vendor/github.com/quic-go/webtransport-go/transport.go +126 -0
- data/go/vendor/golang.org/x/crypto/LICENSE +27 -0
- data/go/vendor/golang.org/x/crypto/PATENTS +22 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_arm64.go +16 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s +307 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_generic.go +398 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_noasm.go +13 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.go +16 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_ppc64x.s +501 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_s390x.go +27 -0
- data/go/vendor/golang.org/x/crypto/chacha20/chacha_s390x.s +224 -0
- data/go/vendor/golang.org/x/crypto/chacha20/xor.go +42 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305.go +101 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go +92 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s +5230 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go +87 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go +15 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/fips140only_compat.go +9 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/fips140only_go1.26.go +11 -0
- data/go/vendor/golang.org/x/crypto/chacha20poly1305/xchacha20poly1305.go +89 -0
- data/go/vendor/golang.org/x/crypto/internal/alias/alias.go +31 -0
- data/go/vendor/golang.org/x/crypto/internal/alias/alias_purego.go +34 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/mac_noasm.go +9 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/poly1305.go +99 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s +93 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_asm.go +47 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_generic.go +312 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_loong64.s +123 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_ppc64x.s +187 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.go +76 -0
- data/go/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.s +503 -0
- data/go/vendor/golang.org/x/net/LICENSE +27 -0
- data/go/vendor/golang.org/x/net/PATENTS +22 -0
- data/go/vendor/golang.org/x/net/bpf/asm.go +41 -0
- data/go/vendor/golang.org/x/net/bpf/constants.go +222 -0
- data/go/vendor/golang.org/x/net/bpf/doc.go +87 -0
- data/go/vendor/golang.org/x/net/bpf/instructions.go +726 -0
- data/go/vendor/golang.org/x/net/bpf/setter.go +10 -0
- data/go/vendor/golang.org/x/net/bpf/vm.go +150 -0
- data/go/vendor/golang.org/x/net/bpf/vm_instructions.go +182 -0
- data/go/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
- data/go/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
- data/go/vendor/golang.org/x/net/http2/README.md +19 -0
- data/go/vendor/golang.org/x/net/http2/ascii.go +53 -0
- data/go/vendor/golang.org/x/net/http2/ciphers.go +641 -0
- data/go/vendor/golang.org/x/net/http2/client_conn_pool.go +301 -0
- data/go/vendor/golang.org/x/net/http2/client_priority_go126.go +20 -0
- data/go/vendor/golang.org/x/net/http2/client_priority_go127.go +13 -0
- data/go/vendor/golang.org/x/net/http2/clientconn.go +57 -0
- data/go/vendor/golang.org/x/net/http2/config.go +171 -0
- data/go/vendor/golang.org/x/net/http2/config_go125.go +15 -0
- data/go/vendor/golang.org/x/net/http2/config_go126.go +15 -0
- data/go/vendor/golang.org/x/net/http2/databuffer.go +149 -0
- data/go/vendor/golang.org/x/net/http2/errors.go +145 -0
- data/go/vendor/golang.org/x/net/http2/flow.go +120 -0
- data/go/vendor/golang.org/x/net/http2/frame.go +1871 -0
- data/go/vendor/golang.org/x/net/http2/gotrack.go +181 -0
- data/go/vendor/golang.org/x/net/http2/h2c/h2c.go +256 -0
- data/go/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
- data/go/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
- data/go/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
- data/go/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
- data/go/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
- data/go/vendor/golang.org/x/net/http2/http2.go +415 -0
- data/go/vendor/golang.org/x/net/http2/pipe.go +184 -0
- data/go/vendor/golang.org/x/net/http2/server.go +3217 -0
- data/go/vendor/golang.org/x/net/http2/server_common.go +221 -0
- data/go/vendor/golang.org/x/net/http2/server_wrap.go +217 -0
- data/go/vendor/golang.org/x/net/http2/transport.go +3036 -0
- data/go/vendor/golang.org/x/net/http2/transport_common.go +447 -0
- data/go/vendor/golang.org/x/net/http2/transport_wrap.go +394 -0
- data/go/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
- data/go/vendor/golang.org/x/net/http2/write.go +381 -0
- data/go/vendor/golang.org/x/net/http2/writesched.go +252 -0
- data/go/vendor/golang.org/x/net/http2/writesched_common.go +90 -0
- data/go/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go +420 -0
- data/go/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go +226 -0
- data/go/vendor/golang.org/x/net/http2/writesched_random.go +81 -0
- data/go/vendor/golang.org/x/net/http2/writesched_roundrobin.go +121 -0
- data/go/vendor/golang.org/x/net/idna/idna.go +884 -0
- data/go/vendor/golang.org/x/net/idna/punycode.go +220 -0
- data/go/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
- data/go/vendor/golang.org/x/net/idna/tables17.0.0.go +5302 -0
- data/go/vendor/golang.org/x/net/idna/trie.go +51 -0
- data/go/vendor/golang.org/x/net/idna/trieval.go +119 -0
- data/go/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
- data/go/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
- data/go/vendor/golang.org/x/net/internal/httpcommon/request.go +475 -0
- data/go/vendor/golang.org/x/net/internal/httpsfv/httpsfv.go +665 -0
- data/go/vendor/golang.org/x/net/internal/iana/const.go +223 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr.go +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go +13 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go +13 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go +13 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go +13 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go +27 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go +21 -0
- data/go/vendor/golang.org/x/net/internal/socket/cmsghdr_zos_s390x.go +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/complete_dontwait.go +25 -0
- data/go/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go +21 -0
- data/go/vendor/golang.org/x/net/internal/socket/empty.s +7 -0
- data/go/vendor/golang.org/x/net/internal/socket/error_unix.go +31 -0
- data/go/vendor/golang.org/x/net/internal/socket/error_windows.go +26 -0
- data/go/vendor/golang.org/x/net/internal/socket/iovec_32bit.go +18 -0
- data/go/vendor/golang.org/x/net/internal/socket/iovec_64bit.go +18 -0
- data/go/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go +18 -0
- data/go/vendor/golang.org/x/net/internal/socket/iovec_stub.go +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go +21 -0
- data/go/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go +195 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go +39 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go +16 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_linux.go +36 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go +23 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go +23 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_openbsd.go +14 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_stub.go +14 -0
- data/go/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/norace.go +12 -0
- data/go/vendor/golang.org/x/net/internal/socket/race.go +37 -0
- data/go/vendor/golang.org/x/net/internal/socket/rawconn.go +91 -0
- data/go/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go +53 -0
- data/go/vendor/golang.org/x/net/internal/socket/rawconn_msg.go +59 -0
- data/go/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go +15 -0
- data/go/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go +15 -0
- data/go/vendor/golang.org/x/net/internal/socket/socket.go +281 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_bsd.go +15 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_const_unix.go +20 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux.go +22 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_386.go +28 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_386.s +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_amd64.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_arm.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_arm64.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go +12 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_mips.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_mips64.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_mips64le.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_mipsle.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_ppc.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64le.go +10 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go +12 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go +28 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.s +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_netbsd.go +25 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_posix.go +184 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_stub.go +52 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_unix.go +121 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_windows.go +55 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go +66 -0
- data/go/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.s +11 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go +39 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_freebsd_riscv64.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go +39 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go +39 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go +35 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm64.go +38 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_mips64.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go +30 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go +32 -0
- data/go/vendor/golang.org/x/net/internal/socket/zsys_zos_s390x.go +28 -0
- data/go/vendor/golang.org/x/net/ipv4/batch.go +194 -0
- data/go/vendor/golang.org/x/net/ipv4/control.go +144 -0
- data/go/vendor/golang.org/x/net/ipv4/control_bsd.go +43 -0
- data/go/vendor/golang.org/x/net/ipv4/control_pktinfo.go +41 -0
- data/go/vendor/golang.org/x/net/ipv4/control_stub.go +13 -0
- data/go/vendor/golang.org/x/net/ipv4/control_unix.go +75 -0
- data/go/vendor/golang.org/x/net/ipv4/control_windows.go +12 -0
- data/go/vendor/golang.org/x/net/ipv4/control_zos.go +88 -0
- data/go/vendor/golang.org/x/net/ipv4/dgramopt.go +264 -0
- data/go/vendor/golang.org/x/net/ipv4/doc.go +240 -0
- data/go/vendor/golang.org/x/net/ipv4/endpoint.go +186 -0
- data/go/vendor/golang.org/x/net/ipv4/genericopt.go +55 -0
- data/go/vendor/golang.org/x/net/ipv4/header.go +170 -0
- data/go/vendor/golang.org/x/net/ipv4/helper.go +77 -0
- data/go/vendor/golang.org/x/net/ipv4/iana.go +38 -0
- data/go/vendor/golang.org/x/net/ipv4/icmp.go +57 -0
- data/go/vendor/golang.org/x/net/ipv4/icmp_linux.go +25 -0
- data/go/vendor/golang.org/x/net/ipv4/icmp_stub.go +25 -0
- data/go/vendor/golang.org/x/net/ipv4/packet.go +117 -0
- data/go/vendor/golang.org/x/net/ipv4/payload.go +23 -0
- data/go/vendor/golang.org/x/net/ipv4/payload_cmsg.go +84 -0
- data/go/vendor/golang.org/x/net/ipv4/payload_nocmsg.go +39 -0
- data/go/vendor/golang.org/x/net/ipv4/sockopt.go +44 -0
- data/go/vendor/golang.org/x/net/ipv4/sockopt_posix.go +71 -0
- data/go/vendor/golang.org/x/net/ipv4/sockopt_stub.go +42 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_aix.go +43 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_asmreq.go +122 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go +25 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_asmreqn.go +44 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go +21 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_bpf.go +24 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go +16 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_bsd.go +41 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_darwin.go +69 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_dragonfly.go +39 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_freebsd.go +80 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_linux.go +61 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_solaris.go +61 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_ssmreq.go +52 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go +21 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_stub.go +13 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_windows.go +44 -0
- data/go/vendor/golang.org/x/net/ipv4/sys_zos.go +57 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go +16 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_darwin.go +59 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go +13 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go +52 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go +54 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go +54 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm64.go +52 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go +52 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_386.go +72 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go +72 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go +76 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go +72 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go +72 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go +72 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go +76 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go +74 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_netbsd.go +13 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_openbsd.go +13 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_solaris.go +57 -0
- data/go/vendor/golang.org/x/net/ipv4/zsys_zos_s390x.go +56 -0
- data/go/vendor/golang.org/x/net/ipv6/batch.go +116 -0
- data/go/vendor/golang.org/x/net/ipv6/control.go +187 -0
- data/go/vendor/golang.org/x/net/ipv6/control_rfc2292_unix.go +51 -0
- data/go/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go +97 -0
- data/go/vendor/golang.org/x/net/ipv6/control_stub.go +13 -0
- data/go/vendor/golang.org/x/net/ipv6/control_unix.go +55 -0
- data/go/vendor/golang.org/x/net/ipv6/control_windows.go +12 -0
- data/go/vendor/golang.org/x/net/ipv6/dgramopt.go +301 -0
- data/go/vendor/golang.org/x/net/ipv6/doc.go +239 -0
- data/go/vendor/golang.org/x/net/ipv6/endpoint.go +127 -0
- data/go/vendor/golang.org/x/net/ipv6/genericopt.go +56 -0
- data/go/vendor/golang.org/x/net/ipv6/header.go +55 -0
- data/go/vendor/golang.org/x/net/ipv6/helper.go +58 -0
- data/go/vendor/golang.org/x/net/ipv6/iana.go +86 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp.go +60 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_bsd.go +29 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_linux.go +27 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_solaris.go +27 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_stub.go +23 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_windows.go +22 -0
- data/go/vendor/golang.org/x/net/ipv6/icmp_zos.go +29 -0
- data/go/vendor/golang.org/x/net/ipv6/payload.go +23 -0
- data/go/vendor/golang.org/x/net/ipv6/payload_cmsg.go +70 -0
- data/go/vendor/golang.org/x/net/ipv6/payload_nocmsg.go +38 -0
- data/go/vendor/golang.org/x/net/ipv6/sockopt.go +43 -0
- data/go/vendor/golang.org/x/net/ipv6/sockopt_posix.go +89 -0
- data/go/vendor/golang.org/x/net/ipv6/sockopt_stub.go +46 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_aix.go +79 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_asmreq.go +24 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go +17 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_bpf.go +24 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go +16 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_bsd.go +59 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_darwin.go +80 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_freebsd.go +94 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_linux.go +76 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_solaris.go +76 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_ssmreq.go +54 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go +21 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_stub.go +13 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_windows.go +68 -0
- data/go/vendor/golang.org/x/net/ipv6/sys_zos.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_aix_ppc64.go +68 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_darwin.go +64 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go +42 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go +64 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go +66 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go +66 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm64.go +64 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_freebsd_riscv64.go +64 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_386.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_loong64.go +76 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go +72 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_riscv64.go +76 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go +74 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_netbsd.go +42 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_openbsd.go +42 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_solaris.go +63 -0
- data/go/vendor/golang.org/x/net/ipv6/zsys_zos_s390x.go +62 -0
- data/go/vendor/golang.org/x/sys/LICENSE +27 -0
- data/go/vendor/golang.org/x/sys/PATENTS +22 -0
- data/go/vendor/golang.org/x/sys/cpu/asm_aix_ppc64.s +17 -0
- data/go/vendor/golang.org/x/sys/cpu/asm_darwin_arm64_gc.s +12 -0
- data/go/vendor/golang.org/x/sys/cpu/asm_darwin_x86_gc.s +17 -0
- data/go/vendor/golang.org/x/sys/cpu/byteorder.go +66 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu.go +343 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_aix.go +33 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_arm.go +73 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_arm64.go +191 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_arm64.s +35 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_darwin_arm64.go +67 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_darwin_arm64_other.go +31 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_darwin_x86.go +61 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go +12 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gc_s390x.go +21 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go +15 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gc_x86.s +26 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go +12 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gccgo_s390x.go +22 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c +37 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.go +25 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux.go +15 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_arm.go +39 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +120 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_loong64.go +22 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_mips64x.go +22 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +9 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_ppc64x.go +30 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +162 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_linux_s390x.go +40 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_loong64.go +62 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_loong64.s +13 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_mips64x.go +15 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_mipsx.go +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go +173 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go +65 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_arm.go +9 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_mips64x.go +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go +12 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_riscv64.go +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_other_x86.go +11 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go +16 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +33 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_s390x.go +172 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_s390x.s +57 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_wasm.go +17 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_windows.go +26 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go +38 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_x86.go +236 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_zos.go +10 -0
- data/go/vendor/golang.org/x/sys/cpu/cpu_zos_s390x.go +25 -0
- data/go/vendor/golang.org/x/sys/cpu/endian_big.go +10 -0
- data/go/vendor/golang.org/x/sys/cpu/endian_little.go +10 -0
- data/go/vendor/golang.org/x/sys/cpu/hwcap_linux.go +71 -0
- data/go/vendor/golang.org/x/sys/cpu/parse.go +55 -0
- data/go/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go +53 -0
- data/go/vendor/golang.org/x/sys/cpu/runtime_auxv.go +16 -0
- data/go/vendor/golang.org/x/sys/cpu/runtime_auxv_go121.go +18 -0
- data/go/vendor/golang.org/x/sys/cpu/syscall_aix_gccgo.go +26 -0
- data/go/vendor/golang.org/x/sys/cpu/syscall_aix_ppc64_gc.go +35 -0
- data/go/vendor/golang.org/x/sys/cpu/syscall_darwin_arm64_gc.go +54 -0
- data/go/vendor/golang.org/x/sys/cpu/syscall_darwin_x86_gc.go +98 -0
- data/go/vendor/golang.org/x/sys/cpu/zcpu_windows.go +48 -0
- data/go/vendor/golang.org/x/sys/unix/README.md +184 -0
- data/go/vendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
- data/go/vendor/golang.org/x/sys/unix/aliases.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
- data/go/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
- data/go/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
- data/go/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
- data/go/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
- data/go/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
- data/go/vendor/golang.org/x/sys/unix/auxv.go +36 -0
- data/go/vendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
- data/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
- data/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
- data/go/vendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
- data/go/vendor/golang.org/x/sys/unix/constants.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
- data/go/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
- data/go/vendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
- data/go/vendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
- data/go/vendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
- data/go/vendor/golang.org/x/sys/unix/dev_linux.go +42 -0
- data/go/vendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
- data/go/vendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
- data/go/vendor/golang.org/x/sys/unix/dev_zos.go +28 -0
- data/go/vendor/golang.org/x/sys/unix/dirent.go +102 -0
- data/go/vendor/golang.org/x/sys/unix/endian_big.go +9 -0
- data/go/vendor/golang.org/x/sys/unix/endian_little.go +9 -0
- data/go/vendor/golang.org/x/sys/unix/env_unix.go +31 -0
- data/go/vendor/golang.org/x/sys/unix/fcntl.go +36 -0
- data/go/vendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
- data/go/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/fdset.go +27 -0
- data/go/vendor/golang.org/x/sys/unix/gccgo.go +59 -0
- data/go/vendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
- data/go/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
- data/go/vendor/golang.org/x/sys/unix/ifreq_linux.go +139 -0
- data/go/vendor/golang.org/x/sys/unix/ioctl_linux.go +334 -0
- data/go/vendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
- data/go/vendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
- data/go/vendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
- data/go/vendor/golang.org/x/sys/unix/mkall.sh +250 -0
- data/go/vendor/golang.org/x/sys/unix/mkerrors.sh +814 -0
- data/go/vendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/mremap.go +57 -0
- data/go/vendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
- data/go/vendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
- data/go/vendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
- data/go/vendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
- data/go/vendor/golang.org/x/sys/unix/race.go +30 -0
- data/go/vendor/golang.org/x/sys/unix/race0.go +25 -0
- data/go/vendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
- data/go/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
- data/go/vendor/golang.org/x/sys/unix/readv_unix.go +103 -0
- data/go/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
- data/go/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
- data/go/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
- data/go/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
- data/go/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
- data/go/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
- data/go/vendor/golang.org/x/sys/unix/syscall.go +86 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
- data/go/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
- data/go/vendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
- data/go/vendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
- data/go/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/timestruct.go +76 -0
- data/go/vendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
- data/go/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
- data/go/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
- data/go/vendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux.go +4207 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +883 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +883 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +888 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +885 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +875 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +889 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +889 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +889 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +889 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +941 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +945 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +945 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +885 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +944 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +987 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
- data/go/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
- data/go/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
- data/go/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
- data/go/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
- data/go/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
- data/go/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
- data/go/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
- data/go/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
- data/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
- data/go/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux.go +6475 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +717 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +731 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +711 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +710 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +711 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +716 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +713 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +713 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +716 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +724 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +719 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +719 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +798 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +733 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +714 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
- data/go/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
- data/go/vendor/golang.org/x/sys/windows/aliases.go +13 -0
- data/go/vendor/golang.org/x/sys/windows/dll_windows.go +380 -0
- data/go/vendor/golang.org/x/sys/windows/env_windows.go +57 -0
- data/go/vendor/golang.org/x/sys/windows/eventlog.go +20 -0
- data/go/vendor/golang.org/x/sys/windows/exec_windows.go +248 -0
- data/go/vendor/golang.org/x/sys/windows/memory_windows.go +48 -0
- data/go/vendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
- data/go/vendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
- data/go/vendor/golang.org/x/sys/windows/mksyscall.go +9 -0
- data/go/vendor/golang.org/x/sys/windows/race.go +30 -0
- data/go/vendor/golang.org/x/sys/windows/race0.go +25 -0
- data/go/vendor/golang.org/x/sys/windows/security_windows.go +1537 -0
- data/go/vendor/golang.org/x/sys/windows/service.go +257 -0
- data/go/vendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
- data/go/vendor/golang.org/x/sys/windows/str.go +22 -0
- data/go/vendor/golang.org/x/sys/windows/syscall.go +104 -0
- data/go/vendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
- data/go/vendor/golang.org/x/sys/windows/types_windows.go +4057 -0
- data/go/vendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
- data/go/vendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
- data/go/vendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
- data/go/vendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
- data/go/vendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
- data/go/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
- data/go/vendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
- data/go/vendor/golang.org/x/text/LICENSE +27 -0
- data/go/vendor/golang.org/x/text/PATENTS +22 -0
- data/go/vendor/golang.org/x/text/secure/bidirule/bidirule.go +340 -0
- data/go/vendor/golang.org/x/text/transform/transform.go +709 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/core.go +1064 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go +2135 -0
- data/go/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
- data/go/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
- data/go/vendor/golang.org/x/text/unicode/norm/forminfo.go +296 -0
- data/go/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
- data/go/vendor/golang.org/x/text/unicode/norm/iter.go +454 -0
- data/go/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
- data/go/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
- data/go/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
- data/go/vendor/golang.org/x/text/unicode/norm/tables17.0.0.go +8104 -0
- data/go/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
- data/go/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
- data/go/vendor/modules.txt +63 -0
- data/lib/puma_plus/core/version.rb +13 -0
- data/lib/puma_plus/core.rb +60 -0
- metadata +1099 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
package quic
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"context"
|
|
5
|
+
"sync"
|
|
6
|
+
|
|
7
|
+
"github.com/quic-go/quic-go/internal/utils"
|
|
8
|
+
"github.com/quic-go/quic-go/internal/utils/ringbuffer"
|
|
9
|
+
"github.com/quic-go/quic-go/internal/wire"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
const (
|
|
13
|
+
maxDatagramSendQueueLen = 32
|
|
14
|
+
maxDatagramRcvQueueLen = 128
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
type datagramQueue struct {
|
|
18
|
+
sendMx sync.Mutex
|
|
19
|
+
sendQueue ringbuffer.RingBuffer[*wire.DatagramFrame]
|
|
20
|
+
sent chan struct{} // used to notify Add that a datagram was dequeued
|
|
21
|
+
|
|
22
|
+
rcvMx sync.Mutex
|
|
23
|
+
rcvQueue [][]byte
|
|
24
|
+
rcvd chan struct{} // used to notify Receive that a new datagram was received
|
|
25
|
+
|
|
26
|
+
closeErr error
|
|
27
|
+
closed chan struct{}
|
|
28
|
+
|
|
29
|
+
hasData func()
|
|
30
|
+
|
|
31
|
+
logger utils.Logger
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
func newDatagramQueue(hasData func(), logger utils.Logger) *datagramQueue {
|
|
35
|
+
return &datagramQueue{
|
|
36
|
+
hasData: hasData,
|
|
37
|
+
rcvd: make(chan struct{}, 1),
|
|
38
|
+
sent: make(chan struct{}, 1),
|
|
39
|
+
closed: make(chan struct{}),
|
|
40
|
+
logger: logger,
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Add queues a new DATAGRAM frame for sending.
|
|
45
|
+
// Up to 32 DATAGRAM frames will be queued.
|
|
46
|
+
// Once that limit is reached, Add blocks until the queue size has reduced.
|
|
47
|
+
func (h *datagramQueue) Add(f *wire.DatagramFrame) error {
|
|
48
|
+
h.sendMx.Lock()
|
|
49
|
+
|
|
50
|
+
for {
|
|
51
|
+
if h.sendQueue.Len() < maxDatagramSendQueueLen {
|
|
52
|
+
h.sendQueue.PushBack(f)
|
|
53
|
+
h.sendMx.Unlock()
|
|
54
|
+
h.hasData()
|
|
55
|
+
return nil
|
|
56
|
+
}
|
|
57
|
+
select {
|
|
58
|
+
case <-h.sent: // drain the queue so we don't loop immediately
|
|
59
|
+
default:
|
|
60
|
+
}
|
|
61
|
+
h.sendMx.Unlock()
|
|
62
|
+
select {
|
|
63
|
+
case <-h.closed:
|
|
64
|
+
return h.closeErr
|
|
65
|
+
case <-h.sent:
|
|
66
|
+
}
|
|
67
|
+
h.sendMx.Lock()
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Peek gets the next DATAGRAM frame for sending.
|
|
72
|
+
// If actually sent out, Pop needs to be called before the next call to Peek.
|
|
73
|
+
func (h *datagramQueue) Peek() *wire.DatagramFrame {
|
|
74
|
+
h.sendMx.Lock()
|
|
75
|
+
defer h.sendMx.Unlock()
|
|
76
|
+
if h.sendQueue.Empty() {
|
|
77
|
+
return nil
|
|
78
|
+
}
|
|
79
|
+
return h.sendQueue.PeekFront()
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
func (h *datagramQueue) Pop() {
|
|
83
|
+
h.sendMx.Lock()
|
|
84
|
+
defer h.sendMx.Unlock()
|
|
85
|
+
_ = h.sendQueue.PopFront()
|
|
86
|
+
select {
|
|
87
|
+
case h.sent <- struct{}{}:
|
|
88
|
+
default:
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// HandleDatagramFrame handles a received DATAGRAM frame.
|
|
93
|
+
func (h *datagramQueue) HandleDatagramFrame(f *wire.DatagramFrame) {
|
|
94
|
+
data := make([]byte, len(f.Data))
|
|
95
|
+
copy(data, f.Data)
|
|
96
|
+
var queued bool
|
|
97
|
+
h.rcvMx.Lock()
|
|
98
|
+
if len(h.rcvQueue) < maxDatagramRcvQueueLen {
|
|
99
|
+
h.rcvQueue = append(h.rcvQueue, data)
|
|
100
|
+
queued = true
|
|
101
|
+
select {
|
|
102
|
+
case h.rcvd <- struct{}{}:
|
|
103
|
+
default:
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
h.rcvMx.Unlock()
|
|
107
|
+
if !queued && h.logger.Debug() {
|
|
108
|
+
h.logger.Debugf("Discarding received DATAGRAM frame (%d bytes payload)", len(f.Data))
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Receive gets a received DATAGRAM frame.
|
|
113
|
+
func (h *datagramQueue) Receive(ctx context.Context) ([]byte, error) {
|
|
114
|
+
for {
|
|
115
|
+
h.rcvMx.Lock()
|
|
116
|
+
if len(h.rcvQueue) > 0 {
|
|
117
|
+
data := h.rcvQueue[0]
|
|
118
|
+
h.rcvQueue = h.rcvQueue[1:]
|
|
119
|
+
h.rcvMx.Unlock()
|
|
120
|
+
return data, nil
|
|
121
|
+
}
|
|
122
|
+
h.rcvMx.Unlock()
|
|
123
|
+
select {
|
|
124
|
+
case <-h.rcvd:
|
|
125
|
+
continue
|
|
126
|
+
case <-h.closed:
|
|
127
|
+
return nil, h.closeErr
|
|
128
|
+
case <-ctx.Done():
|
|
129
|
+
return nil, ctx.Err()
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
func (h *datagramQueue) CloseWithError(e error) {
|
|
135
|
+
h.closeErr = e
|
|
136
|
+
close(h.closed)
|
|
137
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
package quic
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"fmt"
|
|
5
|
+
|
|
6
|
+
"github.com/quic-go/quic-go/internal/qerr"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
type (
|
|
10
|
+
// TransportError indicates an error that occurred on the QUIC transport layer.
|
|
11
|
+
// Every transport error other than CONNECTION_REFUSED and APPLICATION_ERROR is
|
|
12
|
+
// likely a bug in the implementation.
|
|
13
|
+
TransportError = qerr.TransportError
|
|
14
|
+
// ApplicationError is an application-defined error.
|
|
15
|
+
ApplicationError = qerr.ApplicationError
|
|
16
|
+
// VersionNegotiationError indicates a failure to negotiate a QUIC version.
|
|
17
|
+
VersionNegotiationError = qerr.VersionNegotiationError
|
|
18
|
+
// StatelessResetError indicates a stateless reset was received.
|
|
19
|
+
// This can happen when the peer reboots, or when packets are misrouted.
|
|
20
|
+
// See section 10.3 of RFC 9000 for details.
|
|
21
|
+
StatelessResetError = qerr.StatelessResetError
|
|
22
|
+
// IdleTimeoutError indicates that the connection timed out because it was inactive for too long.
|
|
23
|
+
IdleTimeoutError = qerr.IdleTimeoutError
|
|
24
|
+
// HandshakeTimeoutError indicates that the connection timed out before completing the handshake.
|
|
25
|
+
HandshakeTimeoutError = qerr.HandshakeTimeoutError
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
type (
|
|
29
|
+
// TransportErrorCode is a QUIC transport error code, see section 20 of RFC 9000.
|
|
30
|
+
TransportErrorCode = qerr.TransportErrorCode
|
|
31
|
+
// ApplicationErrorCode is an QUIC application error code.
|
|
32
|
+
ApplicationErrorCode = qerr.ApplicationErrorCode
|
|
33
|
+
// StreamErrorCode is a QUIC stream error code. The meaning of the value is defined by the application.
|
|
34
|
+
StreamErrorCode = qerr.StreamErrorCode
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
const (
|
|
38
|
+
// NoError is the NO_ERROR transport error code.
|
|
39
|
+
NoError = qerr.NoError
|
|
40
|
+
// InternalError is the INTERNAL_ERROR transport error code.
|
|
41
|
+
InternalError = qerr.InternalError
|
|
42
|
+
// ConnectionRefused is the CONNECTION_REFUSED transport error code.
|
|
43
|
+
ConnectionRefused = qerr.ConnectionRefused
|
|
44
|
+
// FlowControlError is the FLOW_CONTROL_ERROR transport error code.
|
|
45
|
+
FlowControlError = qerr.FlowControlError
|
|
46
|
+
// StreamLimitError is the STREAM_LIMIT_ERROR transport error code.
|
|
47
|
+
StreamLimitError = qerr.StreamLimitError
|
|
48
|
+
// StreamStateError is the STREAM_STATE_ERROR transport error code.
|
|
49
|
+
StreamStateError = qerr.StreamStateError
|
|
50
|
+
// FinalSizeError is the FINAL_SIZE_ERROR transport error code.
|
|
51
|
+
FinalSizeError = qerr.FinalSizeError
|
|
52
|
+
// FrameEncodingError is the FRAME_ENCODING_ERROR transport error code.
|
|
53
|
+
FrameEncodingError = qerr.FrameEncodingError
|
|
54
|
+
// TransportParameterError is the TRANSPORT_PARAMETER_ERROR transport error code.
|
|
55
|
+
TransportParameterError = qerr.TransportParameterError
|
|
56
|
+
// ConnectionIDLimitError is the CONNECTION_ID_LIMIT_ERROR transport error code.
|
|
57
|
+
ConnectionIDLimitError = qerr.ConnectionIDLimitError
|
|
58
|
+
// ProtocolViolation is the PROTOCOL_VIOLATION transport error code.
|
|
59
|
+
ProtocolViolation = qerr.ProtocolViolation
|
|
60
|
+
// InvalidToken is the INVALID_TOKEN transport error code.
|
|
61
|
+
InvalidToken = qerr.InvalidToken
|
|
62
|
+
// ApplicationErrorErrorCode is the APPLICATION_ERROR transport error code.
|
|
63
|
+
ApplicationErrorErrorCode = qerr.ApplicationErrorErrorCode
|
|
64
|
+
// CryptoBufferExceeded is the CRYPTO_BUFFER_EXCEEDED transport error code.
|
|
65
|
+
CryptoBufferExceeded = qerr.CryptoBufferExceeded
|
|
66
|
+
// KeyUpdateError is the KEY_UPDATE_ERROR transport error code.
|
|
67
|
+
KeyUpdateError = qerr.KeyUpdateError
|
|
68
|
+
// AEADLimitReached is the AEAD_LIMIT_REACHED transport error code.
|
|
69
|
+
AEADLimitReached = qerr.AEADLimitReached
|
|
70
|
+
// NoViablePathError is the NO_VIABLE_PATH_ERROR transport error code.
|
|
71
|
+
NoViablePathError = qerr.NoViablePathError
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
// A StreamError is used to signal stream cancellations.
|
|
75
|
+
// It is returned from the Read and Write methods of the [ReceiveStream], [SendStream] and [Stream].
|
|
76
|
+
type StreamError struct {
|
|
77
|
+
StreamID StreamID
|
|
78
|
+
ErrorCode StreamErrorCode
|
|
79
|
+
Remote bool
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
func (e *StreamError) Is(target error) bool {
|
|
83
|
+
t, ok := target.(*StreamError)
|
|
84
|
+
return ok && e.StreamID == t.StreamID && e.ErrorCode == t.ErrorCode && e.Remote == t.Remote
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
func (e *StreamError) Error() string {
|
|
88
|
+
pers := "local"
|
|
89
|
+
if e.Remote {
|
|
90
|
+
pers = "remote"
|
|
91
|
+
}
|
|
92
|
+
return fmt.Sprintf("stream %d canceled by %s with error code %d", e.StreamID, pers, e.ErrorCode)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// DatagramTooLargeError is returned from Conn.SendDatagram if the payload is too large to be sent.
|
|
96
|
+
type DatagramTooLargeError struct {
|
|
97
|
+
MaxDatagramPayloadSize int64
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
func (e *DatagramTooLargeError) Is(target error) bool {
|
|
101
|
+
t, ok := target.(*DatagramTooLargeError)
|
|
102
|
+
return ok && e.MaxDatagramPayloadSize == t.MaxDatagramPayloadSize
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
func (e *DatagramTooLargeError) Error() string { return "DATAGRAM frame too large" }
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
package quic
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"sync"
|
|
5
|
+
"time"
|
|
6
|
+
|
|
7
|
+
"github.com/quic-go/quic-go/internal/monotime"
|
|
8
|
+
"github.com/quic-go/quic-go/internal/protocol"
|
|
9
|
+
"github.com/quic-go/quic-go/internal/utils"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
type receiveFlowController struct {
|
|
13
|
+
//nolint:structcheck // The mutex is used both by the stream and the connection flow controller
|
|
14
|
+
mutex sync.Mutex
|
|
15
|
+
bytesRead protocol.ByteCount
|
|
16
|
+
highestReceived protocol.ByteCount
|
|
17
|
+
receiveWindow protocol.ByteCount
|
|
18
|
+
receiveWindowSize protocol.ByteCount
|
|
19
|
+
maxReceiveWindowSize protocol.ByteCount
|
|
20
|
+
|
|
21
|
+
allowWindowIncrease func(size protocol.ByteCount) bool
|
|
22
|
+
|
|
23
|
+
epochStartTime monotime.Time
|
|
24
|
+
epochStartOffset protocol.ByteCount
|
|
25
|
+
rttStats *utils.RTTStats
|
|
26
|
+
|
|
27
|
+
logger utils.Logger
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// needs to be called with locked mutex
|
|
31
|
+
func (c *receiveFlowController) addBytesRead(n protocol.ByteCount) {
|
|
32
|
+
c.bytesRead += n
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
func (c *receiveFlowController) hasWindowUpdate() bool {
|
|
36
|
+
bytesRemaining := c.receiveWindow - c.bytesRead
|
|
37
|
+
// update the window when more than the threshold was consumed
|
|
38
|
+
return bytesRemaining <= protocol.ByteCount(float64(c.receiveWindowSize)*(1-protocol.WindowUpdateThreshold))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// getWindowUpdate updates the receive window, if necessary
|
|
42
|
+
// it returns the new offset
|
|
43
|
+
func (c *receiveFlowController) getWindowUpdate(now monotime.Time) protocol.ByteCount {
|
|
44
|
+
if !c.hasWindowUpdate() {
|
|
45
|
+
return 0
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
c.maybeAdjustWindowSize(now)
|
|
49
|
+
c.receiveWindow = c.bytesRead + c.receiveWindowSize
|
|
50
|
+
return c.receiveWindow
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// maybeAdjustWindowSize increases the receiveWindowSize if we're sending updates too often.
|
|
54
|
+
// For details about auto-tuning, see https://docs.google.com/document/d/1SExkMmGiz8VYzV3s9E35JQlJ73vhzCekKkDi85F1qCE/edit?usp=sharing.
|
|
55
|
+
func (c *receiveFlowController) maybeAdjustWindowSize(now monotime.Time) {
|
|
56
|
+
bytesReadInEpoch := c.bytesRead - c.epochStartOffset
|
|
57
|
+
// don't do anything if less than half the window has been consumed
|
|
58
|
+
if bytesReadInEpoch <= c.receiveWindowSize/2 {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
rtt := c.rttStats.SmoothedRTT()
|
|
62
|
+
if rtt == 0 {
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fraction := float64(bytesReadInEpoch) / float64(c.receiveWindowSize)
|
|
67
|
+
if now.Sub(c.epochStartTime) < time.Duration(4*fraction*float64(rtt)) {
|
|
68
|
+
// window is consumed too fast, try to increase the window size
|
|
69
|
+
newSize := min(2*c.receiveWindowSize, c.maxReceiveWindowSize)
|
|
70
|
+
if newSize > c.receiveWindowSize && (c.allowWindowIncrease == nil || c.allowWindowIncrease(newSize-c.receiveWindowSize)) {
|
|
71
|
+
c.receiveWindowSize = newSize
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
c.startNewAutoTuningEpoch(now)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
func (c *receiveFlowController) startNewAutoTuningEpoch(now monotime.Time) {
|
|
78
|
+
c.epochStartTime = now
|
|
79
|
+
c.epochStartOffset = c.bytesRead
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
func (c *receiveFlowController) checkFlowControlViolation() bool {
|
|
83
|
+
return c.highestReceived > c.receiveWindow
|
|
84
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
package quic
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"errors"
|
|
5
|
+
"fmt"
|
|
6
|
+
"sync"
|
|
7
|
+
|
|
8
|
+
"github.com/quic-go/quic-go/internal/monotime"
|
|
9
|
+
"github.com/quic-go/quic-go/internal/protocol"
|
|
10
|
+
"github.com/quic-go/quic-go/internal/qerr"
|
|
11
|
+
"github.com/quic-go/quic-go/internal/utils"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
type connectionFlowController struct {
|
|
15
|
+
receiveFlowController
|
|
16
|
+
|
|
17
|
+
// Protects send-side state, which TryWriteAll can access from application goroutines.
|
|
18
|
+
sendMutex sync.Mutex
|
|
19
|
+
bytesSent protocol.ByteCount
|
|
20
|
+
sendWindow protocol.ByteCount
|
|
21
|
+
lastBlockedAt protocol.ByteCount
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// newConnectionFlowController gets a new flow controller for the connection.
|
|
25
|
+
// It is created before we receive the peer's transport parameters, thus it starts with a sendWindow of 0.
|
|
26
|
+
func newConnectionFlowController(
|
|
27
|
+
receiveWindow protocol.ByteCount,
|
|
28
|
+
maxReceiveWindow protocol.ByteCount,
|
|
29
|
+
allowWindowIncrease func(size protocol.ByteCount) bool,
|
|
30
|
+
rttStats *utils.RTTStats,
|
|
31
|
+
logger utils.Logger,
|
|
32
|
+
) *connectionFlowController {
|
|
33
|
+
return &connectionFlowController{
|
|
34
|
+
receiveFlowController: receiveFlowController{
|
|
35
|
+
rttStats: rttStats,
|
|
36
|
+
receiveWindow: receiveWindow,
|
|
37
|
+
receiveWindowSize: receiveWindow,
|
|
38
|
+
maxReceiveWindowSize: maxReceiveWindow,
|
|
39
|
+
allowWindowIncrease: allowWindowIncrease,
|
|
40
|
+
logger: logger,
|
|
41
|
+
},
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// IncrementHighestReceived adds an increment to the highestReceived value
|
|
46
|
+
func (c *connectionFlowController) IncrementHighestReceived(increment protocol.ByteCount, now monotime.Time) error {
|
|
47
|
+
c.mutex.Lock()
|
|
48
|
+
defer c.mutex.Unlock()
|
|
49
|
+
|
|
50
|
+
// If this is the first frame received on this connection, start flow-control auto-tuning.
|
|
51
|
+
if c.highestReceived == 0 {
|
|
52
|
+
c.startNewAutoTuningEpoch(now)
|
|
53
|
+
}
|
|
54
|
+
c.highestReceived += increment
|
|
55
|
+
|
|
56
|
+
if c.checkFlowControlViolation() {
|
|
57
|
+
return &qerr.TransportError{
|
|
58
|
+
ErrorCode: qerr.FlowControlError,
|
|
59
|
+
ErrorMessage: fmt.Sprintf("received %d bytes for the connection, allowed %d bytes", c.highestReceived, c.receiveWindow),
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return nil
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func (c *connectionFlowController) AddBytesRead(n protocol.ByteCount) (hasWindowUpdate bool) {
|
|
66
|
+
c.mutex.Lock()
|
|
67
|
+
defer c.mutex.Unlock()
|
|
68
|
+
|
|
69
|
+
c.addBytesRead(n)
|
|
70
|
+
return c.hasWindowUpdate()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// TryAddBytesSent adds n bytes if sufficient connection-level send credit is available.
|
|
74
|
+
func (c *connectionFlowController) TryAddBytesSent(n protocol.ByteCount) bool {
|
|
75
|
+
c.sendMutex.Lock()
|
|
76
|
+
defer c.sendMutex.Unlock()
|
|
77
|
+
|
|
78
|
+
if c.bytesSent > c.sendWindow || n > c.sendWindow-c.bytesSent {
|
|
79
|
+
return false
|
|
80
|
+
}
|
|
81
|
+
c.bytesSent += n
|
|
82
|
+
return true
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// AddBytesSentWithLimiter adds the limiter-approved portion of the available connection-level send credit.
|
|
86
|
+
func (c *connectionFlowController) AddBytesSentWithLimiter(
|
|
87
|
+
n protocol.ByteCount,
|
|
88
|
+
limiter func(int) int,
|
|
89
|
+
) (protocol.ByteCount, bool) {
|
|
90
|
+
c.sendMutex.Lock()
|
|
91
|
+
defer c.sendMutex.Unlock()
|
|
92
|
+
|
|
93
|
+
if c.bytesSent >= c.sendWindow {
|
|
94
|
+
return 0, false
|
|
95
|
+
}
|
|
96
|
+
n = min(n, c.sendWindow-c.bytesSent)
|
|
97
|
+
added := min(
|
|
98
|
+
max(protocol.ByteCount(limiter(int(n))), 0),
|
|
99
|
+
n,
|
|
100
|
+
)
|
|
101
|
+
c.bytesSent += added
|
|
102
|
+
return added, added < n
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// UpdateSendWindow is called after receiving a MAX_DATA frame.
|
|
106
|
+
func (c *connectionFlowController) UpdateSendWindow(offset protocol.ByteCount) (updated bool) {
|
|
107
|
+
c.sendMutex.Lock()
|
|
108
|
+
defer c.sendMutex.Unlock()
|
|
109
|
+
|
|
110
|
+
if offset > c.sendWindow {
|
|
111
|
+
c.sendWindow = offset
|
|
112
|
+
return true
|
|
113
|
+
}
|
|
114
|
+
return false
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
func (c *connectionFlowController) SendWindowSize() protocol.ByteCount {
|
|
118
|
+
c.sendMutex.Lock()
|
|
119
|
+
defer c.sendMutex.Unlock()
|
|
120
|
+
|
|
121
|
+
return c.sendWindow - c.bytesSent
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// IsNewlyBlocked says if it is newly blocked by connection flow control.
|
|
125
|
+
// For every offset, it only returns true once.
|
|
126
|
+
// If it is blocked, the offset is returned.
|
|
127
|
+
func (c *connectionFlowController) IsNewlyBlocked() (bool, protocol.ByteCount) {
|
|
128
|
+
c.sendMutex.Lock()
|
|
129
|
+
defer c.sendMutex.Unlock()
|
|
130
|
+
|
|
131
|
+
if c.bytesSent < c.sendWindow || c.sendWindow == c.lastBlockedAt {
|
|
132
|
+
return false, 0
|
|
133
|
+
}
|
|
134
|
+
c.lastBlockedAt = c.sendWindow
|
|
135
|
+
return true, c.sendWindow
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
func (c *connectionFlowController) GetWindowUpdate(now monotime.Time) protocol.ByteCount {
|
|
139
|
+
c.mutex.Lock()
|
|
140
|
+
defer c.mutex.Unlock()
|
|
141
|
+
|
|
142
|
+
oldWindowSize := c.receiveWindowSize
|
|
143
|
+
offset := c.getWindowUpdate(now)
|
|
144
|
+
if c.logger.Debug() && oldWindowSize < c.receiveWindowSize {
|
|
145
|
+
c.logger.Debugf("Increasing receive flow control window for the connection to %d kB", c.receiveWindowSize/(1<<10))
|
|
146
|
+
}
|
|
147
|
+
return offset
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// EnsureMinimumWindowSize sets a minimum window size
|
|
151
|
+
// it should make sure that the connection-level window is increased when a stream-level window grows
|
|
152
|
+
func (c *connectionFlowController) EnsureMinimumWindowSize(inc protocol.ByteCount, now monotime.Time) {
|
|
153
|
+
c.mutex.Lock()
|
|
154
|
+
defer c.mutex.Unlock()
|
|
155
|
+
|
|
156
|
+
if inc <= c.receiveWindowSize {
|
|
157
|
+
return
|
|
158
|
+
}
|
|
159
|
+
newSize := min(inc, c.maxReceiveWindowSize)
|
|
160
|
+
if delta := newSize - c.receiveWindowSize; delta > 0 && c.allowWindowIncrease(delta) {
|
|
161
|
+
c.receiveWindowSize = newSize
|
|
162
|
+
if c.logger.Debug() {
|
|
163
|
+
c.logger.Debugf("Increasing receive flow control window for the connection to %d, in response to stream flow control window increase", newSize)
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
c.startNewAutoTuningEpoch(now)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Reset rests the flow controller. This happens when 0-RTT is rejected.
|
|
170
|
+
// All stream data is invalidated, it's as if we had never opened a stream and never sent any data.
|
|
171
|
+
// At that point, we only have sent stream data, but we didn't have the keys to open 1-RTT keys yet.
|
|
172
|
+
func (c *connectionFlowController) Reset() error {
|
|
173
|
+
c.mutex.Lock()
|
|
174
|
+
defer c.mutex.Unlock()
|
|
175
|
+
|
|
176
|
+
if c.bytesRead > 0 || c.highestReceived > 0 || !c.epochStartTime.IsZero() {
|
|
177
|
+
return errors.New("flow controller reset after reading data")
|
|
178
|
+
}
|
|
179
|
+
c.sendMutex.Lock()
|
|
180
|
+
defer c.sendMutex.Unlock()
|
|
181
|
+
|
|
182
|
+
c.bytesSent = 0
|
|
183
|
+
c.lastBlockedAt = 0
|
|
184
|
+
c.sendWindow = 0
|
|
185
|
+
return nil
|
|
186
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
package quic
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"fmt"
|
|
5
|
+
|
|
6
|
+
"github.com/quic-go/quic-go/internal/monotime"
|
|
7
|
+
"github.com/quic-go/quic-go/internal/protocol"
|
|
8
|
+
"github.com/quic-go/quic-go/internal/qerr"
|
|
9
|
+
"github.com/quic-go/quic-go/internal/utils"
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
type streamFlowController struct {
|
|
13
|
+
receiveFlowController
|
|
14
|
+
|
|
15
|
+
bytesSent protocol.ByteCount
|
|
16
|
+
sendWindow protocol.ByteCount
|
|
17
|
+
lastBlockedAt protocol.ByteCount
|
|
18
|
+
|
|
19
|
+
streamID protocol.StreamID
|
|
20
|
+
|
|
21
|
+
connection *connectionFlowController
|
|
22
|
+
|
|
23
|
+
receivedFinalOffset bool
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// newStreamFlowController gets a new flow controller for a stream.
|
|
27
|
+
func newStreamFlowController(
|
|
28
|
+
streamID protocol.StreamID,
|
|
29
|
+
cfc *connectionFlowController,
|
|
30
|
+
receiveWindow protocol.ByteCount,
|
|
31
|
+
maxReceiveWindow protocol.ByteCount,
|
|
32
|
+
initialSendWindow protocol.ByteCount,
|
|
33
|
+
rttStats *utils.RTTStats,
|
|
34
|
+
logger utils.Logger,
|
|
35
|
+
) *streamFlowController {
|
|
36
|
+
return &streamFlowController{
|
|
37
|
+
streamID: streamID,
|
|
38
|
+
connection: cfc,
|
|
39
|
+
sendWindow: initialSendWindow,
|
|
40
|
+
receiveFlowController: receiveFlowController{
|
|
41
|
+
rttStats: rttStats,
|
|
42
|
+
receiveWindow: receiveWindow,
|
|
43
|
+
receiveWindowSize: receiveWindow,
|
|
44
|
+
maxReceiveWindowSize: maxReceiveWindow,
|
|
45
|
+
logger: logger,
|
|
46
|
+
},
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// UpdateHighestReceived updates the highestReceived value, if the offset is higher.
|
|
51
|
+
func (c *streamFlowController) UpdateHighestReceived(offset protocol.ByteCount, final bool, now monotime.Time) error {
|
|
52
|
+
// If the final offset for this stream is already known, check for consistency.
|
|
53
|
+
if c.receivedFinalOffset {
|
|
54
|
+
// If we receive another final offset, check that it's the same.
|
|
55
|
+
if final && offset != c.highestReceived {
|
|
56
|
+
return &qerr.TransportError{
|
|
57
|
+
ErrorCode: qerr.FinalSizeError,
|
|
58
|
+
ErrorMessage: fmt.Sprintf("received inconsistent final offset for stream %d (old: %d, new: %d bytes)", c.streamID, c.highestReceived, offset),
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Check that the offset is below the final offset.
|
|
62
|
+
if offset > c.highestReceived {
|
|
63
|
+
return &qerr.TransportError{
|
|
64
|
+
ErrorCode: qerr.FinalSizeError,
|
|
65
|
+
ErrorMessage: fmt.Sprintf("received offset %d for stream %d, but final offset was already received at %d", offset, c.streamID, c.highestReceived),
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if final {
|
|
71
|
+
c.receivedFinalOffset = true
|
|
72
|
+
}
|
|
73
|
+
if offset == c.highestReceived {
|
|
74
|
+
return nil
|
|
75
|
+
}
|
|
76
|
+
// A higher offset was received before. This can happen due to reordering.
|
|
77
|
+
if offset < c.highestReceived {
|
|
78
|
+
if final {
|
|
79
|
+
return &qerr.TransportError{
|
|
80
|
+
ErrorCode: qerr.FinalSizeError,
|
|
81
|
+
ErrorMessage: fmt.Sprintf("received final offset %d for stream %d, but already received offset %d before", offset, c.streamID, c.highestReceived),
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return nil
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// If this is the first frame received for this stream, start flow-control auto-tuning.
|
|
88
|
+
if c.highestReceived == 0 {
|
|
89
|
+
c.startNewAutoTuningEpoch(now)
|
|
90
|
+
}
|
|
91
|
+
increment := offset - c.highestReceived
|
|
92
|
+
c.highestReceived = offset
|
|
93
|
+
|
|
94
|
+
if c.checkFlowControlViolation() {
|
|
95
|
+
return &qerr.TransportError{
|
|
96
|
+
ErrorCode: qerr.FlowControlError,
|
|
97
|
+
ErrorMessage: fmt.Sprintf("received %d bytes on stream %d, allowed %d bytes", offset, c.streamID, c.receiveWindow),
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return c.connection.IncrementHighestReceived(increment, now)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
func (c *streamFlowController) AddBytesRead(n protocol.ByteCount) (hasStreamWindowUpdate, hasConnWindowUpdate bool) {
|
|
104
|
+
c.mutex.Lock()
|
|
105
|
+
c.addBytesRead(n)
|
|
106
|
+
hasStreamWindowUpdate = c.shouldQueueWindowUpdate()
|
|
107
|
+
c.mutex.Unlock()
|
|
108
|
+
hasConnWindowUpdate = c.connection.AddBytesRead(n)
|
|
109
|
+
return
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
func (c *streamFlowController) Abandon() {
|
|
113
|
+
c.mutex.Lock()
|
|
114
|
+
unread := c.highestReceived - c.bytesRead
|
|
115
|
+
c.bytesRead = c.highestReceived
|
|
116
|
+
c.mutex.Unlock()
|
|
117
|
+
if unread > 0 {
|
|
118
|
+
c.connection.AddBytesRead(unread)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
func (c *streamFlowController) UpdateSendWindow(offset protocol.ByteCount) (updated bool) {
|
|
123
|
+
if offset > c.sendWindow {
|
|
124
|
+
c.sendWindow = offset
|
|
125
|
+
return true
|
|
126
|
+
}
|
|
127
|
+
return false
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// TryAddBytesSent adds n bytes if sufficient stream- and connection-level send credit is available.
|
|
131
|
+
func (c *streamFlowController) TryAddBytesSent(n protocol.ByteCount) bool {
|
|
132
|
+
if c.bytesSent > c.sendWindow || n > c.sendWindow-c.bytesSent {
|
|
133
|
+
return false
|
|
134
|
+
}
|
|
135
|
+
if !c.connection.TryAddBytesSent(n) {
|
|
136
|
+
return false
|
|
137
|
+
}
|
|
138
|
+
c.bytesSent += n
|
|
139
|
+
return true
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// AddBytesSentWithLimiter adds the limiter-approved portion of the available stream- and connection-level send credit.
|
|
143
|
+
func (c *streamFlowController) AddBytesSentWithLimiter(
|
|
144
|
+
n protocol.ByteCount,
|
|
145
|
+
limiter func(int) int,
|
|
146
|
+
) (protocol.ByteCount, bool) {
|
|
147
|
+
if c.bytesSent >= c.sendWindow {
|
|
148
|
+
return 0, false
|
|
149
|
+
}
|
|
150
|
+
n = min(n, c.sendWindow-c.bytesSent)
|
|
151
|
+
added, limited := c.connection.AddBytesSentWithLimiter(n, limiter)
|
|
152
|
+
c.bytesSent += added
|
|
153
|
+
return added, limited
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
func (c *streamFlowController) SendWindowSize() protocol.ByteCount {
|
|
157
|
+
return min(c.sendWindow-c.bytesSent, c.connection.SendWindowSize())
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
func (c *streamFlowController) IsNewlyBlocked() bool {
|
|
161
|
+
blocked, _ := c.isNewlyBlocked()
|
|
162
|
+
return blocked
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
func (c *streamFlowController) isNewlyBlocked() (bool, protocol.ByteCount) {
|
|
166
|
+
if c.bytesSent < c.sendWindow || c.sendWindow == c.lastBlockedAt {
|
|
167
|
+
return false, 0
|
|
168
|
+
}
|
|
169
|
+
c.lastBlockedAt = c.sendWindow
|
|
170
|
+
return true, c.sendWindow
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
func (c *streamFlowController) shouldQueueWindowUpdate() bool {
|
|
174
|
+
return !c.receivedFinalOffset && c.hasWindowUpdate()
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
func (c *streamFlowController) GetWindowUpdate(now monotime.Time) protocol.ByteCount {
|
|
178
|
+
// If we already received the final offset for this stream, the peer won't need any additional flow control credit.
|
|
179
|
+
if c.receivedFinalOffset {
|
|
180
|
+
return 0
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
c.mutex.Lock()
|
|
184
|
+
defer c.mutex.Unlock()
|
|
185
|
+
|
|
186
|
+
oldWindowSize := c.receiveWindowSize
|
|
187
|
+
offset := c.getWindowUpdate(now)
|
|
188
|
+
if c.receiveWindowSize > oldWindowSize { // auto-tuning enlarged the window size
|
|
189
|
+
c.logger.Debugf("Increasing receive flow control window for stream %d to %d", c.streamID, c.receiveWindowSize)
|
|
190
|
+
c.connection.EnsureMinimumWindowSize(
|
|
191
|
+
protocol.ByteCount(float64(c.receiveWindowSize)*protocol.ConnectionFlowControlMultiplier),
|
|
192
|
+
now,
|
|
193
|
+
)
|
|
194
|
+
}
|
|
195
|
+
return offset
|
|
196
|
+
}
|