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.
Files changed (343) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/ext/ngtcp2/AUTHORS +44 -0
  4. data/ext/ngtcp2/CMakeLists.txt +431 -0
  5. data/ext/ngtcp2/CMakeOptions.txt +17 -0
  6. data/ext/ngtcp2/COPYING +22 -0
  7. data/ext/ngtcp2/ChangeLog +0 -0
  8. data/ext/ngtcp2/Makefile.am +60 -0
  9. data/ext/ngtcp2/NEWS +0 -0
  10. data/ext/ngtcp2/README +1 -0
  11. data/ext/ngtcp2/README.rst +258 -0
  12. data/ext/ngtcp2/ci/build_boringssl.sh +10 -0
  13. data/ext/ngtcp2/ci/build_nghttp3.sh +9 -0
  14. data/ext/ngtcp2/ci/build_openssl1.sh +8 -0
  15. data/ext/ngtcp2/ci/build_openssl1_cross.sh +9 -0
  16. data/ext/ngtcp2/ci/build_openssl3.sh +8 -0
  17. data/ext/ngtcp2/ci/build_picotls.sh +26 -0
  18. data/ext/ngtcp2/ci/build_wolfssl.sh +9 -0
  19. data/ext/ngtcp2/ci/gen-certificate.sh +8 -0
  20. data/ext/ngtcp2/cmake/ExtractValidFlags.cmake +31 -0
  21. data/ext/ngtcp2/cmake/FindCUnit.cmake +40 -0
  22. data/ext/ngtcp2/cmake/FindJemalloc.cmake +40 -0
  23. data/ext/ngtcp2/cmake/FindLibev.cmake +38 -0
  24. data/ext/ngtcp2/cmake/FindLibnghttp3.cmake +41 -0
  25. data/ext/ngtcp2/cmake/Findwolfssl.cmake +41 -0
  26. data/ext/ngtcp2/cmake/Version.cmake +11 -0
  27. data/ext/ngtcp2/cmakeconfig.h.in +36 -0
  28. data/ext/ngtcp2/configure.ac +755 -0
  29. data/ext/ngtcp2/crypto/CMakeLists.txt +56 -0
  30. data/ext/ngtcp2/crypto/Makefile.am +49 -0
  31. data/ext/ngtcp2/crypto/boringssl/CMakeLists.txt +64 -0
  32. data/ext/ngtcp2/crypto/boringssl/Makefile.am +39 -0
  33. data/ext/ngtcp2/crypto/boringssl/boringssl.c +630 -0
  34. data/ext/ngtcp2/crypto/boringssl/libngtcp2_crypto_boringssl.pc.in +33 -0
  35. data/ext/ngtcp2/crypto/gnutls/CMakeLists.txt +86 -0
  36. data/ext/ngtcp2/crypto/gnutls/Makefile.am +43 -0
  37. data/ext/ngtcp2/crypto/gnutls/gnutls.c +644 -0
  38. data/ext/ngtcp2/crypto/gnutls/libngtcp2_crypto_gnutls.pc.in +33 -0
  39. data/ext/ngtcp2/crypto/includes/CMakeLists.txt +56 -0
  40. data/ext/ngtcp2/crypto/includes/Makefile.am +45 -0
  41. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto.h +893 -0
  42. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_boringssl.h +104 -0
  43. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_gnutls.h +107 -0
  44. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_openssl.h +132 -0
  45. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_picotls.h +246 -0
  46. data/ext/ngtcp2/crypto/includes/ngtcp2/ngtcp2_crypto_wolfssl.h +106 -0
  47. data/ext/ngtcp2/crypto/openssl/CMakeLists.txt +86 -0
  48. data/ext/ngtcp2/crypto/openssl/Makefile.am +43 -0
  49. data/ext/ngtcp2/crypto/openssl/libngtcp2_crypto_openssl.pc.in +33 -0
  50. data/ext/ngtcp2/crypto/openssl/openssl.c +807 -0
  51. data/ext/ngtcp2/crypto/picotls/CMakeLists.txt +65 -0
  52. data/ext/ngtcp2/crypto/picotls/Makefile.am +39 -0
  53. data/ext/ngtcp2/crypto/picotls/libngtcp2_crypto_picotls.pc.in +33 -0
  54. data/ext/ngtcp2/crypto/picotls/picotls.c +707 -0
  55. data/ext/ngtcp2/crypto/shared.c +1431 -0
  56. data/ext/ngtcp2/crypto/shared.h +350 -0
  57. data/ext/ngtcp2/crypto/wolfssl/CMakeLists.txt +84 -0
  58. data/ext/ngtcp2/crypto/wolfssl/Makefile.am +43 -0
  59. data/ext/ngtcp2/crypto/wolfssl/libngtcp2_crypto_wolfssl.pc.in +33 -0
  60. data/ext/ngtcp2/crypto/wolfssl/wolfssl.c +534 -0
  61. data/ext/ngtcp2/doc/Makefile.am +65 -0
  62. data/ext/ngtcp2/doc/make.bat +35 -0
  63. data/ext/ngtcp2/doc/mkapiref.py +356 -0
  64. data/ext/ngtcp2/doc/source/conf.py.in +94 -0
  65. data/ext/ngtcp2/doc/source/index.rst +22 -0
  66. data/ext/ngtcp2/doc/source/programmers-guide.rst +476 -0
  67. data/ext/ngtcp2/docker/Dockerfile +39 -0
  68. data/ext/ngtcp2/examples/CMakeLists.txt +361 -0
  69. data/ext/ngtcp2/examples/Makefile.am +228 -0
  70. data/ext/ngtcp2/examples/client.cc +3049 -0
  71. data/ext/ngtcp2/examples/client.h +192 -0
  72. data/ext/ngtcp2/examples/client_base.cc +202 -0
  73. data/ext/ngtcp2/examples/client_base.h +213 -0
  74. data/ext/ngtcp2/examples/debug.cc +298 -0
  75. data/ext/ngtcp2/examples/debug.h +124 -0
  76. data/ext/ngtcp2/examples/examplestest.cc +84 -0
  77. data/ext/ngtcp2/examples/gtlssimpleclient.c +720 -0
  78. data/ext/ngtcp2/examples/h09client.cc +2601 -0
  79. data/ext/ngtcp2/examples/h09client.h +196 -0
  80. data/ext/ngtcp2/examples/h09server.cc +3024 -0
  81. data/ext/ngtcp2/examples/h09server.h +237 -0
  82. data/ext/ngtcp2/examples/http.cc +138 -0
  83. data/ext/ngtcp2/examples/http.h +44 -0
  84. data/ext/ngtcp2/examples/network.h +80 -0
  85. data/ext/ngtcp2/examples/server.cc +3731 -0
  86. data/ext/ngtcp2/examples/server.h +256 -0
  87. data/ext/ngtcp2/examples/server_base.cc +58 -0
  88. data/ext/ngtcp2/examples/server_base.h +195 -0
  89. data/ext/ngtcp2/examples/shared.cc +385 -0
  90. data/ext/ngtcp2/examples/shared.h +96 -0
  91. data/ext/ngtcp2/examples/simpleclient.c +683 -0
  92. data/ext/ngtcp2/examples/template.h +71 -0
  93. data/ext/ngtcp2/examples/tests/README.rst +60 -0
  94. data/ext/ngtcp2/examples/tests/__init__.py +0 -0
  95. data/ext/ngtcp2/examples/tests/config.ini.in +32 -0
  96. data/ext/ngtcp2/examples/tests/conftest.py +28 -0
  97. data/ext/ngtcp2/examples/tests/ngtcp2test/__init__.py +6 -0
  98. data/ext/ngtcp2/examples/tests/ngtcp2test/certs.py +476 -0
  99. data/ext/ngtcp2/examples/tests/ngtcp2test/client.py +187 -0
  100. data/ext/ngtcp2/examples/tests/ngtcp2test/env.py +191 -0
  101. data/ext/ngtcp2/examples/tests/ngtcp2test/log.py +101 -0
  102. data/ext/ngtcp2/examples/tests/ngtcp2test/server.py +137 -0
  103. data/ext/ngtcp2/examples/tests/ngtcp2test/tls.py +983 -0
  104. data/ext/ngtcp2/examples/tests/test_01_handshake.py +30 -0
  105. data/ext/ngtcp2/examples/tests/test_02_resume.py +46 -0
  106. data/ext/ngtcp2/examples/tests/test_03_earlydata.py +56 -0
  107. data/ext/ngtcp2/examples/tests/test_04_clientcert.py +57 -0
  108. data/ext/ngtcp2/examples/tests/test_05_ciphers.py +46 -0
  109. data/ext/ngtcp2/examples/tls_client_context.h +52 -0
  110. data/ext/ngtcp2/examples/tls_client_context_boringssl.cc +126 -0
  111. data/ext/ngtcp2/examples/tls_client_context_boringssl.h +49 -0
  112. data/ext/ngtcp2/examples/tls_client_context_gnutls.cc +74 -0
  113. data/ext/ngtcp2/examples/tls_client_context_gnutls.h +50 -0
  114. data/ext/ngtcp2/examples/tls_client_context_openssl.cc +137 -0
  115. data/ext/ngtcp2/examples/tls_client_context_openssl.h +49 -0
  116. data/ext/ngtcp2/examples/tls_client_context_picotls.cc +158 -0
  117. data/ext/ngtcp2/examples/tls_client_context_picotls.h +53 -0
  118. data/ext/ngtcp2/examples/tls_client_context_wolfssl.cc +177 -0
  119. data/ext/ngtcp2/examples/tls_client_context_wolfssl.h +51 -0
  120. data/ext/ngtcp2/examples/tls_client_session.h +52 -0
  121. data/ext/ngtcp2/examples/tls_client_session_boringssl.cc +110 -0
  122. data/ext/ngtcp2/examples/tls_client_session_boringssl.h +52 -0
  123. data/ext/ngtcp2/examples/tls_client_session_gnutls.cc +190 -0
  124. data/ext/ngtcp2/examples/tls_client_session_gnutls.h +52 -0
  125. data/ext/ngtcp2/examples/tls_client_session_openssl.cc +113 -0
  126. data/ext/ngtcp2/examples/tls_client_session_openssl.h +52 -0
  127. data/ext/ngtcp2/examples/tls_client_session_picotls.cc +147 -0
  128. data/ext/ngtcp2/examples/tls_client_session_picotls.h +52 -0
  129. data/ext/ngtcp2/examples/tls_client_session_wolfssl.cc +160 -0
  130. data/ext/ngtcp2/examples/tls_client_session_wolfssl.h +52 -0
  131. data/ext/ngtcp2/examples/tls_server_context.h +52 -0
  132. data/ext/ngtcp2/examples/tls_server_context_boringssl.cc +257 -0
  133. data/ext/ngtcp2/examples/tls_server_context_boringssl.h +54 -0
  134. data/ext/ngtcp2/examples/tls_server_context_gnutls.cc +99 -0
  135. data/ext/ngtcp2/examples/tls_server_context_gnutls.h +59 -0
  136. data/ext/ngtcp2/examples/tls_server_context_openssl.cc +338 -0
  137. data/ext/ngtcp2/examples/tls_server_context_openssl.h +54 -0
  138. data/ext/ngtcp2/examples/tls_server_context_picotls.cc +321 -0
  139. data/ext/ngtcp2/examples/tls_server_context_picotls.h +58 -0
  140. data/ext/ngtcp2/examples/tls_server_context_wolfssl.cc +284 -0
  141. data/ext/ngtcp2/examples/tls_server_context_wolfssl.h +55 -0
  142. data/ext/ngtcp2/examples/tls_server_session.h +52 -0
  143. data/ext/ngtcp2/examples/tls_server_session_boringssl.cc +84 -0
  144. data/ext/ngtcp2/examples/tls_server_session_boringssl.h +47 -0
  145. data/ext/ngtcp2/examples/tls_server_session_gnutls.cc +155 -0
  146. data/ext/ngtcp2/examples/tls_server_session_gnutls.h +46 -0
  147. data/ext/ngtcp2/examples/tls_server_session_openssl.cc +54 -0
  148. data/ext/ngtcp2/examples/tls_server_session_openssl.h +47 -0
  149. data/ext/ngtcp2/examples/tls_server_session_picotls.cc +70 -0
  150. data/ext/ngtcp2/examples/tls_server_session_picotls.h +47 -0
  151. data/ext/ngtcp2/examples/tls_server_session_wolfssl.cc +55 -0
  152. data/ext/ngtcp2/examples/tls_server_session_wolfssl.h +47 -0
  153. data/ext/ngtcp2/examples/tls_session_base_gnutls.cc +87 -0
  154. data/ext/ngtcp2/examples/tls_session_base_gnutls.h +51 -0
  155. data/ext/ngtcp2/examples/tls_session_base_openssl.cc +54 -0
  156. data/ext/ngtcp2/examples/tls_session_base_openssl.h +52 -0
  157. data/ext/ngtcp2/examples/tls_session_base_picotls.cc +56 -0
  158. data/ext/ngtcp2/examples/tls_session_base_picotls.h +54 -0
  159. data/ext/ngtcp2/examples/tls_session_base_wolfssl.cc +54 -0
  160. data/ext/ngtcp2/examples/tls_session_base_wolfssl.h +54 -0
  161. data/ext/ngtcp2/examples/tls_shared_picotls.cc +59 -0
  162. data/ext/ngtcp2/examples/tls_shared_picotls.h +36 -0
  163. data/ext/ngtcp2/examples/util.cc +646 -0
  164. data/ext/ngtcp2/examples/util.h +361 -0
  165. data/ext/ngtcp2/examples/util_gnutls.cc +136 -0
  166. data/ext/ngtcp2/examples/util_openssl.cc +131 -0
  167. data/ext/ngtcp2/examples/util_test.cc +237 -0
  168. data/ext/ngtcp2/examples/util_test.h +45 -0
  169. data/ext/ngtcp2/examples/util_wolfssl.cc +130 -0
  170. data/ext/ngtcp2/fuzz/corpus/decode_frame/ack +0 -0
  171. data/ext/ngtcp2/fuzz/corpus/decode_frame/ack_ecn +0 -0
  172. data/ext/ngtcp2/fuzz/corpus/decode_frame/connection_close +0 -0
  173. data/ext/ngtcp2/fuzz/corpus/decode_frame/crypto +1 -0
  174. data/ext/ngtcp2/fuzz/corpus/decode_frame/data_blocked +1 -0
  175. data/ext/ngtcp2/fuzz/corpus/decode_frame/datagram +1 -0
  176. data/ext/ngtcp2/fuzz/corpus/decode_frame/datagram_len +1 -0
  177. data/ext/ngtcp2/fuzz/corpus/decode_frame/max_data +1 -0
  178. data/ext/ngtcp2/fuzz/corpus/decode_frame/max_stream_data +0 -0
  179. data/ext/ngtcp2/fuzz/corpus/decode_frame/max_streams +0 -0
  180. data/ext/ngtcp2/fuzz/corpus/decode_frame/new_connection_id +1 -0
  181. data/ext/ngtcp2/fuzz/corpus/decode_frame/new_token +1 -0
  182. data/ext/ngtcp2/fuzz/corpus/decode_frame/path_challenge +1 -0
  183. data/ext/ngtcp2/fuzz/corpus/decode_frame/path_response +1 -0
  184. data/ext/ngtcp2/fuzz/corpus/decode_frame/reset_stream +0 -0
  185. data/ext/ngtcp2/fuzz/corpus/decode_frame/retire_connection_id +1 -0
  186. data/ext/ngtcp2/fuzz/corpus/decode_frame/stop_sending +0 -0
  187. data/ext/ngtcp2/fuzz/corpus/decode_frame/stream +0 -0
  188. data/ext/ngtcp2/fuzz/corpus/decode_frame/stream_data_blocked +0 -0
  189. data/ext/ngtcp2/fuzz/corpus/decode_frame/stream_len +0 -0
  190. data/ext/ngtcp2/fuzz/corpus/decode_frame/streams_blocked +0 -0
  191. data/ext/ngtcp2/fuzz/corpus/ksl/random +0 -0
  192. data/ext/ngtcp2/fuzz/decode_frame.cc +25 -0
  193. data/ext/ngtcp2/fuzz/ksl.cc +77 -0
  194. data/ext/ngtcp2/interop/Dockerfile +39 -0
  195. data/ext/ngtcp2/interop/run_endpoint.sh +93 -0
  196. data/ext/ngtcp2/lib/CMakeLists.txt +110 -0
  197. data/ext/ngtcp2/lib/Makefile.am +122 -0
  198. data/ext/ngtcp2/lib/includes/CMakeLists.txt +4 -0
  199. data/ext/ngtcp2/lib/includes/Makefile.am +25 -0
  200. data/ext/ngtcp2/lib/includes/ngtcp2/ngtcp2.h +5843 -0
  201. data/ext/ngtcp2/lib/includes/ngtcp2/version.h.in +51 -0
  202. data/ext/ngtcp2/lib/libngtcp2.pc.in +33 -0
  203. data/ext/ngtcp2/lib/ngtcp2_acktr.c +335 -0
  204. data/ext/ngtcp2/lib/ngtcp2_acktr.h +221 -0
  205. data/ext/ngtcp2/lib/ngtcp2_addr.c +117 -0
  206. data/ext/ngtcp2/lib/ngtcp2_addr.h +69 -0
  207. data/ext/ngtcp2/lib/ngtcp2_balloc.c +90 -0
  208. data/ext/ngtcp2/lib/ngtcp2_balloc.h +91 -0
  209. data/ext/ngtcp2/lib/ngtcp2_bbr.c +693 -0
  210. data/ext/ngtcp2/lib/ngtcp2_bbr.h +157 -0
  211. data/ext/ngtcp2/lib/ngtcp2_bbr2.c +1490 -0
  212. data/ext/ngtcp2/lib/ngtcp2_bbr2.h +149 -0
  213. data/ext/ngtcp2/lib/ngtcp2_buf.c +56 -0
  214. data/ext/ngtcp2/lib/ngtcp2_buf.h +108 -0
  215. data/ext/ngtcp2/lib/ngtcp2_cc.c +616 -0
  216. data/ext/ngtcp2/lib/ngtcp2_cc.h +422 -0
  217. data/ext/ngtcp2/lib/ngtcp2_cid.c +147 -0
  218. data/ext/ngtcp2/lib/ngtcp2_cid.h +175 -0
  219. data/ext/ngtcp2/lib/ngtcp2_conn.c +13731 -0
  220. data/ext/ngtcp2/lib/ngtcp2_conn.h +1119 -0
  221. data/ext/ngtcp2/lib/ngtcp2_conn_stat.h +131 -0
  222. data/ext/ngtcp2/lib/ngtcp2_conv.c +291 -0
  223. data/ext/ngtcp2/lib/ngtcp2_conv.h +208 -0
  224. data/ext/ngtcp2/lib/ngtcp2_crypto.c +895 -0
  225. data/ext/ngtcp2/lib/ngtcp2_crypto.h +148 -0
  226. data/ext/ngtcp2/lib/ngtcp2_err.c +154 -0
  227. data/ext/ngtcp2/lib/ngtcp2_err.h +34 -0
  228. data/ext/ngtcp2/lib/ngtcp2_gaptr.c +167 -0
  229. data/ext/ngtcp2/lib/ngtcp2_gaptr.h +98 -0
  230. data/ext/ngtcp2/lib/ngtcp2_idtr.c +79 -0
  231. data/ext/ngtcp2/lib/ngtcp2_idtr.h +89 -0
  232. data/ext/ngtcp2/lib/ngtcp2_ksl.c +819 -0
  233. data/ext/ngtcp2/lib/ngtcp2_ksl.h +345 -0
  234. data/ext/ngtcp2/lib/ngtcp2_log.c +822 -0
  235. data/ext/ngtcp2/lib/ngtcp2_log.h +123 -0
  236. data/ext/ngtcp2/lib/ngtcp2_macro.h +58 -0
  237. data/ext/ngtcp2/lib/ngtcp2_map.c +336 -0
  238. data/ext/ngtcp2/lib/ngtcp2_map.h +136 -0
  239. data/ext/ngtcp2/lib/ngtcp2_mem.c +113 -0
  240. data/ext/ngtcp2/lib/ngtcp2_mem.h +72 -0
  241. data/ext/ngtcp2/lib/ngtcp2_net.h +136 -0
  242. data/ext/ngtcp2/lib/ngtcp2_objalloc.c +40 -0
  243. data/ext/ngtcp2/lib/ngtcp2_objalloc.h +140 -0
  244. data/ext/ngtcp2/lib/ngtcp2_opl.c +46 -0
  245. data/ext/ngtcp2/lib/ngtcp2_opl.h +65 -0
  246. data/ext/ngtcp2/lib/ngtcp2_path.c +77 -0
  247. data/ext/ngtcp2/lib/ngtcp2_path.h +49 -0
  248. data/ext/ngtcp2/lib/ngtcp2_pkt.c +2527 -0
  249. data/ext/ngtcp2/lib/ngtcp2_pkt.h +1235 -0
  250. data/ext/ngtcp2/lib/ngtcp2_pmtud.c +160 -0
  251. data/ext/ngtcp2/lib/ngtcp2_pmtud.h +123 -0
  252. data/ext/ngtcp2/lib/ngtcp2_ppe.c +230 -0
  253. data/ext/ngtcp2/lib/ngtcp2_ppe.h +153 -0
  254. data/ext/ngtcp2/lib/ngtcp2_pq.c +164 -0
  255. data/ext/ngtcp2/lib/ngtcp2_pq.h +126 -0
  256. data/ext/ngtcp2/lib/ngtcp2_pv.c +172 -0
  257. data/ext/ngtcp2/lib/ngtcp2_pv.h +194 -0
  258. data/ext/ngtcp2/lib/ngtcp2_qlog.c +1219 -0
  259. data/ext/ngtcp2/lib/ngtcp2_qlog.h +161 -0
  260. data/ext/ngtcp2/lib/ngtcp2_range.c +61 -0
  261. data/ext/ngtcp2/lib/ngtcp2_range.h +80 -0
  262. data/ext/ngtcp2/lib/ngtcp2_rcvry.h +40 -0
  263. data/ext/ngtcp2/lib/ngtcp2_ringbuf.c +121 -0
  264. data/ext/ngtcp2/lib/ngtcp2_ringbuf.h +132 -0
  265. data/ext/ngtcp2/lib/ngtcp2_rob.c +319 -0
  266. data/ext/ngtcp2/lib/ngtcp2_rob.h +197 -0
  267. data/ext/ngtcp2/lib/ngtcp2_rst.c +138 -0
  268. data/ext/ngtcp2/lib/ngtcp2_rst.h +86 -0
  269. data/ext/ngtcp2/lib/ngtcp2_rtb.c +1676 -0
  270. data/ext/ngtcp2/lib/ngtcp2_rtb.h +468 -0
  271. data/ext/ngtcp2/lib/ngtcp2_str.c +233 -0
  272. data/ext/ngtcp2/lib/ngtcp2_str.h +94 -0
  273. data/ext/ngtcp2/lib/ngtcp2_strm.c +698 -0
  274. data/ext/ngtcp2/lib/ngtcp2_strm.h +310 -0
  275. data/ext/ngtcp2/lib/ngtcp2_unreachable.c +71 -0
  276. data/ext/ngtcp2/lib/ngtcp2_unreachable.h +46 -0
  277. data/ext/ngtcp2/lib/ngtcp2_vec.c +243 -0
  278. data/ext/ngtcp2/lib/ngtcp2_vec.h +120 -0
  279. data/ext/ngtcp2/lib/ngtcp2_version.c +39 -0
  280. data/ext/ngtcp2/lib/ngtcp2_window_filter.c +99 -0
  281. data/ext/ngtcp2/lib/ngtcp2_window_filter.h +65 -0
  282. data/ext/ngtcp2/m4/ax_check_compile_flag.m4 +74 -0
  283. data/ext/ngtcp2/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  284. data/ext/ngtcp2/tests/CMakeLists.txt +68 -0
  285. data/ext/ngtcp2/tests/Makefile.am +94 -0
  286. data/ext/ngtcp2/tests/main.c +358 -0
  287. data/ext/ngtcp2/tests/ngtcp2_acktr_test.c +367 -0
  288. data/ext/ngtcp2/tests/ngtcp2_acktr_test.h +37 -0
  289. data/ext/ngtcp2/tests/ngtcp2_conn_test.c +9821 -0
  290. data/ext/ngtcp2/tests/ngtcp2_conn_test.h +104 -0
  291. data/ext/ngtcp2/tests/ngtcp2_conv_test.c +430 -0
  292. data/ext/ngtcp2/tests/ngtcp2_conv_test.h +46 -0
  293. data/ext/ngtcp2/tests/ngtcp2_crypto_test.c +667 -0
  294. data/ext/ngtcp2/tests/ngtcp2_crypto_test.h +35 -0
  295. data/ext/ngtcp2/tests/ngtcp2_gaptr_test.c +127 -0
  296. data/ext/ngtcp2/tests/ngtcp2_gaptr_test.h +36 -0
  297. data/ext/ngtcp2/tests/ngtcp2_idtr_test.c +79 -0
  298. data/ext/ngtcp2/tests/ngtcp2_idtr_test.h +34 -0
  299. data/ext/ngtcp2/tests/ngtcp2_ksl_test.c +502 -0
  300. data/ext/ngtcp2/tests/ngtcp2_ksl_test.h +39 -0
  301. data/ext/ngtcp2/tests/ngtcp2_map_test.c +206 -0
  302. data/ext/ngtcp2/tests/ngtcp2_map_test.h +38 -0
  303. data/ext/ngtcp2/tests/ngtcp2_pkt_test.c +1645 -0
  304. data/ext/ngtcp2/tests/ngtcp2_pkt_test.h +68 -0
  305. data/ext/ngtcp2/tests/ngtcp2_pmtud_test.c +153 -0
  306. data/ext/ngtcp2/tests/ngtcp2_pmtud_test.h +34 -0
  307. data/ext/ngtcp2/tests/ngtcp2_pv_test.c +129 -0
  308. data/ext/ngtcp2/tests/ngtcp2_pv_test.h +35 -0
  309. data/ext/ngtcp2/tests/ngtcp2_range_test.c +105 -0
  310. data/ext/ngtcp2/tests/ngtcp2_range_test.h +36 -0
  311. data/ext/ngtcp2/tests/ngtcp2_ringbuf_test.c +91 -0
  312. data/ext/ngtcp2/tests/ngtcp2_ringbuf_test.h +35 -0
  313. data/ext/ngtcp2/tests/ngtcp2_rob_test.c +552 -0
  314. data/ext/ngtcp2/tests/ngtcp2_rob_test.h +37 -0
  315. data/ext/ngtcp2/tests/ngtcp2_rtb_test.c +470 -0
  316. data/ext/ngtcp2/tests/ngtcp2_rtb_test.h +38 -0
  317. data/ext/ngtcp2/tests/ngtcp2_str_test.c +96 -0
  318. data/ext/ngtcp2/tests/ngtcp2_str_test.h +36 -0
  319. data/ext/ngtcp2/tests/ngtcp2_strm_test.c +575 -0
  320. data/ext/ngtcp2/tests/ngtcp2_strm_test.h +36 -0
  321. data/ext/ngtcp2/tests/ngtcp2_test_helper.c +404 -0
  322. data/ext/ngtcp2/tests/ngtcp2_test_helper.h +191 -0
  323. data/ext/ngtcp2/tests/ngtcp2_vec_test.c +426 -0
  324. data/ext/ngtcp2/tests/ngtcp2_vec_test.h +36 -0
  325. data/ext/ngtcp2/third-party/CMakeLists.txt +34 -0
  326. data/ext/ngtcp2/third-party/Makefile.am +31 -0
  327. data/ext/ngtcp2/third-party/http-parser/AUTHORS +68 -0
  328. data/ext/ngtcp2/third-party/http-parser/LICENSE-MIT +23 -0
  329. data/ext/ngtcp2/third-party/http-parser/Makefile +157 -0
  330. data/ext/ngtcp2/third-party/http-parser/README.md +246 -0
  331. data/ext/ngtcp2/third-party/http-parser/bench.c +111 -0
  332. data/ext/ngtcp2/third-party/http-parser/contrib/parsertrace.c +160 -0
  333. data/ext/ngtcp2/third-party/http-parser/contrib/url_parser.c +47 -0
  334. data/ext/ngtcp2/third-party/http-parser/http_parser.c +2419 -0
  335. data/ext/ngtcp2/third-party/http-parser/http_parser.gyp +111 -0
  336. data/ext/ngtcp2/third-party/http-parser/http_parser.h +431 -0
  337. data/ext/ngtcp2/third-party/http-parser/test.c +4411 -0
  338. data/lib/protocol/quic/version.rb +10 -0
  339. data/lib/protocol/quic.rb +9 -0
  340. data/license.md +21 -0
  341. data.tar.gz.sig +1 -0
  342. metadata +424 -0
  343. metadata.gz.sig +1 -0
@@ -0,0 +1,361 @@
1
+ # ngtcp2
2
+
3
+ # Copyright (c) 2017 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
+
24
+ if(LIBEV_FOUND AND HAVE_OPENSSL AND LIBNGHTTP3_FOUND)
25
+ set(client_SOURCES
26
+ client.cc
27
+ client_base.cc
28
+ debug.cc
29
+ util.cc
30
+ shared.cc
31
+ tls_client_context_openssl.cc
32
+ tls_client_session_openssl.cc
33
+ tls_session_base_openssl.cc
34
+ util_openssl.cc
35
+ )
36
+
37
+ set(server_SOURCES
38
+ server.cc
39
+ server_base.cc
40
+ debug.cc
41
+ util.cc
42
+ http.cc
43
+ shared.cc
44
+ tls_server_context_openssl.cc
45
+ tls_server_session_openssl.cc
46
+ tls_session_base_openssl.cc
47
+ util_openssl.cc
48
+ )
49
+
50
+ set(ossl_INCLUDE_DIRS
51
+ ${CMAKE_SOURCE_DIR}/lib/includes
52
+ ${CMAKE_BINARY_DIR}/lib/includes
53
+ ${CMAKE_SOURCE_DIR}/third-party
54
+ ${CMAKE_SOURCE_DIR}/crypto/includes
55
+
56
+ ${JEMALLOC_INCLUDE_DIRS}
57
+ ${OPENSSL_INCLUDE_DIRS}
58
+ ${LIBEV_INCLUDE_DIRS}
59
+ ${LIBNGHTTP3_INCLUDE_DIRS}
60
+ )
61
+
62
+ set(ossl_LIBS
63
+ ngtcp2_crypto_openssl
64
+ ngtcp2
65
+ ${JEMALLOC_LIBRARIES}
66
+ ${OPENSSL_LIBRARIES}
67
+ ${LIBEV_LIBRARIES}
68
+ ${LIBNGHTTP3_LIBRARIES}
69
+ )
70
+
71
+ add_executable(client ${client_SOURCES} $<TARGET_OBJECTS:http-parser>)
72
+ add_executable(server ${server_SOURCES} $<TARGET_OBJECTS:http-parser>)
73
+ set_target_properties(client PROPERTIES
74
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_OPENSSL -DWITH_EXAMPLE_OPENSSL"
75
+ CXX_STANDARD 20
76
+ CXX_STANDARD_REQUIRED ON
77
+ )
78
+ set_target_properties(server PROPERTIES
79
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_OPENSSL -DWITH_EXAMPLE_OPENSSL"
80
+ CXX_STANDARD 20
81
+ CXX_STANDARD_REQUIRED ON
82
+ )
83
+ target_include_directories(client PUBLIC ${ossl_INCLUDE_DIRS})
84
+ target_include_directories(server PUBLIC ${ossl_INCLUDE_DIRS})
85
+ target_link_libraries(client ${ossl_LIBS})
86
+ target_link_libraries(server ${ossl_LIBS})
87
+
88
+ # TODO prevent client and example servers from being installed?
89
+ endif()
90
+
91
+ if(LIBEV_FOUND AND HAVE_GNUTLS AND LIBNGHTTP3_FOUND)
92
+ set(gtlsclient_SOURCES
93
+ client.cc
94
+ client_base.cc
95
+ debug.cc
96
+ util.cc
97
+ shared.cc
98
+ tls_client_context_gnutls.cc
99
+ tls_client_session_gnutls.cc
100
+ tls_session_base_gnutls.cc
101
+ util_gnutls.cc
102
+ )
103
+
104
+ set(gtlsserver_SOURCES
105
+ server.cc
106
+ server_base.cc
107
+ debug.cc
108
+ util.cc
109
+ http.cc
110
+ shared.cc
111
+ tls_server_context_gnutls.cc
112
+ tls_server_session_gnutls.cc
113
+ tls_session_base_gnutls.cc
114
+ util_gnutls.cc
115
+ )
116
+
117
+ set(gtls_INCLUDE_DIRS
118
+ ${CMAKE_SOURCE_DIR}/lib/includes
119
+ ${CMAKE_BINARY_DIR}/lib/includes
120
+ ${CMAKE_SOURCE_DIR}/third-party
121
+ ${CMAKE_SOURCE_DIR}/crypto/includes
122
+
123
+ ${JEMALLOC_INCLUDE_DIRS}
124
+ ${GNUTLS_INCLUDE_DIRS}
125
+ ${LIBEV_INCLUDE_DIRS}
126
+ ${LIBNGHTTP3_INCLUDE_DIRS}
127
+ )
128
+
129
+ set(gtls_LIBS
130
+ ngtcp2_crypto_gnutls
131
+ ngtcp2
132
+ ${JEMALLOC_LIBRARIES}
133
+ ${GNUTLS_LIBRARIES}
134
+ ${LIBEV_LIBRARIES}
135
+ ${LIBNGHTTP3_LIBRARIES}
136
+ )
137
+
138
+ add_executable(gtlsclient ${gtlsclient_SOURCES} $<TARGET_OBJECTS:http-parser>)
139
+ add_executable(gtlsserver ${gtlsserver_SOURCES} $<TARGET_OBJECTS:http-parser>)
140
+ set_target_properties(gtlsclient PROPERTIES
141
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_GNUTLS -DWITH_EXAMPLE_GNUTLS"
142
+ CXX_STANDARD 20
143
+ CXX_STANDARD_REQUIRED ON
144
+ )
145
+ set_target_properties(gtlsserver PROPERTIES
146
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_GNUTLS -DWITH_EXAMPLE_GNUTLS"
147
+ CXX_STANDARD 20
148
+ CXX_STANDARD_REQUIRED ON
149
+ )
150
+ target_include_directories(gtlsclient PUBLIC ${gtls_INCLUDE_DIRS})
151
+ target_include_directories(gtlsserver PUBLIC ${gtls_INCLUDE_DIRS})
152
+ target_link_libraries(gtlsclient ${gtls_LIBS})
153
+ target_link_libraries(gtlsserver ${gtls_LIBS})
154
+
155
+ # TODO prevent gtlsclient and example gtlsservers from being installed?
156
+ endif()
157
+
158
+ if(LIBEV_FOUND AND HAVE_BORINGSSL AND LIBNGHTTP3_FOUND)
159
+ set(bsslclient_SOURCES
160
+ client.cc
161
+ client_base.cc
162
+ debug.cc
163
+ util.cc
164
+ shared.cc
165
+ tls_client_context_boringssl.cc
166
+ tls_client_session_boringssl.cc
167
+ tls_session_base_openssl.cc
168
+ util_openssl.cc
169
+ )
170
+
171
+ set(bsslserver_SOURCES
172
+ server.cc
173
+ server_base.cc
174
+ debug.cc
175
+ util.cc
176
+ http.cc
177
+ shared.cc
178
+ tls_server_context_boringssl.cc
179
+ tls_server_session_boringssl.cc
180
+ tls_session_base_openssl.cc
181
+ util_openssl.cc
182
+ )
183
+
184
+ set(bssl_INCLUDE_DIRS
185
+ ${CMAKE_SOURCE_DIR}/lib/includes
186
+ ${CMAKE_BINARY_DIR}/lib/includes
187
+ ${CMAKE_SOURCE_DIR}/third-party
188
+ ${CMAKE_SOURCE_DIR}/crypto/includes
189
+
190
+ ${JEMALLOC_INCLUDE_DIRS}
191
+ ${BORINGSSL_INCLUDE_DIRS}
192
+ ${LIBEV_INCLUDE_DIRS}
193
+ ${LIBNGHTTP3_INCLUDE_DIRS}
194
+ )
195
+
196
+ set(bssl_LIBS
197
+ ngtcp2_crypto_boringssl_static
198
+ ngtcp2
199
+ ${JEMALLOC_LIBRARIES}
200
+ ${BORINGSSL_LIBRARIES}
201
+ ${LIBEV_LIBRARIES}
202
+ ${LIBNGHTTP3_LIBRARIES}
203
+ )
204
+
205
+ add_executable(bsslclient ${bsslclient_SOURCES} $<TARGET_OBJECTS:http-parser>)
206
+ add_executable(bsslserver ${bsslserver_SOURCES} $<TARGET_OBJECTS:http-parser>)
207
+ set_target_properties(bsslclient PROPERTIES
208
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_BORINGSSL -DWITH_EXAMPLE_BORINGSSL"
209
+ CXX_STANDARD 20
210
+ CXX_STANDARD_REQUIRED ON
211
+ )
212
+ set_target_properties(bsslserver PROPERTIES
213
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_BORINGSSL -DWITH_EXAMPLE_BORINGSSL"
214
+ CXX_STANDARD 20
215
+ CXX_STANDARD_REQUIRED ON
216
+ )
217
+ target_include_directories(bsslclient PUBLIC ${bssl_INCLUDE_DIRS})
218
+ target_include_directories(bsslserver PUBLIC ${bssl_INCLUDE_DIRS})
219
+ target_link_libraries(bsslclient ${bssl_LIBS})
220
+ target_link_libraries(bsslserver ${bssl_LIBS})
221
+
222
+ # TODO prevent bsslclient and example bsslservers from being installed?
223
+ endif()
224
+
225
+ if(LIBEV_FOUND AND HAVE_PICOTLS AND LIBNGHTTP3_FOUND)
226
+ set(ptlsclient_SOURCES
227
+ client.cc
228
+ client_base.cc
229
+ debug.cc
230
+ util.cc
231
+ shared.cc
232
+ tls_client_context_picotls.cc
233
+ tls_client_session_picotls.cc
234
+ tls_session_base_picotls.cc
235
+ tls_shared_picotls.cc
236
+ util_openssl.cc
237
+ )
238
+
239
+ set(ptlsserver_SOURCES
240
+ server.cc
241
+ server_base.cc
242
+ debug.cc
243
+ util.cc
244
+ http.cc
245
+ shared.cc
246
+ tls_server_context_picotls.cc
247
+ tls_server_session_picotls.cc
248
+ tls_session_base_picotls.cc
249
+ tls_shared_picotls.cc
250
+ util_openssl.cc
251
+ )
252
+
253
+ set(ptls_INCLUDE_DIRS
254
+ ${CMAKE_SOURCE_DIR}/lib/includes
255
+ ${CMAKE_BINARY_DIR}/lib/includes
256
+ ${CMAKE_SOURCE_DIR}/third-party
257
+ ${CMAKE_SOURCE_DIR}/crypto/includes
258
+
259
+ ${JEMALLOC_INCLUDE_DIRS}
260
+ ${PICOTLS_INCLUDE_DIRS}
261
+ ${VANILLA_OPENSSL_INCLUDE_DIRS}
262
+ ${LIBEV_INCLUDE_DIRS}
263
+ ${LIBNGHTTP3_INCLUDE_DIRS}
264
+ )
265
+
266
+ set(ptls_LIBS
267
+ ngtcp2_crypto_picotls_static
268
+ ngtcp2
269
+ ${JEMALLOC_LIBRARIES}
270
+ ${PICOTLS_LIBRARIES}
271
+ ${VANILLA_OPENSSL_LIBRARIES}
272
+ ${LIBEV_LIBRARIES}
273
+ ${LIBNGHTTP3_LIBRARIES}
274
+ )
275
+
276
+ add_executable(ptlsclient ${ptlsclient_SOURCES} $<TARGET_OBJECTS:http-parser>)
277
+ add_executable(ptlsserver ${ptlsserver_SOURCES} $<TARGET_OBJECTS:http-parser>)
278
+ set_target_properties(ptlsclient PROPERTIES
279
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_PICOTLS -DWITH_EXAMPLE_PICOTLS"
280
+ CXX_STANDARD 20
281
+ CXX_STANDARD_REQUIRED ON
282
+ )
283
+ set_target_properties(ptlsserver PROPERTIES
284
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_PICOTLS -DWITH_EXAMPLE_PICOTLS"
285
+ CXX_STANDARD 20
286
+ CXX_STANDARD_REQUIRED ON
287
+ )
288
+ target_include_directories(ptlsclient PUBLIC ${ptls_INCLUDE_DIRS})
289
+ target_include_directories(ptlsserver PUBLIC ${ptls_INCLUDE_DIRS})
290
+ target_link_libraries(ptlsclient ${ptls_LIBS})
291
+ target_link_libraries(ptlsserver ${ptls_LIBS})
292
+
293
+ # TODO prevent ptlsclient and example ptlsservers from being installed?
294
+ endif()
295
+
296
+ if(LIBEV_FOUND AND HAVE_WOLFSSL AND LIBNGHTTP3_FOUND)
297
+ set(wsslclient_SOURCES
298
+ client.cc
299
+ client_base.cc
300
+ debug.cc
301
+ util.cc
302
+ shared.cc
303
+ tls_client_context_wolfssl.cc
304
+ tls_client_session_wolfssl.cc
305
+ tls_session_base_wolfssl.cc
306
+ util_wolfssl.cc
307
+ )
308
+
309
+ set(wsslserver_SOURCES
310
+ server.cc
311
+ server_base.cc
312
+ debug.cc
313
+ util.cc
314
+ http.cc
315
+ shared.cc
316
+ tls_server_context_wolfssl.cc
317
+ tls_server_session_wolfssl.cc
318
+ tls_session_base_wolfssl.cc
319
+ util_wolfssl.cc
320
+ )
321
+
322
+ set(wolfssl_INCLUDE_DIRS
323
+ ${CMAKE_SOURCE_DIR}/lib/includes
324
+ ${CMAKE_BINARY_DIR}/lib/includes
325
+ ${CMAKE_SOURCE_DIR}/third-party
326
+ ${CMAKE_SOURCE_DIR}/crypto/includes
327
+
328
+ ${JEMALLOC_INCLUDE_DIRS}
329
+ ${WOLFSSL_INCLUDE_DIRS}
330
+ ${LIBEV_INCLUDE_DIRS}
331
+ ${LIBNGHTTP3_INCLUDE_DIRS}
332
+ )
333
+
334
+ set(wolfssl_LIBS
335
+ ngtcp2_crypto_wolfssl_static
336
+ ngtcp2
337
+ ${JEMALLOC_LIBRARIES}
338
+ ${WOLFSSL_LIBRARIES}
339
+ ${LIBEV_LIBRARIES}
340
+ ${LIBNGHTTP3_LIBRARIES}
341
+ )
342
+
343
+ add_executable(wsslclient ${wsslclient_SOURCES} $<TARGET_OBJECTS:http-parser>)
344
+ add_executable(wsslserver ${wsslserver_SOURCES} $<TARGET_OBJECTS:http-parser>)
345
+ set_target_properties(wsslclient PROPERTIES
346
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_WOLFSSL -DWITH_EXAMPLE_WOLFSSL"
347
+ CXX_STANDARD 20
348
+ CXX_STANDARD_REQUIRED ON
349
+ )
350
+ set_target_properties(wsslserver PROPERTIES
351
+ COMPILE_FLAGS "${WARNCXXFLAGS} -DENABLE_EXAMPLE_WOLFSSL -DWITH_EXAMPLE_WOLFSSL"
352
+ CXX_STANDARD 20
353
+ CXX_STANDARD_REQUIRED ON
354
+ )
355
+ target_include_directories(wsslclient PUBLIC ${wolfssl_INCLUDE_DIRS})
356
+ target_include_directories(wsslserver PUBLIC ${wolfssl_INCLUDE_DIRS})
357
+ target_link_libraries(wsslclient ${wolfssl_LIBS})
358
+ target_link_libraries(wsslserver ${wolfssl_LIBS})
359
+
360
+ # TODO prevent wsslclient and example wsslserver from being installed?
361
+ endif()
@@ -0,0 +1,228 @@
1
+ # ngtcp2
2
+
3
+ # Copyright (c) 2017 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
+ EXTRA_DIST = CMakeLists.txt
24
+
25
+ AM_CFLAGS = $(WARNCFLAGS) $(DEBUGCFLAGS)
26
+ AM_CXXFLAGS = $(WARNCXXFLAGS) $(DEBUGCFLAGS)
27
+ AM_CPPFLAGS = \
28
+ -I$(top_srcdir)/lib/includes \
29
+ -I$(top_builddir)/lib/includes \
30
+ -I$(top_srcdir)/crypto/includes \
31
+ -I$(top_srcdir)/third-party \
32
+ @LIBEV_CFLAGS@ \
33
+ @LIBNGHTTP3_CFLAGS@ \
34
+ @DEFS@ \
35
+ @EXTRA_DEFS@
36
+ AM_LDFLAGS = -no-install \
37
+ @LIBTOOL_LDFLAGS@
38
+ LDADD = $(top_builddir)/lib/libngtcp2.la \
39
+ $(top_builddir)/third-party/libhttp-parser.la \
40
+ @LIBEV_LIBS@ \
41
+ @LIBNGHTTP3_LIBS@
42
+
43
+ SERVER_SRCS = \
44
+ server_base.cc server_base.h \
45
+ tls_server_context.h \
46
+ tls_server_session.h \
47
+ template.h \
48
+ debug.cc debug.h \
49
+ util.cc util.h \
50
+ shared.cc shared.h \
51
+ http.cc http.h \
52
+ network.h
53
+
54
+ CLIENT_SRCS = \
55
+ client_base.cc client_base.h \
56
+ tls_client_context.h \
57
+ tls_client_session.h \
58
+ template.h \
59
+ debug.cc debug.h \
60
+ util.cc util.h \
61
+ shared.cc shared.h \
62
+ network.h
63
+
64
+ noinst_PROGRAMS =
65
+
66
+ if ENABLE_EXAMPLE_OPENSSL
67
+ noinst_PROGRAMS += client server h09client h09server simpleclient
68
+
69
+ simpleclient_CPPFLAGS = ${AM_CPPFLAGS} \
70
+ @JEMALLOC_CFLAGS@ @OPENSSL_CFLAGS@ -DWITH_EXAMPLE_OPENSSL
71
+ simpleclient_LDADD = ${LDADD} \
72
+ $(top_builddir)/crypto/openssl/libngtcp2_crypto_openssl.la \
73
+ @OPENSSL_LIBS@ \
74
+ @JEMALLOC_LIBS@
75
+ simpleclient_SOURCES = simpleclient.c
76
+
77
+ client_CPPFLAGS = ${AM_CPPFLAGS} \
78
+ @JEMALLOC_CFLAGS@ @OPENSSL_CFLAGS@ -DWITH_EXAMPLE_OPENSSL
79
+ client_LDADD = ${LDADD} \
80
+ $(top_builddir)/crypto/openssl/libngtcp2_crypto_openssl.la \
81
+ @OPENSSL_LIBS@ \
82
+ @JEMALLOC_LIBS@
83
+ client_SOURCES = client.cc client.h ${CLIENT_SRCS} \
84
+ tls_client_context_openssl.cc tls_client_context_openssl.h \
85
+ tls_client_session_openssl.cc tls_client_session_openssl.h \
86
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
87
+ util_openssl.cc
88
+
89
+ server_CPPFLAGS = ${client_CPPFLAGS}
90
+ server_LDADD = ${client_LDADD}
91
+ server_SOURCES = server.cc server.h ${SERVER_SRCS} \
92
+ tls_server_context_openssl.cc tls_server_context_openssl.h \
93
+ tls_server_session_openssl.cc tls_server_session_openssl.h \
94
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
95
+ util_openssl.cc
96
+
97
+ h09client_CPPFLAGS = ${client_CPPFLAGS}
98
+ h09client_LDADD = ${client_LDADD}
99
+ h09client_SOURCES = h09client.cc h09client.h ${CLIENT_SRCS} \
100
+ tls_client_context_openssl.cc tls_client_context_openssl.h \
101
+ tls_client_session_openssl.cc tls_client_session_openssl.h \
102
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
103
+ util_openssl.cc
104
+
105
+ h09server_CPPFLAGS = ${client_CPPFLAGS}
106
+ h09server_LDADD = ${client_LDADD}
107
+ h09server_SOURCES = h09server.cc h09server.h ${SERVER_SRCS} \
108
+ tls_server_context_openssl.cc tls_server_context_openssl.h \
109
+ tls_server_session_openssl.cc tls_server_session_openssl.h \
110
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
111
+ util_openssl.cc
112
+ endif # ENABLE_EXAMPLE_OPENSSL
113
+
114
+ if ENABLE_EXAMPLE_GNUTLS
115
+ noinst_PROGRAMS += gtlsclient gtlsserver gtlssimpleclient
116
+
117
+ gtlssimpleclient_CPPFLAGS = ${AM_CPPFLAGS} \
118
+ @JEMALLOC_CFLAGS@ @GNUTLS_CFLAGS@ -DWITH_EXAMPLE_OPENSSL
119
+ gtlssimpleclient_LDADD = ${LDADD} \
120
+ $(top_builddir)/crypto/gnutls/libngtcp2_crypto_gnutls.la \
121
+ @GNUTLS_LIBS@ \
122
+ @JEMALLOC_LIBS@
123
+ gtlssimpleclient_SOURCES = gtlssimpleclient.c
124
+
125
+ gtlsclient_CPPFLAGS = ${AM_CPPFLAGS} \
126
+ @JEMALLOC_CFLAGS@ @GNUTLS_CFLAGS@ -DWITH_EXAMPLE_GNUTLS
127
+ gtlsclient_LDADD = ${LDADD} \
128
+ $(top_builddir)/crypto/gnutls/libngtcp2_crypto_gnutls.la \
129
+ @GNUTLS_LIBS@ \
130
+ @JEMALLOC_LIBS@
131
+ gtlsclient_SOURCES = client.cc client.h ${CLIENT_SRCS} \
132
+ tls_client_context_gnutls.cc tls_client_context_gnutls.h \
133
+ tls_client_session_gnutls.cc tls_client_session_gnutls.h \
134
+ tls_session_base_gnutls.cc tls_session_base_gnutls.h \
135
+ util_gnutls.cc
136
+
137
+ gtlsserver_CPPFLAGS = ${gtlsclient_CPPFLAGS}
138
+ gtlsserver_LDADD = ${gtlsclient_LDADD} \
139
+ $(top_builddir)/crypto/gnutls/libngtcp2_crypto_gnutls.la \
140
+ @GNUTLS_LIBS@
141
+ gtlsserver_SOURCES = server.cc server.h ${SERVER_SRCS} \
142
+ tls_server_context_gnutls.cc tls_server_context_gnutls.h \
143
+ tls_server_session_gnutls.cc tls_server_session_gnutls.h \
144
+ tls_session_base_gnutls.cc tls_session_base_gnutls.h \
145
+ util_gnutls.cc
146
+ endif # ENABLE_EXAMPLE_GNUTLS
147
+
148
+ if ENABLE_EXAMPLE_BORINGSSL
149
+ noinst_PROGRAMS += bsslclient bsslserver
150
+
151
+ bsslclient_CPPFLAGS = ${AM_CPPFLAGS} @BORINGSSL_CFLAGS@ -DWITH_EXAMPLE_BORINGSSL
152
+ bsslclient_LDADD = ${LDADD} \
153
+ $(top_builddir)/crypto/boringssl/libngtcp2_crypto_boringssl.a \
154
+ @BORINGSSL_LIBS@ \
155
+ @JEMALLOC_LIBS@
156
+ bsslclient_SOURCES = client.cc client.h ${CLIENT_SRCS} \
157
+ tls_client_context_boringssl.cc tls_client_context_boringssl.h \
158
+ tls_client_session_boringssl.cc tls_client_session_boringssl.h \
159
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
160
+ util_openssl.cc
161
+
162
+ bsslserver_CPPFLAGS = ${bsslclient_CPPFLAGS}
163
+ bsslserver_LDADD = ${bsslclient_LDADD}
164
+ bsslserver_SOURCES = server.cc server.h ${SERVER_SRCS} \
165
+ tls_server_context_boringssl.cc tls_server_context_boringssl.h \
166
+ tls_server_session_boringssl.cc tls_server_session_boringssl.h \
167
+ tls_session_base_openssl.cc tls_session_base_openssl.h \
168
+ util_openssl.cc
169
+ endif # ENABLE_EXAMPLE_BORINGSSL
170
+
171
+ if ENABLE_EXAMPLE_PICOTLS
172
+ noinst_PROGRAMS += ptlsclient ptlsserver
173
+
174
+ ptlsclient_CPPFLAGS = ${AM_CPPFLAGS} @PICOTLS_CFLAGS@ @VANILLA_OPENSSL_CFLAGS@ \
175
+ -DWITH_EXAMPLE_PICOTLS
176
+ ptlsclient_LDADD = ${LDADD} \
177
+ $(top_builddir)/crypto/picotls/libngtcp2_crypto_picotls.a \
178
+ @PICOTLS_LIBS@ @VANILLA_OPENSSL_LIBS@ \
179
+ @JEMALLOC_LIBS@
180
+ ptlsclient_SOURCES = client.cc client.h ${CLIENT_SRCS} \
181
+ tls_client_context_picotls.cc tls_client_context_picotls.h \
182
+ tls_client_session_picotls.cc tls_client_session_picotls.h \
183
+ tls_session_base_picotls.cc tls_session_base_picotls.h \
184
+ tls_shared_picotls.cc tls_shared_picotls.h \
185
+ util_openssl.cc
186
+
187
+ ptlsserver_CPPFLAGS = ${ptlsclient_CPPFLAGS}
188
+ ptlsserver_LDADD = ${ptlsclient_LDADD}
189
+ ptlsserver_SOURCES = server.cc server.h ${SERVER_SRCS} \
190
+ tls_server_context_picotls.cc tls_server_context_picotls.h \
191
+ tls_server_session_picotls.cc tls_server_session_picotls.h \
192
+ tls_session_base_picotls.cc tls_session_base_picotls.h \
193
+ tls_shared_picotls.cc tls_shared_picotls.h \
194
+ util_openssl.cc
195
+ endif # ENABLE_EXAMPLE_PICOTLS
196
+
197
+ if ENABLE_EXAMPLE_WOLFSSL
198
+ noinst_PROGRAMS += wsslclient wsslserver
199
+
200
+ wsslclient_CPPFLAGS = ${AM_CPPFLAGS} @WOLFSSL_CFLAGS@ -DWITH_EXAMPLE_WOLFSSL
201
+ wsslclient_LDADD = ${LDADD} \
202
+ $(top_builddir)/crypto/wolfssl/libngtcp2_crypto_wolfssl.la \
203
+ @WOLFSSL_LIBS@ \
204
+ @JEMALLOC_LIBS@
205
+ wsslclient_SOURCES = client.cc client.h ${CLIENT_SRCS} \
206
+ tls_client_context_wolfssl.cc tls_client_context_wolfssl.h \
207
+ tls_client_session_wolfssl.cc tls_client_session_wolfssl.h \
208
+ tls_session_base_wolfssl.cc tls_session_base_wolfssl.h \
209
+ util_wolfssl.cc
210
+
211
+ wsslserver_CPPFLAGS = ${wsslclient_CPPFLAGS}
212
+ wsslserver_LDADD = ${wsslclient_LDADD}
213
+ wsslserver_SOURCES = server.cc server.h ${SERVER_SRCS} \
214
+ tls_server_context_wolfssl.cc tls_server_context_wolfssl.h \
215
+ tls_server_session_wolfssl.cc tls_server_session_wolfssl.h \
216
+ tls_session_base_wolfssl.cc tls_session_base_wolfssl.h \
217
+ util_wolfssl.cc
218
+ endif # ENABLE_EXAMPLE_WOLFSSL
219
+
220
+ if HAVE_CUNIT
221
+ check_PROGRAMS = examplestest
222
+ examplestest_SOURCES = examplestest.cc \
223
+ util_test.cc util_test.h util.cc util.h
224
+ examplestest_CPPFLAGS = ${AM_CPPFLAGS} @JEMALLOC_CFLAGS@
225
+ examplestest_LDADD = ${LDADD} @CUNIT_LIBS@ @JEMALLOC_LIBS@
226
+
227
+ TESTS = examplestest
228
+ endif # HAVE_CUNIT