protocol-quic 0.0.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
- checksums.yaml.gz.sig +0 -0
- data/ext/ngtcp2/AUTHORS +44 -0
- data/ext/ngtcp2/CMakeLists.txt +431 -0
- data/ext/ngtcp2/CMakeOptions.txt +17 -0
- data/ext/ngtcp2/COPYING +22 -0
- data/ext/ngtcp2/ChangeLog +0 -0
- data/ext/ngtcp2/Makefile.am +60 -0
- data/ext/ngtcp2/NEWS +0 -0
- data/ext/ngtcp2/README +1 -0
- data/ext/ngtcp2/README.rst +258 -0
- data/ext/ngtcp2/ci/build_boringssl.sh +10 -0
- data/ext/ngtcp2/ci/build_nghttp3.sh +9 -0
- data/ext/ngtcp2/ci/build_openssl1.sh +8 -0
- data/ext/ngtcp2/ci/build_openssl1_cross.sh +9 -0
- data/ext/ngtcp2/ci/build_openssl3.sh +8 -0
- data/ext/ngtcp2/ci/build_picotls.sh +26 -0
- data/ext/ngtcp2/ci/build_wolfssl.sh +9 -0
- data/ext/ngtcp2/ci/gen-certificate.sh +8 -0
- data/ext/ngtcp2/cmake/ExtractValidFlags.cmake +31 -0
- data/ext/ngtcp2/cmake/FindCUnit.cmake +40 -0
- data/ext/ngtcp2/cmake/FindJemalloc.cmake +40 -0
- data/ext/ngtcp2/cmake/FindLibev.cmake +38 -0
- data/ext/ngtcp2/cmake/FindLibnghttp3.cmake +41 -0
- data/ext/ngtcp2/cmake/Findwolfssl.cmake +41 -0
- data/ext/ngtcp2/cmake/Version.cmake +11 -0
- data/ext/ngtcp2/cmakeconfig.h.in +36 -0
- data/ext/ngtcp2/configure.ac +755 -0
- data/ext/ngtcp2/crypto/CMakeLists.txt +56 -0
- data/ext/ngtcp2/crypto/Makefile.am +49 -0
- data/ext/ngtcp2/crypto/boringssl/CMakeLists.txt +64 -0
- data/ext/ngtcp2/crypto/boringssl/Makefile.am +39 -0
- data/ext/ngtcp2/crypto/boringssl/boringssl.c +630 -0
- data/ext/ngtcp2/crypto/boringssl/libngtcp2_crypto_boringssl.pc.in +33 -0
- data/ext/ngtcp2/crypto/gnutls/CMakeLists.txt +86 -0
- data/ext/ngtcp2/crypto/gnutls/Makefile.am +43 -0
- data/ext/ngtcp2/crypto/gnutls/gnutls.c +644 -0
- data/ext/ngtcp2/crypto/gnutls/libngtcp2_crypto_gnutls.pc.in +33 -0
- data/ext/ngtcp2/crypto/includes/CMakeLists.txt +56 -0
- data/ext/ngtcp2/crypto/includes/Makefile.am +45 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h +893 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_boringssl.h +104 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_gnutls.h +107 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_openssl.h +132 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_picotls.h +246 -0
- data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_wolfssl.h +106 -0
- data/ext/ngtcp2/crypto/openssl/CMakeLists.txt +86 -0
- data/ext/ngtcp2/crypto/openssl/Makefile.am +43 -0
- data/ext/ngtcp2/crypto/openssl/libngtcp2_crypto_openssl.pc.in +33 -0
- data/ext/ngtcp2/crypto/openssl/openssl.c +807 -0
- data/ext/ngtcp2/crypto/picotls/CMakeLists.txt +65 -0
- data/ext/ngtcp2/crypto/picotls/Makefile.am +39 -0
- data/ext/ngtcp2/crypto/picotls/libngtcp2_crypto_picotls.pc.in +33 -0
- data/ext/ngtcp2/crypto/picotls/picotls.c +707 -0
- data/ext/ngtcp2/crypto/shared.c +1431 -0
- data/ext/ngtcp2/crypto/shared.h +350 -0
- data/ext/ngtcp2/crypto/wolfssl/CMakeLists.txt +84 -0
- data/ext/ngtcp2/crypto/wolfssl/Makefile.am +43 -0
- data/ext/ngtcp2/crypto/wolfssl/libngtcp2_crypto_wolfssl.pc.in +33 -0
- data/ext/ngtcp2/crypto/wolfssl/wolfssl.c +534 -0
- data/ext/ngtcp2/doc/Makefile.am +65 -0
- data/ext/ngtcp2/doc/make.bat +35 -0
- data/ext/ngtcp2/doc/mkapiref.py +356 -0
- data/ext/ngtcp2/doc/source/conf.py.in +94 -0
- data/ext/ngtcp2/doc/source/index.rst +22 -0
- data/ext/ngtcp2/doc/source/programmers-guide.rst +476 -0
- data/ext/ngtcp2/docker/Dockerfile +39 -0
- data/ext/ngtcp2/examples/CMakeLists.txt +361 -0
- data/ext/ngtcp2/examples/Makefile.am +228 -0
- data/ext/ngtcp2/examples/client.cc +3049 -0
- data/ext/ngtcp2/examples/client.h +192 -0
- data/ext/ngtcp2/examples/client_base.cc +202 -0
- data/ext/ngtcp2/examples/client_base.h +213 -0
- data/ext/ngtcp2/examples/debug.cc +298 -0
- data/ext/ngtcp2/examples/debug.h +124 -0
- data/ext/ngtcp2/examples/examplestest.cc +84 -0
- data/ext/ngtcp2/examples/gtlssimpleclient.c +720 -0
- data/ext/ngtcp2/examples/h09client.cc +2601 -0
- data/ext/ngtcp2/examples/h09client.h +196 -0
- data/ext/ngtcp2/examples/h09server.cc +3024 -0
- data/ext/ngtcp2/examples/h09server.h +237 -0
- data/ext/ngtcp2/examples/http.cc +138 -0
- data/ext/ngtcp2/examples/http.h +44 -0
- data/ext/ngtcp2/examples/network.h +80 -0
- data/ext/ngtcp2/examples/server.cc +3731 -0
- data/ext/ngtcp2/examples/server.h +256 -0
- data/ext/ngtcp2/examples/server_base.cc +58 -0
- data/ext/ngtcp2/examples/server_base.h +195 -0
- data/ext/ngtcp2/examples/shared.cc +385 -0
- data/ext/ngtcp2/examples/shared.h +96 -0
- data/ext/ngtcp2/examples/simpleclient.c +683 -0
- data/ext/ngtcp2/examples/template.h +71 -0
- data/ext/ngtcp2/examples/tests/README.rst +60 -0
- data/ext/ngtcp2/examples/tests/__init__.py +0 -0
- data/ext/ngtcp2/examples/tests/config.ini.in +32 -0
- data/ext/ngtcp2/examples/tests/conftest.py +28 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/__init__.py +6 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/certs.py +476 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/client.py +187 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/env.py +191 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/log.py +101 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/server.py +137 -0
- data/ext/ngtcp2/examples/tests/ngtcp2test/tls.py +983 -0
- data/ext/ngtcp2/examples/tests/test_01_handshake.py +30 -0
- data/ext/ngtcp2/examples/tests/test_02_resume.py +46 -0
- data/ext/ngtcp2/examples/tests/test_03_earlydata.py +56 -0
- data/ext/ngtcp2/examples/tests/test_04_clientcert.py +57 -0
- data/ext/ngtcp2/examples/tests/test_05_ciphers.py +46 -0
- data/ext/ngtcp2/examples/tls_client_context.h +52 -0
- data/ext/ngtcp2/examples/tls_client_context_boringssl.cc +126 -0
- data/ext/ngtcp2/examples/tls_client_context_boringssl.h +49 -0
- data/ext/ngtcp2/examples/tls_client_context_gnutls.cc +74 -0
- data/ext/ngtcp2/examples/tls_client_context_gnutls.h +50 -0
- data/ext/ngtcp2/examples/tls_client_context_openssl.cc +137 -0
- data/ext/ngtcp2/examples/tls_client_context_openssl.h +49 -0
- data/ext/ngtcp2/examples/tls_client_context_picotls.cc +158 -0
- data/ext/ngtcp2/examples/tls_client_context_picotls.h +53 -0
- data/ext/ngtcp2/examples/tls_client_context_wolfssl.cc +177 -0
- data/ext/ngtcp2/examples/tls_client_context_wolfssl.h +51 -0
- data/ext/ngtcp2/examples/tls_client_session.h +52 -0
- data/ext/ngtcp2/examples/tls_client_session_boringssl.cc +110 -0
- data/ext/ngtcp2/examples/tls_client_session_boringssl.h +52 -0
- data/ext/ngtcp2/examples/tls_client_session_gnutls.cc +190 -0
- data/ext/ngtcp2/examples/tls_client_session_gnutls.h +52 -0
- data/ext/ngtcp2/examples/tls_client_session_openssl.cc +113 -0
- data/ext/ngtcp2/examples/tls_client_session_openssl.h +52 -0
- data/ext/ngtcp2/examples/tls_client_session_picotls.cc +147 -0
- data/ext/ngtcp2/examples/tls_client_session_picotls.h +52 -0
- data/ext/ngtcp2/examples/tls_client_session_wolfssl.cc +160 -0
- data/ext/ngtcp2/examples/tls_client_session_wolfssl.h +52 -0
- data/ext/ngtcp2/examples/tls_server_context.h +52 -0
- data/ext/ngtcp2/examples/tls_server_context_boringssl.cc +257 -0
- data/ext/ngtcp2/examples/tls_server_context_boringssl.h +54 -0
- data/ext/ngtcp2/examples/tls_server_context_gnutls.cc +99 -0
- data/ext/ngtcp2/examples/tls_server_context_gnutls.h +59 -0
- data/ext/ngtcp2/examples/tls_server_context_openssl.cc +338 -0
- data/ext/ngtcp2/examples/tls_server_context_openssl.h +54 -0
- data/ext/ngtcp2/examples/tls_server_context_picotls.cc +321 -0
- data/ext/ngtcp2/examples/tls_server_context_picotls.h +58 -0
- data/ext/ngtcp2/examples/tls_server_context_wolfssl.cc +284 -0
- data/ext/ngtcp2/examples/tls_server_context_wolfssl.h +55 -0
- data/ext/ngtcp2/examples/tls_server_session.h +52 -0
- data/ext/ngtcp2/examples/tls_server_session_boringssl.cc +84 -0
- data/ext/ngtcp2/examples/tls_server_session_boringssl.h +47 -0
- data/ext/ngtcp2/examples/tls_server_session_gnutls.cc +155 -0
- data/ext/ngtcp2/examples/tls_server_session_gnutls.h +46 -0
- data/ext/ngtcp2/examples/tls_server_session_openssl.cc +54 -0
- data/ext/ngtcp2/examples/tls_server_session_openssl.h +47 -0
- data/ext/ngtcp2/examples/tls_server_session_picotls.cc +70 -0
- data/ext/ngtcp2/examples/tls_server_session_picotls.h +47 -0
- data/ext/ngtcp2/examples/tls_server_session_wolfssl.cc +55 -0
- data/ext/ngtcp2/examples/tls_server_session_wolfssl.h +47 -0
- data/ext/ngtcp2/examples/tls_session_base_gnutls.cc +87 -0
- data/ext/ngtcp2/examples/tls_session_base_gnutls.h +51 -0
- data/ext/ngtcp2/examples/tls_session_base_openssl.cc +54 -0
- data/ext/ngtcp2/examples/tls_session_base_openssl.h +52 -0
- data/ext/ngtcp2/examples/tls_session_base_picotls.cc +56 -0
- data/ext/ngtcp2/examples/tls_session_base_picotls.h +54 -0
- data/ext/ngtcp2/examples/tls_session_base_wolfssl.cc +54 -0
- data/ext/ngtcp2/examples/tls_session_base_wolfssl.h +54 -0
- data/ext/ngtcp2/examples/tls_shared_picotls.cc +59 -0
- data/ext/ngtcp2/examples/tls_shared_picotls.h +36 -0
- data/ext/ngtcp2/examples/util.cc +646 -0
- data/ext/ngtcp2/examples/util.h +361 -0
- data/ext/ngtcp2/examples/util_gnutls.cc +136 -0
- data/ext/ngtcp2/examples/util_openssl.cc +131 -0
- data/ext/ngtcp2/examples/util_test.cc +237 -0
- data/ext/ngtcp2/examples/util_test.h +45 -0
- data/ext/ngtcp2/examples/util_wolfssl.cc +130 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/ack +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/ack_ecn +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/connection_close +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/crypto +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/data_blocked +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/datagram +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/datagram_len +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/max_data +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/max_stream_data +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/max_streams +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/new_connection_id +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/new_token +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/path_challenge +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/path_response +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/reset_stream +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/retire_connection_id +1 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/stop_sending +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/stream +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/stream_data_blocked +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/stream_len +0 -0
- data/ext/ngtcp2/fuzz/corpus/decode_frame/streams_blocked +0 -0
- data/ext/ngtcp2/fuzz/corpus/ksl/random +0 -0
- data/ext/ngtcp2/fuzz/decode_frame.cc +25 -0
- data/ext/ngtcp2/fuzz/ksl.cc +77 -0
- data/ext/ngtcp2/interop/Dockerfile +39 -0
- data/ext/ngtcp2/interop/run_endpoint.sh +93 -0
- data/ext/ngtcp2/lib/CMakeLists.txt +110 -0
- data/ext/ngtcp2/lib/Makefile.am +122 -0
- data/ext/ngtcp2/lib/includes/CMakeLists.txt +4 -0
- data/ext/ngtcp2/lib/includes/Makefile.am +25 -0
- data/ext/ngtcp2/lib/includes/ngtcp2/ngtcp2.h +5843 -0
- data/ext/ngtcp2/lib/includes/ngtcp2/version.h.in +51 -0
- data/ext/ngtcp2/lib/libngtcp2.pc.in +33 -0
- data/ext/ngtcp2/lib/ngtcp2_acktr.c +335 -0
- data/ext/ngtcp2/lib/ngtcp2_acktr.h +221 -0
- data/ext/ngtcp2/lib/ngtcp2_addr.c +117 -0
- data/ext/ngtcp2/lib/ngtcp2_addr.h +69 -0
- data/ext/ngtcp2/lib/ngtcp2_balloc.c +90 -0
- data/ext/ngtcp2/lib/ngtcp2_balloc.h +91 -0
- data/ext/ngtcp2/lib/ngtcp2_bbr.c +693 -0
- data/ext/ngtcp2/lib/ngtcp2_bbr.h +157 -0
- data/ext/ngtcp2/lib/ngtcp2_bbr2.c +1490 -0
- data/ext/ngtcp2/lib/ngtcp2_bbr2.h +149 -0
- data/ext/ngtcp2/lib/ngtcp2_buf.c +56 -0
- data/ext/ngtcp2/lib/ngtcp2_buf.h +108 -0
- data/ext/ngtcp2/lib/ngtcp2_cc.c +616 -0
- data/ext/ngtcp2/lib/ngtcp2_cc.h +422 -0
- data/ext/ngtcp2/lib/ngtcp2_cid.c +147 -0
- data/ext/ngtcp2/lib/ngtcp2_cid.h +175 -0
- data/ext/ngtcp2/lib/ngtcp2_conn.c +13731 -0
- data/ext/ngtcp2/lib/ngtcp2_conn.h +1119 -0
- data/ext/ngtcp2/lib/ngtcp2_conn_stat.h +131 -0
- data/ext/ngtcp2/lib/ngtcp2_conv.c +291 -0
- data/ext/ngtcp2/lib/ngtcp2_conv.h +208 -0
- data/ext/ngtcp2/lib/ngtcp2_crypto.c +895 -0
- data/ext/ngtcp2/lib/ngtcp2_crypto.h +148 -0
- data/ext/ngtcp2/lib/ngtcp2_err.c +154 -0
- data/ext/ngtcp2/lib/ngtcp2_err.h +34 -0
- data/ext/ngtcp2/lib/ngtcp2_gaptr.c +167 -0
- data/ext/ngtcp2/lib/ngtcp2_gaptr.h +98 -0
- data/ext/ngtcp2/lib/ngtcp2_idtr.c +79 -0
- data/ext/ngtcp2/lib/ngtcp2_idtr.h +89 -0
- data/ext/ngtcp2/lib/ngtcp2_ksl.c +819 -0
- data/ext/ngtcp2/lib/ngtcp2_ksl.h +345 -0
- data/ext/ngtcp2/lib/ngtcp2_log.c +822 -0
- data/ext/ngtcp2/lib/ngtcp2_log.h +123 -0
- data/ext/ngtcp2/lib/ngtcp2_macro.h +58 -0
- data/ext/ngtcp2/lib/ngtcp2_map.c +336 -0
- data/ext/ngtcp2/lib/ngtcp2_map.h +136 -0
- data/ext/ngtcp2/lib/ngtcp2_mem.c +113 -0
- data/ext/ngtcp2/lib/ngtcp2_mem.h +72 -0
- data/ext/ngtcp2/lib/ngtcp2_net.h +136 -0
- data/ext/ngtcp2/lib/ngtcp2_objalloc.c +40 -0
- data/ext/ngtcp2/lib/ngtcp2_objalloc.h +140 -0
- data/ext/ngtcp2/lib/ngtcp2_opl.c +46 -0
- data/ext/ngtcp2/lib/ngtcp2_opl.h +65 -0
- data/ext/ngtcp2/lib/ngtcp2_path.c +77 -0
- data/ext/ngtcp2/lib/ngtcp2_path.h +49 -0
- data/ext/ngtcp2/lib/ngtcp2_pkt.c +2527 -0
- data/ext/ngtcp2/lib/ngtcp2_pkt.h +1235 -0
- data/ext/ngtcp2/lib/ngtcp2_pmtud.c +160 -0
- data/ext/ngtcp2/lib/ngtcp2_pmtud.h +123 -0
- data/ext/ngtcp2/lib/ngtcp2_ppe.c +230 -0
- data/ext/ngtcp2/lib/ngtcp2_ppe.h +153 -0
- data/ext/ngtcp2/lib/ngtcp2_pq.c +164 -0
- data/ext/ngtcp2/lib/ngtcp2_pq.h +126 -0
- data/ext/ngtcp2/lib/ngtcp2_pv.c +172 -0
- data/ext/ngtcp2/lib/ngtcp2_pv.h +194 -0
- data/ext/ngtcp2/lib/ngtcp2_qlog.c +1219 -0
- data/ext/ngtcp2/lib/ngtcp2_qlog.h +161 -0
- data/ext/ngtcp2/lib/ngtcp2_range.c +61 -0
- data/ext/ngtcp2/lib/ngtcp2_range.h +80 -0
- data/ext/ngtcp2/lib/ngtcp2_rcvry.h +40 -0
- data/ext/ngtcp2/lib/ngtcp2_ringbuf.c +121 -0
- data/ext/ngtcp2/lib/ngtcp2_ringbuf.h +132 -0
- data/ext/ngtcp2/lib/ngtcp2_rob.c +319 -0
- data/ext/ngtcp2/lib/ngtcp2_rob.h +197 -0
- data/ext/ngtcp2/lib/ngtcp2_rst.c +138 -0
- data/ext/ngtcp2/lib/ngtcp2_rst.h +86 -0
- data/ext/ngtcp2/lib/ngtcp2_rtb.c +1676 -0
- data/ext/ngtcp2/lib/ngtcp2_rtb.h +468 -0
- data/ext/ngtcp2/lib/ngtcp2_str.c +233 -0
- data/ext/ngtcp2/lib/ngtcp2_str.h +94 -0
- data/ext/ngtcp2/lib/ngtcp2_strm.c +698 -0
- data/ext/ngtcp2/lib/ngtcp2_strm.h +310 -0
- data/ext/ngtcp2/lib/ngtcp2_unreachable.c +71 -0
- data/ext/ngtcp2/lib/ngtcp2_unreachable.h +46 -0
- data/ext/ngtcp2/lib/ngtcp2_vec.c +243 -0
- data/ext/ngtcp2/lib/ngtcp2_vec.h +120 -0
- data/ext/ngtcp2/lib/ngtcp2_version.c +39 -0
- data/ext/ngtcp2/lib/ngtcp2_window_filter.c +99 -0
- data/ext/ngtcp2/lib/ngtcp2_window_filter.h +65 -0
- data/ext/ngtcp2/m4/ax_check_compile_flag.m4 +74 -0
- data/ext/ngtcp2/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- data/ext/ngtcp2/tests/CMakeLists.txt +68 -0
- data/ext/ngtcp2/tests/Makefile.am +94 -0
- data/ext/ngtcp2/tests/main.c +358 -0
- data/ext/ngtcp2/tests/ngtcp2_acktr_test.c +367 -0
- data/ext/ngtcp2/tests/ngtcp2_acktr_test.h +37 -0
- data/ext/ngtcp2/tests/ngtcp2_conn_test.c +9821 -0
- data/ext/ngtcp2/tests/ngtcp2_conn_test.h +104 -0
- data/ext/ngtcp2/tests/ngtcp2_conv_test.c +430 -0
- data/ext/ngtcp2/tests/ngtcp2_conv_test.h +46 -0
- data/ext/ngtcp2/tests/ngtcp2_crypto_test.c +667 -0
- data/ext/ngtcp2/tests/ngtcp2_crypto_test.h +35 -0
- data/ext/ngtcp2/tests/ngtcp2_gaptr_test.c +127 -0
- data/ext/ngtcp2/tests/ngtcp2_gaptr_test.h +36 -0
- data/ext/ngtcp2/tests/ngtcp2_idtr_test.c +79 -0
- data/ext/ngtcp2/tests/ngtcp2_idtr_test.h +34 -0
- data/ext/ngtcp2/tests/ngtcp2_ksl_test.c +502 -0
- data/ext/ngtcp2/tests/ngtcp2_ksl_test.h +39 -0
- data/ext/ngtcp2/tests/ngtcp2_map_test.c +206 -0
- data/ext/ngtcp2/tests/ngtcp2_map_test.h +38 -0
- data/ext/ngtcp2/tests/ngtcp2_pkt_test.c +1645 -0
- data/ext/ngtcp2/tests/ngtcp2_pkt_test.h +68 -0
- data/ext/ngtcp2/tests/ngtcp2_pmtud_test.c +153 -0
- data/ext/ngtcp2/tests/ngtcp2_pmtud_test.h +34 -0
- data/ext/ngtcp2/tests/ngtcp2_pv_test.c +129 -0
- data/ext/ngtcp2/tests/ngtcp2_pv_test.h +35 -0
- data/ext/ngtcp2/tests/ngtcp2_range_test.c +105 -0
- data/ext/ngtcp2/tests/ngtcp2_range_test.h +36 -0
- data/ext/ngtcp2/tests/ngtcp2_ringbuf_test.c +91 -0
- data/ext/ngtcp2/tests/ngtcp2_ringbuf_test.h +35 -0
- data/ext/ngtcp2/tests/ngtcp2_rob_test.c +552 -0
- data/ext/ngtcp2/tests/ngtcp2_rob_test.h +37 -0
- data/ext/ngtcp2/tests/ngtcp2_rtb_test.c +470 -0
- data/ext/ngtcp2/tests/ngtcp2_rtb_test.h +38 -0
- data/ext/ngtcp2/tests/ngtcp2_str_test.c +96 -0
- data/ext/ngtcp2/tests/ngtcp2_str_test.h +36 -0
- data/ext/ngtcp2/tests/ngtcp2_strm_test.c +575 -0
- data/ext/ngtcp2/tests/ngtcp2_strm_test.h +36 -0
- data/ext/ngtcp2/tests/ngtcp2_test_helper.c +404 -0
- data/ext/ngtcp2/tests/ngtcp2_test_helper.h +191 -0
- data/ext/ngtcp2/tests/ngtcp2_vec_test.c +426 -0
- data/ext/ngtcp2/tests/ngtcp2_vec_test.h +36 -0
- data/ext/ngtcp2/third-party/CMakeLists.txt +34 -0
- data/ext/ngtcp2/third-party/Makefile.am +31 -0
- data/ext/ngtcp2/third-party/http-parser/AUTHORS +68 -0
- data/ext/ngtcp2/third-party/http-parser/LICENSE-MIT +23 -0
- data/ext/ngtcp2/third-party/http-parser/Makefile +157 -0
- data/ext/ngtcp2/third-party/http-parser/README.md +246 -0
- data/ext/ngtcp2/third-party/http-parser/bench.c +111 -0
- data/ext/ngtcp2/third-party/http-parser/contrib/parsertrace.c +160 -0
- data/ext/ngtcp2/third-party/http-parser/contrib/url_parser.c +47 -0
- data/ext/ngtcp2/third-party/http-parser/http_parser.c +2419 -0
- data/ext/ngtcp2/third-party/http-parser/http_parser.gyp +111 -0
- data/ext/ngtcp2/third-party/http-parser/http_parser.h +431 -0
- data/ext/ngtcp2/third-party/http-parser/test.c +4411 -0
- data/lib/protocol/quic/version.rb +10 -0
- data/lib/protocol/quic.rb +9 -0
- data/license.md +21 -0
- data.tar.gz.sig +1 -0
- metadata +424 -0
- metadata.gz.sig +1 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 37eb98bd4ac433c78a3f53cfba7dfc29ee1da28e49557bba52d9f568254ee0d4
|
|
4
|
+
data.tar.gz: fa2894b34f6682b2b961574b0bf1a4b3867ce1cb0ade491d9fb47531ec91d571
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: a068f6cc8773139eac21ac2e91115f925fbe68500605b42a13fcb4c61cd57d3fd48b28f1b21a9532f326908f6af7fb58e8d95cefd0f87ae1b7625e67d0d3bc25
|
|
7
|
+
data.tar.gz: 90b32525a7dfa4f584b2ca42e8e5835ea342f7027754d6d46e97a0039f3ec41d930ddf8cc46e31e4f7ff3e32bac02672a8bce4d21b63048e3ce30f8fef865347
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data/ext/ngtcp2/AUTHORS
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Alexis La Goutte
|
|
2
|
+
Amir Livneh
|
|
3
|
+
Anna Henningsen
|
|
4
|
+
Bryan Call
|
|
5
|
+
Daan De Meyer
|
|
6
|
+
Daiki Ueno
|
|
7
|
+
Daniel Bevenius
|
|
8
|
+
Daniel Stenberg
|
|
9
|
+
Dave Reisner
|
|
10
|
+
Don
|
|
11
|
+
Frédéric Lécaille
|
|
12
|
+
Félix Dagenais
|
|
13
|
+
James M Snell
|
|
14
|
+
Javier Blazquez
|
|
15
|
+
Jay Satiro
|
|
16
|
+
Jean-Philippe Boivin
|
|
17
|
+
Jiawen Geng
|
|
18
|
+
Junqi Wang
|
|
19
|
+
Ken-ichi ICHINO
|
|
20
|
+
Liang Ma
|
|
21
|
+
Martin Thomson
|
|
22
|
+
NKTelnet
|
|
23
|
+
Natris
|
|
24
|
+
Patrick Griffis
|
|
25
|
+
Peter Wu
|
|
26
|
+
Samuel Henrique
|
|
27
|
+
Stefan Eissing
|
|
28
|
+
Stefan Eissing
|
|
29
|
+
Tatsuhiro Tsujikawa
|
|
30
|
+
Tim Gates
|
|
31
|
+
Tomas Mraz
|
|
32
|
+
Toni Uhlig
|
|
33
|
+
Valère Plantevin
|
|
34
|
+
Victor Loh
|
|
35
|
+
Viktor Szakats
|
|
36
|
+
Zizhong Zhang
|
|
37
|
+
flx413
|
|
38
|
+
hondaxiao
|
|
39
|
+
junqiw
|
|
40
|
+
msoxzw
|
|
41
|
+
nickfajones
|
|
42
|
+
rhoxn
|
|
43
|
+
scw00
|
|
44
|
+
shibin k v
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
# ngtcp2
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2016 ngtcp2 contributors
|
|
4
|
+
# Copyright (c) 2012 nghttp2 contributors
|
|
5
|
+
#
|
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
7
|
+
# a copy of this software and associated documentation files (the
|
|
8
|
+
# "Software"), to deal in the Software without restriction, including
|
|
9
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
10
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
11
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
12
|
+
# the following conditions:
|
|
13
|
+
#
|
|
14
|
+
# The above copyright notice and this permission notice shall be
|
|
15
|
+
# included in all copies or substantial portions of the Software.
|
|
16
|
+
#
|
|
17
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
18
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
19
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
20
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
21
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
22
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
23
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
24
|
+
|
|
25
|
+
cmake_minimum_required(VERSION 3.1)
|
|
26
|
+
|
|
27
|
+
# Allow setting VISIBILITY_PRESET on static library targets without warning.
|
|
28
|
+
cmake_policy(SET CMP0063 NEW)
|
|
29
|
+
|
|
30
|
+
# XXX using 0.1.90 instead of 0.2.0-DEV
|
|
31
|
+
project(ngtcp2 VERSION 0.13.90)
|
|
32
|
+
|
|
33
|
+
# See versioning rule:
|
|
34
|
+
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
|
35
|
+
set(LT_CURRENT 10)
|
|
36
|
+
set(LT_REVISION 1)
|
|
37
|
+
set(LT_AGE 0)
|
|
38
|
+
|
|
39
|
+
set(CRYPTO_OPENSSL_LT_CURRENT 4)
|
|
40
|
+
set(CRYPTO_OPENSSL_LT_REVISION 0)
|
|
41
|
+
set(CRYPTO_OPENSSL_LT_AGE 0)
|
|
42
|
+
|
|
43
|
+
set(CRYPTO_GNUTLS_LT_CURRENT 4)
|
|
44
|
+
set(CRYPTO_GNUTLS_LT_REVISION 0)
|
|
45
|
+
set(CRYPTO_GNUTLS_LT_AGE 0)
|
|
46
|
+
|
|
47
|
+
set(CRYPTO_WOLFSSL_LT_CURRENT 1)
|
|
48
|
+
set(CRYPTO_WOLFSSL_LT_REVISION 0)
|
|
49
|
+
set(CRYPTO_WOLFSSL_LT_AGE 0)
|
|
50
|
+
|
|
51
|
+
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
|
|
52
|
+
include(Version)
|
|
53
|
+
|
|
54
|
+
math(EXPR LT_SOVERSION "${LT_CURRENT} - ${LT_AGE}")
|
|
55
|
+
set(LT_VERSION "${LT_SOVERSION}.${LT_AGE}.${LT_REVISION}")
|
|
56
|
+
|
|
57
|
+
math(EXPR CRYPTO_OPENSSL_LT_SOVERSION
|
|
58
|
+
"${CRYPTO_OPENSSL_LT_CURRENT} - ${CRYPTO_OPENSSL_LT_AGE}")
|
|
59
|
+
set(CRYPTO_OPENSSL_LT_VERSION
|
|
60
|
+
"${CRYPTO_OPENSSL_LT_SOVERSION}.${CRYPTO_OPENSSL_LT_AGE}.${CRYPTO_OPENSSL_LT_REVISION}")
|
|
61
|
+
|
|
62
|
+
math(EXPR CRYPTO_GNUTLS_LT_SOVERSION
|
|
63
|
+
"${CRYPTO_GNUTLS_LT_CURRENT} - ${CRYPTO_GNUTLS_LT_AGE}")
|
|
64
|
+
set(CRYPTO_GNUTLS_LT_VERSION
|
|
65
|
+
"${CRYPTO_GNUTLS_LT_SOVERSION}.${CRYPTO_GNUTLS_LT_AGE}.${CRYPTO_GNUTLS_LT_REVISION}")
|
|
66
|
+
|
|
67
|
+
math(EXPR CRYPTO_WOLFSSL_LT_SOVERSION
|
|
68
|
+
"${CRYPTO_WOLFSSL_LT_CURRENT} - ${CRYPTO_WOLFSSL_LT_AGE}")
|
|
69
|
+
set(CRYPTO_WOLFSSL_LT_VERSION
|
|
70
|
+
"${CRYPTO_WOLFSSL_LT_SOVERSION}.${CRYPTO_WOLFSSL_LT_AGE}.${CRYPTO_WOLFSSL_LT_REVISION}")
|
|
71
|
+
|
|
72
|
+
set(PACKAGE_VERSION "${PROJECT_VERSION}")
|
|
73
|
+
HexVersion(PACKAGE_VERSION_NUM ${PROJECT_VERSION_MAJOR} ${PROJECT_VERSION_MINOR} ${PROJECT_VERSION_PATCH})
|
|
74
|
+
|
|
75
|
+
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
76
|
+
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the build type" FORCE)
|
|
77
|
+
|
|
78
|
+
# Include "None" as option to disable any additional (optimization) flags,
|
|
79
|
+
# relying on just CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (which are empty by
|
|
80
|
+
# default). These strings are presented in cmake-gui.
|
|
81
|
+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
|
82
|
+
"None" "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
|
83
|
+
endif()
|
|
84
|
+
|
|
85
|
+
include(GNUInstallDirs)
|
|
86
|
+
|
|
87
|
+
include(CMakeOptions.txt)
|
|
88
|
+
|
|
89
|
+
# Do not disable assertions based on CMAKE_BUILD_TYPE.
|
|
90
|
+
foreach(_build_type "Release" "MinSizeRel" "RelWithDebInfo")
|
|
91
|
+
foreach(_lang C CXX)
|
|
92
|
+
string(TOUPPER "CMAKE_${_lang}_FLAGS_${_build_type}" _var)
|
|
93
|
+
string(REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " " ${_var} "${${_var}}")
|
|
94
|
+
endforeach()
|
|
95
|
+
endforeach()
|
|
96
|
+
|
|
97
|
+
include(CMakePushCheckState)
|
|
98
|
+
include(ExtractValidFlags)
|
|
99
|
+
|
|
100
|
+
if(NOT CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|
101
|
+
if(ENABLE_ASAN)
|
|
102
|
+
cmake_push_check_state()
|
|
103
|
+
set(CMAKE_REQUIRED_LIBRARIES "-fsanitize=address")
|
|
104
|
+
check_c_compiler_flag(-fsanitize=address C__fsanitize_address_VALID)
|
|
105
|
+
check_cxx_compiler_flag(-fsanitize=address CXX__fsanitize_address_VALID)
|
|
106
|
+
cmake_pop_check_state()
|
|
107
|
+
if(NOT C__fsanitize_address_VALID OR NOT CXX__fsanitize_address_VALID)
|
|
108
|
+
message(WARNING "ENABLE_ASAN was requested, but not supported!")
|
|
109
|
+
else()
|
|
110
|
+
set(CMAKE_C_FLAGS "-fsanitize=address ${CMAKE_C_FLAGS}")
|
|
111
|
+
set(CMAKE_CXX_FLAGS "-fsanitize=address ${CMAKE_CXX_FLAGS}")
|
|
112
|
+
endif()
|
|
113
|
+
endif()
|
|
114
|
+
endif()
|
|
115
|
+
|
|
116
|
+
if(ENABLE_GNUTLS)
|
|
117
|
+
find_package(GnuTLS 3.7.2)
|
|
118
|
+
endif()
|
|
119
|
+
if(ENABLE_OPENSSL)
|
|
120
|
+
find_package(OpenSSL 1.1.1)
|
|
121
|
+
endif()
|
|
122
|
+
if(ENABLE_WOLFSSL)
|
|
123
|
+
find_package(wolfssl 5.5.0)
|
|
124
|
+
endif()
|
|
125
|
+
if(ENABLE_JEMALLOC)
|
|
126
|
+
find_package(Jemalloc)
|
|
127
|
+
endif()
|
|
128
|
+
find_package(Libev 4.11)
|
|
129
|
+
find_package(Libnghttp3 0.0.0)
|
|
130
|
+
find_package(CUnit 2.1)
|
|
131
|
+
enable_testing()
|
|
132
|
+
set(HAVE_CUNIT ${CUNIT_FOUND})
|
|
133
|
+
if(HAVE_CUNIT)
|
|
134
|
+
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
|
|
135
|
+
endif()
|
|
136
|
+
|
|
137
|
+
# OpenSSL (required for libngtcp2_crypto_openssl,
|
|
138
|
+
# libngtcp2_crypto_picotls and examples)
|
|
139
|
+
include(CheckSymbolExists)
|
|
140
|
+
if(ENABLE_OPENSSL AND OPENSSL_FOUND)
|
|
141
|
+
set(VANILLA_OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
|
|
142
|
+
set(VANILLA_OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES})
|
|
143
|
+
set(HAVE_VANILLA_OPENSSL TRUE)
|
|
144
|
+
|
|
145
|
+
# Until OpenSSL gains mainline support for QUIC, check for a patched version.
|
|
146
|
+
cmake_push_check_state()
|
|
147
|
+
set(CMAKE_REQUIRED_INCLUDES "${OPENSSL_INCLUDE_DIR}")
|
|
148
|
+
set(CMAKE_REQUIRED_LIBRARIES "${OPENSSL_LIBRARIES}")
|
|
149
|
+
if(WIN32)
|
|
150
|
+
set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}" "ws2_32" "bcrypt")
|
|
151
|
+
endif()
|
|
152
|
+
check_symbol_exists(SSL_is_quic "openssl/ssl.h" HAVE_SSL_IS_QUIC)
|
|
153
|
+
if(NOT HAVE_SSL_IS_QUIC)
|
|
154
|
+
message(WARNING "Disabling OpenSSL due to lack of QUIC support in ${OPENSSL_LIBRARIES}")
|
|
155
|
+
endif()
|
|
156
|
+
cmake_pop_check_state()
|
|
157
|
+
endif()
|
|
158
|
+
if(ENABLE_OPENSSL AND HAVE_SSL_IS_QUIC)
|
|
159
|
+
set(OPENSSL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
|
|
160
|
+
set(HAVE_OPENSSL TRUE)
|
|
161
|
+
set(HAVE_CRYPTO TRUE)
|
|
162
|
+
else()
|
|
163
|
+
set(HAVE_OPENSSL FALSE)
|
|
164
|
+
set(OPENSSL_INCLUDE_DIRS "")
|
|
165
|
+
set(OPENSSL_LIBRARIES "")
|
|
166
|
+
endif()
|
|
167
|
+
|
|
168
|
+
# BoringSSL (required for libngtcp2_crypto_boringssl)
|
|
169
|
+
if(ENABLE_BORINGSSL)
|
|
170
|
+
cmake_push_check_state()
|
|
171
|
+
set(CMAKE_REQUIRED_INCLUDES "${BORINGSSL_INCLUDE_DIR}")
|
|
172
|
+
set(CMAKE_REQUIRED_LIBRARIES "${BORINGSSL_LIBRARIES}")
|
|
173
|
+
check_symbol_exists(SSL_set_quic_early_data_context "openssl/ssl.h" HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT)
|
|
174
|
+
if(NOT HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT)
|
|
175
|
+
message(WARNING "Disabling BoringSSL due to lack of QUIC support in ${BORINGSSL_LIBRARIES}")
|
|
176
|
+
endif()
|
|
177
|
+
cmake_pop_check_state()
|
|
178
|
+
endif()
|
|
179
|
+
if(ENABLE_BORINGSSL AND HAVE_SSL_SET_QUIC_EARLY_DATA_CONTEXT)
|
|
180
|
+
set(BORINGSSL_INCLUDE_DIRS ${BORINGSSL_INCLUDE_DIR})
|
|
181
|
+
set(HAVE_BORINGSSL TRUE)
|
|
182
|
+
set(HAVE_CRYPTO TRUE)
|
|
183
|
+
else()
|
|
184
|
+
set(HAVE_BORINGSSL FALSE)
|
|
185
|
+
set(BORINGSSL_INCLUDE_DIRS "")
|
|
186
|
+
set(BORINGSSL_LIBRARIES "")
|
|
187
|
+
endif()
|
|
188
|
+
|
|
189
|
+
# jemalloc
|
|
190
|
+
set(HAVE_JEMALLOC ${JEMALLOC_FOUND})
|
|
191
|
+
# libev (required for examples)
|
|
192
|
+
set(HAVE_LIBEV ${LIBEV_FOUND})
|
|
193
|
+
# libnghttp3 (required for examples)
|
|
194
|
+
set(HAVE_LIBNGHTTP3 ${LIBNGHTTP3_FOUND})
|
|
195
|
+
|
|
196
|
+
# GnuTLS (required for libngtcp2_crypto_gnutls)
|
|
197
|
+
if(ENABLE_GNUTLS AND GNUTLS_FOUND)
|
|
198
|
+
set(GNUTLS_INCLUDE_DIRS ${GNUTLS_INCLUDE_DIR})
|
|
199
|
+
set(HAVE_GNUTLS TRUE)
|
|
200
|
+
set(HAVE_CRYPTO TRUE)
|
|
201
|
+
else()
|
|
202
|
+
set(HAVE_GNUTLS FALSE)
|
|
203
|
+
set(GNUTLS_INCLUDE_DIRS "")
|
|
204
|
+
set(GNUTLS_LIBRARIES "")
|
|
205
|
+
endif()
|
|
206
|
+
|
|
207
|
+
# Picotls (required for libngtcp2_crypto_picotls)
|
|
208
|
+
if(ENABLE_PICOTLS)
|
|
209
|
+
cmake_push_check_state()
|
|
210
|
+
set(CMAKE_REQUIRED_INCLUDES "${PICOTLS_INCLUDE_DIR}" "${VANILLA_OPENSSL_INCLUDE_DIRS}")
|
|
211
|
+
set(CMAKE_REQUIRED_LIBRARIES "${PICOTLS_LIBRARIES}" "${VANILLA_OPENSSL_LIBRARIES}")
|
|
212
|
+
check_symbol_exists(ptls_openssl_random_bytes "picotls.h;picotls/openssl.h"
|
|
213
|
+
HAVE_PTLS_OPENSSL_RANDOM_BYTES)
|
|
214
|
+
if(NOT HAVE_PTLS_OPENSSL_RANDOM_BYTES)
|
|
215
|
+
message(WARNING "Disabling Picotls because ptls_openssl_random_bytes not found in ${CMAKE_REQUIRED_LIBRARIES}")
|
|
216
|
+
endif()
|
|
217
|
+
cmake_pop_check_state()
|
|
218
|
+
endif()
|
|
219
|
+
if(ENABLE_PICOTLS AND HAVE_PTLS_OPENSSL_RANDOM_BYTES)
|
|
220
|
+
set(PICOTLS_INCLUDE_DIRS ${PICOTLS_INCLUDE_DIR})
|
|
221
|
+
set(HAVE_PICOTLS TRUE)
|
|
222
|
+
set(HAVE_CRYPTO TRUE)
|
|
223
|
+
else()
|
|
224
|
+
set(HAVE_PICOTLS FALSE)
|
|
225
|
+
set(PICOTLS_INCLUDE_DIRS "")
|
|
226
|
+
set(PICOTLS_LIBRARIES "")
|
|
227
|
+
endif()
|
|
228
|
+
|
|
229
|
+
# wolfSSL (required for libngtcp2_crypto_wolfssl)
|
|
230
|
+
if(ENABLE_WOLFSSL AND WOLFSSL_FOUND)
|
|
231
|
+
set(WOLFSSL_INCLUDE_DIRS ${WOLFSSL_INCLUDE_DIR})
|
|
232
|
+
set(HAVE_WOLFSSL TRUE)
|
|
233
|
+
set(HAVE_CRYPTO TRUE)
|
|
234
|
+
else()
|
|
235
|
+
set(HAVE_WOLFSSL FALSE)
|
|
236
|
+
set(WOLFSSL_INCLUDE_DIRS "")
|
|
237
|
+
set(WOLFSSL_LIBRARIES "")
|
|
238
|
+
endif()
|
|
239
|
+
|
|
240
|
+
# Checks for header files.
|
|
241
|
+
include(CheckIncludeFile)
|
|
242
|
+
check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
|
|
243
|
+
check_include_file("netinet/in.h" HAVE_NETINET_IN_H)
|
|
244
|
+
check_include_file("stddef.h" HAVE_STDDEF_H)
|
|
245
|
+
check_include_file("stdint.h" HAVE_STDINT_H)
|
|
246
|
+
check_include_file("stdlib.h" HAVE_STDLIB_H)
|
|
247
|
+
check_include_file("string.h" HAVE_STRING_H)
|
|
248
|
+
check_include_file("unistd.h" HAVE_UNISTD_H)
|
|
249
|
+
check_include_file("sys/endian.h" HAVE_SYS_ENDIAN_H)
|
|
250
|
+
check_include_file("endian.h" HAVE_ENDIAN_H)
|
|
251
|
+
check_include_file("byteswap.h" HAVE_BYTESWAP_H)
|
|
252
|
+
check_include_file("asm/types.h" HAVE_ASM_TYPES_H)
|
|
253
|
+
check_include_file("linux/netlink.h" HAVE_LINUX_NETLINK_H)
|
|
254
|
+
check_include_file("linux/rtnetlink.h" HAVE_LINUX_RTNETLINK_H)
|
|
255
|
+
|
|
256
|
+
include(CheckTypeSize)
|
|
257
|
+
# Checks for typedefs, structures, and compiler characteristics.
|
|
258
|
+
# AC_TYPE_SIZE_T
|
|
259
|
+
check_type_size("ssize_t" SIZEOF_SSIZE_T)
|
|
260
|
+
if(SIZEOF_SSIZE_T STREQUAL "")
|
|
261
|
+
# ssize_t is a signed type in POSIX storing at least -1.
|
|
262
|
+
# Set it to a pointer-size int.
|
|
263
|
+
set(ssize_t ptrdiff_t)
|
|
264
|
+
endif()
|
|
265
|
+
|
|
266
|
+
# Checks for symbols.
|
|
267
|
+
if(HAVE_ENDIAN_H)
|
|
268
|
+
check_symbol_exists(be64toh "endian.h" HAVE_BE64TOH)
|
|
269
|
+
endif()
|
|
270
|
+
if(HAVE_SYS_ENDIAN_H)
|
|
271
|
+
check_symbol_exists(be64toh "sys/endian.h" HAVE_BE64TOH)
|
|
272
|
+
endif()
|
|
273
|
+
|
|
274
|
+
check_symbol_exists(bswap_64 "byteswap.h" HAVE_BSWAP_64)
|
|
275
|
+
|
|
276
|
+
set(WARNCFLAGS)
|
|
277
|
+
set(WARNCXXFLAGS)
|
|
278
|
+
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|
279
|
+
if(ENABLE_WERROR)
|
|
280
|
+
set(WARNCFLAGS /WX)
|
|
281
|
+
set(WARNCXXFLAGS /WX)
|
|
282
|
+
endif()
|
|
283
|
+
else()
|
|
284
|
+
if(ENABLE_WERROR)
|
|
285
|
+
extract_valid_c_flags(WARNCFLAGS -Werror)
|
|
286
|
+
extract_valid_c_flags(WARNCXXFLAGS -Werror)
|
|
287
|
+
endif()
|
|
288
|
+
|
|
289
|
+
# For C compiler
|
|
290
|
+
extract_valid_c_flags(WARNCFLAGS
|
|
291
|
+
-Wall
|
|
292
|
+
-Wextra
|
|
293
|
+
-Wmissing-prototypes
|
|
294
|
+
-Wstrict-prototypes
|
|
295
|
+
-Wmissing-declarations
|
|
296
|
+
-Wpointer-arith
|
|
297
|
+
-Wdeclaration-after-statement
|
|
298
|
+
-Wformat-security
|
|
299
|
+
-Wwrite-strings
|
|
300
|
+
-Wshadow
|
|
301
|
+
-Winline
|
|
302
|
+
-Wnested-externs
|
|
303
|
+
-Wfloat-equal
|
|
304
|
+
-Wundef
|
|
305
|
+
-Wendif-labels
|
|
306
|
+
-Wempty-body
|
|
307
|
+
-Wcast-align
|
|
308
|
+
-Wclobbered
|
|
309
|
+
-Wvla
|
|
310
|
+
-Wpragmas
|
|
311
|
+
-Wunreachable-code
|
|
312
|
+
-Waddress
|
|
313
|
+
-Wattributes
|
|
314
|
+
-Wdiv-by-zero
|
|
315
|
+
-Wshorten-64-to-32
|
|
316
|
+
|
|
317
|
+
-Wconversion
|
|
318
|
+
-Wextended-offsetof
|
|
319
|
+
-Wformat-nonliteral
|
|
320
|
+
-Wlanguage-extension-token
|
|
321
|
+
-Wmissing-field-initializers
|
|
322
|
+
-Wmissing-noreturn
|
|
323
|
+
-Wmissing-variable-declarations
|
|
324
|
+
# Not used because we cannot change public structs
|
|
325
|
+
# -Wpadded
|
|
326
|
+
-Wsign-conversion
|
|
327
|
+
# Not used because this basically disallows default case
|
|
328
|
+
# -Wswitch-enum
|
|
329
|
+
-Wunreachable-code-break
|
|
330
|
+
-Wunused-macros
|
|
331
|
+
-Wunused-parameter
|
|
332
|
+
-Wredundant-decls
|
|
333
|
+
# Only work with Clang for the moment
|
|
334
|
+
-Wheader-guard
|
|
335
|
+
-Wsometimes-uninitialized
|
|
336
|
+
|
|
337
|
+
# Only work with gcc7 for the moment
|
|
338
|
+
-Wduplicated-branches
|
|
339
|
+
# This is required because we pass format string as "const char*.
|
|
340
|
+
-Wno-format-nonliteral
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
extract_valid_cxx_flags(WARNCXXFLAGS
|
|
344
|
+
# For C++ compiler
|
|
345
|
+
-Wall
|
|
346
|
+
-Wformat-security
|
|
347
|
+
-Wsometimes-uninitialized
|
|
348
|
+
# Disable noexcept-type warning of g++-7. This is not harmful as
|
|
349
|
+
# long as all source files are compiled with the same compiler.
|
|
350
|
+
-Wno-noexcept-type
|
|
351
|
+
)
|
|
352
|
+
endif()
|
|
353
|
+
|
|
354
|
+
if(ENABLE_DEBUG)
|
|
355
|
+
set(DEBUGBUILD 1)
|
|
356
|
+
endif()
|
|
357
|
+
|
|
358
|
+
add_definitions(-DHAVE_CONFIG_H)
|
|
359
|
+
configure_file(cmakeconfig.h.in config.h)
|
|
360
|
+
# autotools-compatible names
|
|
361
|
+
# Sphinx expects relative paths in the .rst files. Use the fact that the files
|
|
362
|
+
# below are all one directory level deep.
|
|
363
|
+
file(RELATIVE_PATH top_srcdir "${CMAKE_CURRENT_BINARY_DIR}/dir" "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
364
|
+
file(RELATIVE_PATH top_builddir "${CMAKE_CURRENT_BINARY_DIR}/dir" "${CMAKE_CURRENT_BINARY_DIR}")
|
|
365
|
+
set(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
366
|
+
set(abs_top_builddir "${CMAKE_CURRENT_BINARY_DIR}")
|
|
367
|
+
# libngtcp2.pc (pkg-config file)
|
|
368
|
+
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
|
369
|
+
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
|
|
370
|
+
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
|
|
371
|
+
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
|
|
372
|
+
set(VERSION "${PACKAGE_VERSION}")
|
|
373
|
+
# For init scripts and systemd service file (in contrib/)
|
|
374
|
+
set(bindir "${CMAKE_INSTALL_FULL_BINDIR}")
|
|
375
|
+
set(sbindir "${CMAKE_INSTALL_FULL_SBINDIR}")
|
|
376
|
+
foreach(name
|
|
377
|
+
lib/libngtcp2.pc
|
|
378
|
+
lib/includes/ngtcp2/version.h
|
|
379
|
+
)
|
|
380
|
+
configure_file("${name}.in" "${name}" @ONLY)
|
|
381
|
+
endforeach()
|
|
382
|
+
|
|
383
|
+
if(APPLE)
|
|
384
|
+
add_definitions(-D__APPLE_USE_RFC_3542)
|
|
385
|
+
endif()
|
|
386
|
+
|
|
387
|
+
include_directories(
|
|
388
|
+
"${CMAKE_CURRENT_BINARY_DIR}" # for config.h
|
|
389
|
+
)
|
|
390
|
+
# For use in src/CMakeLists.txt
|
|
391
|
+
set(PKGDATADIR "${CMAKE_INSTALL_FULL_DATADIR}/${CMAKE_PROJECT_NAME}")
|
|
392
|
+
|
|
393
|
+
install(FILES README.rst DESTINATION "${CMAKE_INSTALL_DOCDIR}")
|
|
394
|
+
|
|
395
|
+
add_subdirectory(lib)
|
|
396
|
+
add_subdirectory(tests)
|
|
397
|
+
add_subdirectory(crypto)
|
|
398
|
+
add_subdirectory(third-party)
|
|
399
|
+
add_subdirectory(examples)
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
string(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type)
|
|
403
|
+
message(STATUS "summary of build options:
|
|
404
|
+
|
|
405
|
+
Package version: ${VERSION}
|
|
406
|
+
Library version: ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}
|
|
407
|
+
Install prefix: ${CMAKE_INSTALL_PREFIX}
|
|
408
|
+
Target system: ${CMAKE_SYSTEM_NAME}
|
|
409
|
+
Compiler:
|
|
410
|
+
Build type: ${CMAKE_BUILD_TYPE}
|
|
411
|
+
C compiler: ${CMAKE_C_COMPILER}
|
|
412
|
+
CFLAGS: ${CMAKE_C_FLAGS_${_build_type}} ${CMAKE_C_FLAGS}
|
|
413
|
+
C++ compiler: ${CMAKE_CXX_COMPILER}
|
|
414
|
+
CXXFLAGS: ${CMAKE_CXX_FLAGS_${_build_type}} ${CMAKE_CXX_FLAGS}
|
|
415
|
+
WARNCFLAGS: ${WARNCFLAGS}
|
|
416
|
+
WARNCXXFLAGS: ${WARNCXXFLAGS}
|
|
417
|
+
Library:
|
|
418
|
+
Shared: ${ENABLE_SHARED_LIB}
|
|
419
|
+
Static: ${ENABLE_STATIC_LIB}
|
|
420
|
+
Test:
|
|
421
|
+
CUnit: ${HAVE_CUNIT} (LIBS='${CUNIT_LIBRARIES}')
|
|
422
|
+
Libs:
|
|
423
|
+
OpenSSL: ${HAVE_OPENSSL} (LIBS='${OPENSSL_LIBRARIES}')
|
|
424
|
+
Libev: ${HAVE_LIBEV} (LIBS='${LIBEV_LIBRARIES}')
|
|
425
|
+
Libnghttp3: ${HAVE_LIBNGHTTP3} (LIBS='${LIBNGHTTP3_LIBRARIES}')
|
|
426
|
+
GnuTLS: ${HAVE_GNUTLS} (LIBS='${GNUTLS_LIBRARIES}')
|
|
427
|
+
BoringSSL: ${HAVE_BORINGSSL} (LIBS='${BORINGSSL_LIBRARIES}')
|
|
428
|
+
Picotls: ${HAVE_PICOTLS} (LIBS='${PICOTLS_LIBRARIES}')
|
|
429
|
+
wolfSSL: ${HAVE_WOLFSSL} (LIBS='${WOLFSSL_LIBRARIES}')
|
|
430
|
+
Jemalloc: ${HAVE_JEMALLOC} (LIBS='${JEMALLOC_LIBRARIES}')
|
|
431
|
+
")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Features that can be enabled for cmake (see CMakeLists.txt)
|
|
2
|
+
|
|
3
|
+
option(ENABLE_STATIC_LIB "Build as static libraries" ON)
|
|
4
|
+
option(ENABLE_SHARED_LIB "Build as shared libraries" ON)
|
|
5
|
+
|
|
6
|
+
option(ENABLE_WERROR "Make compiler warnings fatal" OFF)
|
|
7
|
+
option(ENABLE_DEBUG "Turn on debug output" OFF)
|
|
8
|
+
option(ENABLE_ASAN "Enable AddressSanitizer (ASAN)" OFF)
|
|
9
|
+
option(ENABLE_JEMALLOC "Enable Jemalloc" OFF)
|
|
10
|
+
|
|
11
|
+
option(ENABLE_GNUTLS "Enable GnuTLS crypto backend" OFF)
|
|
12
|
+
option(ENABLE_OPENSSL "Enable OpenSSL crypto backend (required for examples)" ON)
|
|
13
|
+
option(ENABLE_BORINGSSL "Enable BoringSSL crypto backend" OFF)
|
|
14
|
+
option(ENABLE_PICOTLS "Enable Picotls crypto backend" OFF)
|
|
15
|
+
option(ENABLE_WOLFSSL "Enable wolfSSL crypto backend" OFF)
|
|
16
|
+
|
|
17
|
+
# vim: ft=cmake:
|
data/ext/ngtcp2/COPYING
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 ngtcp2 contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
File without changes
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# ngtcp2
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2016 ngtcp2 contributors
|
|
4
|
+
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
# a copy of this software and associated documentation files (the
|
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
# the following conditions:
|
|
12
|
+
|
|
13
|
+
# The above copyright notice and this permission notice shall be
|
|
14
|
+
# included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
SUBDIRS = lib tests doc
|
|
24
|
+
|
|
25
|
+
if HAVE_CRYPTO
|
|
26
|
+
SUBDIRS += crypto
|
|
27
|
+
endif
|
|
28
|
+
|
|
29
|
+
if ENABLE_EXAMPLES
|
|
30
|
+
SUBDIRS += third-party examples
|
|
31
|
+
endif
|
|
32
|
+
|
|
33
|
+
dist_doc_DATA = README.rst
|
|
34
|
+
|
|
35
|
+
ACLOCAL_AMFLAGS = -I m4
|
|
36
|
+
|
|
37
|
+
EXTRA_DIST = \
|
|
38
|
+
cmakeconfig.h.in \
|
|
39
|
+
CMakeLists.txt \
|
|
40
|
+
CMakeOptions.txt \
|
|
41
|
+
cmake/ExtractValidFlags.cmake \
|
|
42
|
+
cmake/FindCUnit.cmake \
|
|
43
|
+
cmake/FindLibev.cmake \
|
|
44
|
+
cmake/FindLibnghttp3.cmake \
|
|
45
|
+
cmake/Findwolfssl.cmake \
|
|
46
|
+
cmake/Version.cmake
|
|
47
|
+
|
|
48
|
+
# Format source files using clang-format. Don't format source files
|
|
49
|
+
# under third-party directory since we are not responsible for thier
|
|
50
|
+
# coding style.
|
|
51
|
+
clang-format:
|
|
52
|
+
CLANGFORMAT=`git config --get clangformat.binary`; \
|
|
53
|
+
test -z $${CLANGFORMAT} && CLANGFORMAT="clang-format"; \
|
|
54
|
+
$${CLANGFORMAT} -i lib/*.{c,h} tests/*.{c,h} lib/includes/ngtcp2/*.h \
|
|
55
|
+
crypto/*.{c,h} \
|
|
56
|
+
crypto/openssl/*.c crypto/gnutls/*.c crypto/boringssl/*.c \
|
|
57
|
+
crypto/wolfssl/*.c \
|
|
58
|
+
crypto/includes/ngtcp2/*.h \
|
|
59
|
+
examples/*.{cc,c,h} \
|
|
60
|
+
fuzz/*.cc
|
data/ext/ngtcp2/NEWS
ADDED
|
File without changes
|
data/ext/ngtcp2/README
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
See README.rst
|