├── LICENSE ├── README.md └── nghttp2 ├── .clang-format ├── .gitignore ├── .gitmodules ├── .travis.yml ├── AUTHORS ├── CMakeLists.txt ├── CMakeOptions.txt ├── CONTRIBUTION ├── COPYING ├── ChangeLog ├── Dockerfile.android ├── LICENSE ├── Makefile.am ├── NEWS ├── README ├── README.rst ├── android-config ├── android-make ├── appveyor.yml ├── author.py ├── cmake ├── ExtractValidFlags.cmake ├── FindCUnit.cmake ├── FindCython.cmake ├── FindJansson.cmake ├── FindJemalloc.cmake ├── FindLibcares.cmake ├── FindLibev.cmake ├── FindLibevent.cmake ├── FindSpdylay.cmake └── Version.cmake ├── cmakeconfig.h.in ├── compile-yyz ├── configure.ac ├── contrib ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── nghttpx-init.in ├── nghttpx-logrotate ├── nghttpx-upstart.conf.in ├── nghttpx.service.in ├── tlsticketupdate.go └── usr.sbin.nghttpx ├── doc ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── README.rst ├── _exts │ └── sphinxcontrib │ │ ├── LICENSE.rubydomain │ │ ├── __init__.py │ │ └── rubydomain.py ├── _themes │ └── sphinx_rtd_theme │ │ ├── __init__.py │ │ ├── breadcrumbs.html │ │ ├── footer.html │ │ ├── layout.html │ │ ├── layout_old.html │ │ ├── search.html │ │ ├── searchbox.html │ │ ├── static │ │ ├── css │ │ │ ├── badge_only.css │ │ │ ├── badge_only.css.map │ │ │ ├── theme.css │ │ │ └── theme.css.map │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── Inconsolata-Bold.ttf │ │ │ ├── Inconsolata-Regular.ttf │ │ │ ├── Lato-Bold.ttf │ │ │ ├── Lato-Regular.ttf │ │ │ ├── RobotoSlab-Bold.ttf │ │ │ ├── RobotoSlab-Regular.ttf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ └── js │ │ │ ├── modernizr.min.js │ │ │ └── theme.js │ │ ├── theme.conf │ │ └── versions.html ├── asio_http2.h.rst.in ├── asio_http2_client.h.rst.in ├── asio_http2_server.h.rst.in ├── bash_completion │ ├── h2load │ ├── make_bash_completion.py │ ├── nghttp │ ├── nghttpd │ └── nghttpx ├── building-android-binary.rst.in ├── conf.py.in ├── contribute.rst.in ├── h2load-howto.rst.in ├── h2load.1 ├── h2load.1.rst ├── h2load.h2r ├── index.rst.in ├── libnghttp2_asio.rst.in ├── make.bat ├── mkapiref.py ├── nghttp.1 ├── nghttp.1.rst ├── nghttp.h2r ├── nghttp2.h.rst.in ├── nghttp2ver.h.rst.in ├── nghttpd.1 ├── nghttpd.1.rst ├── nghttpd.h2r ├── nghttpx-howto.rst.in ├── nghttpx.1 ├── nghttpx.1.rst ├── nghttpx.h2r ├── package_README.rst.in ├── programmers-guide.rst ├── python-apiref.rst.in ├── tutorial-client.rst.in ├── tutorial-hpack.rst.in └── tutorial-server.rst.in ├── examples ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── asio-cl.cc ├── asio-cl2.cc ├── asio-sv.cc ├── asio-sv2.cc ├── client.c ├── deflate.c ├── libevent-client.c └── libevent-server.c ├── fedora └── spdylay.spec ├── fuzz ├── README.rst ├── corpus │ ├── h2spec │ │ ├── 025ca25c8427361ea5498e4c3ba49d20eac5b4332f7b75b8f74bfba5e43f59f8 │ │ ├── 0276779c73bddcebc63b863c23a338b4c827bf6164640ff20a2d64d45a6b3f5a │ │ ├── 0428d1e3b2364efcc93ffd8fcfff43b378a92c7da44268b9dda2bf32a1178c66 │ │ ├── 06bc5f79b7e68e005bd4382bd3a6c6b1b6005c5f7d5783e99baf2f8f7432d71a │ │ ├── 09f76550ec065944a5d1d52f5d07b1dd87de1f651f80ef82c2815b0248b7dccd │ │ ├── 0b39d9df6e1721030667980a41547272ad42377149edcf130b2bf0b76804c61f │ │ ├── 0bb4365b02c05540936f9606ca725770a731e73c2144c7b81953dcc4b4f73c32 │ │ ├── 0d577f6eb853e987b8fdab6ca4615a351ab74bfc75eb0d227acbef6a35bcae39 │ │ ├── 0df702020c019dd33d0643c5a2b9a9637d325c8f38b4cc6d3f808b5b2a4169a9 │ │ ├── 0f8054152149c73e64c9f3e83f97e6585c8a51ec2413e7a2e8dfcc444082a5c5 │ │ ├── 105f72bc9184bf47a857ed84e8c2f917946ec7ef3f4720535478b41e097a798a │ │ ├── 1368ed7160cc4115e31a8a158af429421570e7363a3b75441edc5d740513b0dc │ │ ├── 1402c49b963994284b0d429edfac603133e0144dba08836f90b1ae164b328800 │ │ ├── 1468c2cddae629788f6957847b76c09921e984796f6dc482859b119cf4879300 │ │ ├── 14f66ce296f03e52f039f4fad189d3d70aebe70ecb14ffb1ffe2cd5fc5d1e5f0 │ │ ├── 17caaf734401d2d25d09a65432789b45aff588c606536e93824b89739a6d07ab │ │ ├── 195b4a74a62fabc877052454d935ebc543f4d1305e318ccd2ff407517636bed8 │ │ ├── 1960fc215485486f3e8ab97f853954e6f11c1f4754ccd83b1603b808878cfa76 │ │ ├── 1a56272611761f0687dfb0ea37c900f13f429b750c87e6175b234b881bda6248 │ │ ├── 1d31cd88fae35f2329e201983d11256d2432fcdeb55bfba9634aa88e3794adc6 │ │ ├── 1e27187b10c02fe7e151818ddd0722f69830ac04975ddb5a9d83cdc406cbb678 │ │ ├── 1ecace234d8542fbaab35c7c55330e80d8121a0cff19633a56eba8f2182a59df │ │ ├── 1f4f3a16f5ad0425e0b38601339096b80a382afa1083a19c4deab11be847502f │ │ ├── 203a798d4b658be744fe34042038692eaede4d2c1f9e05a27f2410a6e0230132 │ │ ├── 21904e842e90becb56ff9748ae962bb543dd5ca188dabc30897726f87403fbce │ │ ├── 23df7e0419240a9709b55af68a89c9750332ae5063e36401eae150ce63188fe0 │ │ ├── 245ba702520fa32cf41d994f5d37e4111fe6203bac35b220d50362d5e986aa91 │ │ ├── 274faf343feb9cb44079316401fee50c647552c99c0550ebfd7a3b736e8db9e5 │ │ ├── 2b042a1dfa3aeed6af58c58a4336f1386633bac75dea2c4b64c02541e7320933 │ │ ├── 2d8ec606661a9f12960893aab9a74dd392cbdae104307e8512e5e4113739e93a │ │ ├── 2e0c8a3ce53e8e3711f781b480efaf9e2526f4ae87c5f5a585d68d6f7f7da13c │ │ ├── 315e6acba7d715333d0865a8dfc0cd0e7aef8a1f5f420eae3d39067ad78df17d │ │ ├── 3376a2cdde0b98759f14490881328f80b5d3c942de3b1304a0382923ce896f8f │ │ ├── 35c2719913a19f197fb6484a34c3574da63554ff06f52377b73a9cfc24eb02ca │ │ ├── 35ddf0611cd98d025f6a625e7e4a102ba74721a04dfa1811e0968e9a4966d92c │ │ ├── 37e9eab291d6bca69510354e1d029cbbbb6113071b2bb13fc9646b5a0447d2cf │ │ ├── 381c81f5e4d1b02de39c4f99f21e9793f6ffc82ae0ef6917a8611e8879e05941 │ │ ├── 38ac32c81952cc832ade7aea13b0740f76898ccbb1da25f2281da76e50c1d04a │ │ ├── 3e297dd8fcdb50a751c397a505d84e76374b064aa5c71aab33bd9650c9a9d801 │ │ ├── 3e5a57c30a97d3f06a3181f4baf3996053b8572da5f2deee3a636c3bc8dfcc60 │ │ ├── 420b9790375f59a6e8c326391023a0981789c2351817996e0c253bfed708ad82 │ │ ├── 43df3c3af62ddd1393269ffcf964f1897063e81da79c971e8af8c1fefa3e3cab │ │ ├── 443f39c99e1c9ca1908b54153c480754054a57777f22a00d377d745d78e9d193 │ │ ├── 44f3fc1504a14e693fde420da94f77bf4a44e4e741420291491343f7ae4ecc16 │ │ ├── 4528e6beb34f695f4df8ddbb7ac85f76a91229d9ba675fc9e09fe12f4a497937 │ │ ├── 4534032d57020d2910641561a9f9da021f0fe52ebdbb148ee776ced87bac9b13 │ │ ├── 47c5e9b339f9e7f1dccad5c9f51f211183795660ec81a6bdb5614031d39ebe3a │ │ ├── 48ca2b3f63206aa8f774c3cb33958a806a1debf3d9ccf7b09c2d31256498cda6 │ │ ├── 4ddbb54259df7ee7ecbdf9f8b4a0e8f7756b9846f2e2add8dd0df825296d993e │ │ ├── 4e612f3c1dfa468d94bbc3bde202c732b06a9b5f6bc5471c879fa56ec2daa4aa │ │ ├── 55860c89ef796d41b06b3c0fe60a3e6f90709c6a0e7063a8b4057dafa57c878a │ │ ├── 5748e7a24e8d9ecb43de7d1e14519f10d8c669a5a2602fc948bc9a80e6114b63 │ │ ├── 5a13c8e09802e07fd3ceee625307fe48ef29bc66641c4f80ed4593bf8b773f88 │ │ ├── 5aa30337198b482522a55c90554c93278034ebacc24792509a32aeba466df4e8 │ │ ├── 5f3ff3c345ade163ba1ba889d60c1995b7fab68ded6ab052814008d990862c23 │ │ ├── 5f88a17509a8843ab761bc8cbcfe1a511670ae1a4a434f3d483f942738933a3e │ │ ├── 60a288333ea7f01d380f2661d387692063ce2ae73b3e5401b716326967b4ce0c │ │ ├── 63ae750f5fe9469664b6f79cb48c502c3bfc4cb0a950aeba998a72ea6a3d5b2d │ │ ├── 67abeaacb21769a9fb521efa7ebdc8d9ff3443ad5892d75dd6d4f7d541713d33 │ │ ├── 6e3b8913d874a18ec3ab9f74d4fab435b7738e1a14d0754fb79229c4bda9f604 │ │ ├── 6fe31187ce1a64bffb0b31ee59618a2ebd483812410e9f8ae5a92fb72ef70885 │ │ ├── 71d3c74882a100eaa5aaf9f62659d3b26bcbb8f2055f1add504f599f9051f61e │ │ ├── 7232f506e00bee175a3df8d33933fae10c67e501d6cea8e73ce76f4363d0bbea │ │ ├── 7425039321dcbecb1a1ef28849f277f914a889a54d44c1f2566b6ddd5bc83b4f │ │ ├── 7487341c630472c46a534223da1173666aaeae9788b144fa2c723204d55cc0a2 │ │ ├── 79207f7d09b6145f3dbfcb9e19835f34e56c7927fda22859e960f5f13bc847a0 │ │ ├── 7a1e1268d329e5f71ebdf74677a6c1a118994d7534d1fb08d631898d67372f5a │ │ ├── 7c954b010232be9461483803e3e553623d4fc382324d8b8ba53ebf83f0457707 │ │ ├── 7ce8914993956b04baafaad0668e5c26a87a1c4cf70a6566aa0f199fe3c1dc18 │ │ ├── 7d230ff71bac867a9820e75328f893972df210ab75cdb67f620b370ee5cddf45 │ │ ├── 85a985b9011e356e11a24c2d0a01173ea80ccc584b659947b64ffefddab7fada │ │ ├── 8b165b8b94a9d120edf139fbd63cb6b161131d5722f201f2f4ba0984b46a3ca5 │ │ ├── 8f5fd3dd5c0eb40ceb409c0f7d85086319d4177524fad58dc01743434765902a │ │ ├── 9223480b7c4b0d1cb95eb33a7a52dc7494b53a0f8a93fbc1816c6c4f347780b0 │ │ ├── 9248ee16c602d45651b0045e9cc4e407fc62ce5688e1c6636f482ea02314c357 │ │ ├── 979b96b7806f61081a48ff556bfbdb3e1c74e04f7d2cf88eab49b0fd89845453 │ │ ├── 97f2f674b859ff1adb2e9548550f07fa8818d1ee8edae39ca50f516a57a12edb │ │ ├── 9984490c02b1604423a8679caf527d5f10667e0a38790f28f32af61efa930eef │ │ ├── 9a648e49f93b60cf578c87d187c8acb61d3a638bc30568bdcc6be30fd9defd43 │ │ ├── 9af5c7a8538fb02b0a836b88a40d0b144f11ee98624e3686c0f43684e34e6838 │ │ ├── 9b24f66bc7c47e677e40f8b07b2fd54985ef27c99670bed582ce904569b95702 │ │ ├── 9fc2eee916b1cfb002a487c37e73af29a0fbb29e47bf36839a762bb26fea3ec7 │ │ ├── 9ff0fc476b3d27f5dc9803d38ef10be0d08b5e096630308f0d6f57a6f8ee5d88 │ │ ├── a46866d1875d0c06ec3ead73ecca531ef0dc92a67a233ebc8d1e2fff79f50a07 │ │ ├── a71bcbf6a6668aa019d38cc3527d5ecf2f4e538dfedddf34ff484e29d6fd26d1 │ │ ├── ad0d3509e08424d21d87c64a0969b588dc9281ea98fd744acd9b8bd1daf72225 │ │ ├── adaa168d63fe063455c1e0c304c9c9ba6b43e13849235339710d6b5f941e80a1 │ │ ├── aee251ccb027a2676ad1261b48d08b52752a41633279ff2e9e474eebf508250f │ │ ├── b5b546cf87a6d23c6f6ee0e44db5b90a4bb23e0558873f159bf09140782989d8 │ │ ├── b8fffa51391680139ea773ff40a58a1f24e9b1a8c530823d7d12053ec4aabd76 │ │ ├── b904fd3aa656603b26572deb105290328add76123b4a99ad4e78189e1337ae1b │ │ ├── bbda8e26f356aa635f7774ec483a4b493668ca1448948c62f641d176838306d5 │ │ ├── bc35711cdc43b868c59515211893e7681fef6da4b623392d402fb40736dc1beb │ │ ├── bd25bb84dd44c7e09d9e723016c49cc2a868a1bfc007528138a28ea1c0abfda7 │ │ ├── c23df1d03e3c1039692ea3d9897e41ceb2add1ebdec0937a64321c536eef71f7 │ │ ├── c2e6cf1692ef3a4bc88af94bb9e6c9011855bbf954c273f45eb3ea97bb491c9a │ │ ├── c3b0ea2a8874777b9805018c177382ab3278a019935fa50b3e0d7971c28c40d9 │ │ ├── c9dfe97833473610816085c5a009696cd5f659f85fc10ef76dc140851ffcc423 │ │ ├── ca19cba772c047e5e1f229e5de18d06d885b50be9136778b4937437f0d70738d │ │ ├── ca6e1239c11d08940c991f77470859ccb4ec9fa5e8c30de7b40521d620b87a1e │ │ ├── cb09d2148ae1c8b054cdbafcf3f3e41e75bae978dcfc8886981479d723fc44e9 │ │ ├── cd35ff680e23f67fe52b722a88c9537bee642b8a7a8a388cb4952f3bf60e64cc │ │ ├── cd6d3880ee87c6b716749cb9a30f8faa658ee49f6ce90f3e34df70560a0477ad │ │ ├── cd7b24cfe10fc4346a91f04b1a0d0e22054f76bf704db8e19d73cb9bf792a89b │ │ ├── cea2c4c70f94e90c4c4a6b63f7c212d2465936090c06ba4db92071a3c247ca11 │ │ ├── d26a0d653a01c6bf9403e0bc0fa5ea05ea4dd7b163e8d85287b19ff257a88ea7 │ │ ├── d3dec3f7485c6c3f8b8949db68bd212ef16a7f1f41047e290d14f9cd6dae91a0 │ │ ├── d43f2a0606841580986981ec0bec10473e79c9097bfd8fd81d1a239f146f31d3 │ │ ├── d4d5fe38e4bafa733182eb5aaad19a6ff59c8316908b20d3c94cdc29a92964e6 │ │ ├── d69256403d5d27244080b8b53931aa6bfd4ce95771c748372626414d5c37e105 │ │ ├── d9b617f62de41c1cb02ff91cef9c3f753d440c75efa489a952fdcd314d27ee1d │ │ ├── dc57f64202486572ef99d4ff4970fb339f440867ebedf02eaab75fb555e293cf │ │ ├── e11a6036e2c0bde71f3eabac3f98734af2cdcfe3ebb6e02dcce9b7f4c4bcc99a │ │ ├── e26ce028366bb4ff566972a945b7fd0035f6dba48d886160fdf1974aae8dee65 │ │ ├── e35a4d079adfe4d399f026c711940e4917d5dae3dc2723a034f44d2b53a34a11 │ │ ├── e3666122dbe804ac609c0ae717a9e6aa8bb2842953e4528230a5bcfc3a59c120 │ │ ├── e59961f75a4cfe33bc4ce9290f938c5bc247c440a2e572ab18021c8223c55bc7 │ │ ├── e7b11cf0762255ad6741aa3d6e269f8b4bc785089040be666f480464cb13b4df │ │ ├── e89af554621f1ce6262d47a68efea1d8d304ae595a094ebc955bceb6d06ed629 │ │ ├── e9d399b6dc6b7d18bac97e5556875ab6df561f1ca718f1fc716a929d3c706f14 │ │ ├── eb733425f0fc1f0cf7f74e1c1ef87680a96a1aca613180110df26259eb36c433 │ │ ├── ec399d3511fa4a30df9b3c51637a357cc1c84d30e3d48bccc9b97564c8a60b73 │ │ ├── ef73cbf3d98059b13b30db1089ad6af12beea18f895be6f18d42962721d6e3ee │ │ ├── efc0f664cf2ebac4e05e6acac77778fe630b278f167321a46d861ac8ad56fd76 │ │ ├── f139f9c20bcdc6bbe0301c98bdd719b37b4a98fe3b1414b583ddb5dc17f62e3a │ │ ├── f5318eb5ea6dcdf630a2ab157dbfa122f6de9b6f4e5a3a036c17f32da3030877 │ │ ├── f5f4973e9e8fb6fb8834a612a9b8b0419fbae7c0934dda22e61f11556918f1cc │ │ ├── f932da1aefb3b8d9918f46bd936130b0d06332ab062a48f41b206ce696428e03 │ │ ├── fbfa931f27b0173613b0e04af58d8bba7df12c1cd15c404d95680df6fc1cb89e │ │ ├── fc30ab2ea532f953350f0de7ff3c0422328c131f4642d30a4c88bdf43bcd8d98 │ │ ├── fc7e85c3af87f3c0b482cb57fde916a7d8db293427159f3b31bbc23b6b285116 │ │ ├── fcfcfe84724a9b7c7c8277057b557ab044d24130bd360fe087e9f55bef2cadc6 │ │ └── ff00f50eada19c5354a579ef7f1af5952ecb2df2423022dd5483d8fede26d6e5 │ └── nghttp │ │ ├── 9c8ed8981065d28ce8a5a04ac6fc7a87ffaf9f9c6ce4323e6e0fefaabb2393cb │ │ ├── d53b58a8685030918fda36a704db43cdfec99fc1b9de83c195227161f4bdb911 │ │ └── f0a8cacb9f31b53d237628084e3946d556086c9991cce7962e9e69a3eed406aa └── fuzz_target.cc ├── genauthoritychartbl.py ├── gendowncasetbl.py ├── genheaderfunc.py ├── genlibtokenlookup.py ├── genmethodfunc.py ├── gennghttpxfun.py ├── gennmchartbl.py ├── gentokenlookup.py ├── genvchartbl.py ├── help2rst.py ├── integration-tests ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── alt-server.crt ├── alt-server.key ├── config.go.in ├── nghttpx_http1_test.go ├── nghttpx_http2_test.go ├── nghttpx_spdy_test.go ├── req-return.rb ├── req-set-header.rb ├── resp-return.rb ├── resp-set-header.rb ├── server.crt ├── server.key ├── server_tester.go └── setenv.in ├── lib ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── Makefile.msvc ├── includes │ ├── CMakeLists.txt │ ├── Makefile.am │ └── nghttp2 │ │ ├── nghttp2.h │ │ └── nghttp2ver.h.in ├── libnghttp2.pc.in ├── nghttp2_buf.c ├── nghttp2_buf.h ├── nghttp2_callbacks.c ├── nghttp2_callbacks.h ├── nghttp2_debug.c ├── nghttp2_debug.h ├── nghttp2_frame.c ├── nghttp2_frame.h ├── nghttp2_hd.c ├── nghttp2_hd.h ├── nghttp2_hd_huffman.c ├── nghttp2_hd_huffman.h ├── nghttp2_hd_huffman_data.c ├── nghttp2_helper.c ├── nghttp2_helper.h ├── nghttp2_http.c ├── nghttp2_http.h ├── nghttp2_int.h ├── nghttp2_map.c ├── nghttp2_map.h ├── nghttp2_mem.c ├── nghttp2_mem.h ├── nghttp2_net.h ├── nghttp2_npn.c ├── nghttp2_npn.h ├── nghttp2_option.c ├── nghttp2_option.h ├── nghttp2_outbound_item.c ├── nghttp2_outbound_item.h ├── nghttp2_pq.c ├── nghttp2_pq.h ├── nghttp2_priority_spec.c ├── nghttp2_priority_spec.h ├── nghttp2_queue.c ├── nghttp2_queue.h ├── nghttp2_rcbuf.c ├── nghttp2_rcbuf.h ├── nghttp2_session.c ├── nghttp2_session.h ├── nghttp2_stream.c ├── nghttp2_stream.h ├── nghttp2_submit.c ├── nghttp2_submit.h ├── nghttp2_version.c └── version.rc.in ├── libev-4.15 ├── Changes ├── LICENSE ├── Makefile.am ├── README ├── Symbols.ev ├── Symbols.event ├── autogen.sh ├── configure.ac ├── ev++.h ├── ev.3 ├── ev.c ├── ev.h ├── ev.pod ├── ev_epoll.c ├── ev_kqueue.c ├── ev_poll.c ├── ev_port.c ├── ev_select.c ├── ev_vars.h ├── ev_win32.c ├── ev_wrap.h ├── event.c ├── event.h └── mkinstalldirs ├── makebashcompletion ├── makemanpages ├── makerelease.sh ├── mkcipherlist.py ├── mkhufftbl.py ├── mkstatichdtbl.py ├── nghttpx.conf.sample ├── pre-commit ├── proxy.pac.sample ├── python ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── calcratio.py ├── cnghttp2.pxd ├── hpackcheck.py ├── hpackmake.py ├── install-python.cmake.in ├── nghttp2.pyx ├── setup.py.in └── wsgi.py ├── releasechk ├── script ├── CMakeLists.txt ├── Makefile.am ├── README.rst └── fetch-ocsp-response ├── src ├── .gitignore ├── CMakeLists.txt ├── HtmlParser.cc ├── HtmlParser.h ├── HttpServer.cc ├── HttpServer.h ├── Makefile.am ├── allocator.h ├── app_helper.cc ├── app_helper.h ├── asio_client_request.cc ├── asio_client_request_impl.cc ├── asio_client_request_impl.h ├── asio_client_response.cc ├── asio_client_response_impl.cc ├── asio_client_response_impl.h ├── asio_client_session.cc ├── asio_client_session_impl.cc ├── asio_client_session_impl.h ├── asio_client_session_tcp_impl.cc ├── asio_client_session_tcp_impl.h ├── asio_client_session_tls_impl.cc ├── asio_client_session_tls_impl.h ├── asio_client_stream.cc ├── asio_client_stream.h ├── asio_client_tls_context.cc ├── asio_client_tls_context.h ├── asio_common.cc ├── asio_common.h ├── asio_io_service_pool.cc ├── asio_io_service_pool.h ├── asio_server.cc ├── asio_server.h ├── asio_server_connection.h ├── asio_server_http2.cc ├── asio_server_http2_handler.cc ├── asio_server_http2_handler.h ├── asio_server_http2_impl.cc ├── asio_server_http2_impl.h ├── asio_server_request.cc ├── asio_server_request_handler.cc ├── asio_server_request_handler.h ├── asio_server_request_impl.cc ├── asio_server_request_impl.h ├── asio_server_response.cc ├── asio_server_response_impl.cc ├── asio_server_response_impl.h ├── asio_server_serve_mux.cc ├── asio_server_serve_mux.h ├── asio_server_stream.cc ├── asio_server_stream.h ├── asio_server_tls_context.cc ├── asio_server_tls_context.h ├── base64.h ├── base64_test.cc ├── base64_test.h ├── buffer.h ├── buffer_test.cc ├── buffer_test.h ├── c++11 ├── c++11.c ├── ca-config.json ├── ca.nghttp2.org-key.pem ├── ca.nghttp2.org.csr ├── ca.nghttp2.org.csr.json ├── ca.nghttp2.org.pem ├── comp_helper.c ├── comp_helper.h ├── deflatehd.cc ├── h2load.cc ├── h2load.h ├── h2load_http1_session.cc ├── h2load_http1_session.h ├── h2load_http2_session.cc ├── h2load_http2_session.h ├── h2load_session.h ├── h2load_spdy_session.cc ├── h2load_spdy_session.h ├── http-parser.patch ├── http2.cc ├── http2.h ├── http2_test.cc ├── http2_test.h ├── includes │ ├── CMakeLists.txt │ ├── Makefile.am │ └── nghttp2 │ │ ├── asio_http2.h │ │ ├── asio_http2_client.h │ │ └── asio_http2_server.h ├── inflatehd.cc ├── libevent_util.cc ├── libevent_util.h ├── libnghttp2_asio.pc.in ├── memchunk.h ├── memchunk_test.cc ├── memchunk_test.h ├── network.h ├── nghttp.cc ├── nghttp.h ├── nghttp2_config.h ├── nghttp2_gzip.c ├── nghttp2_gzip.h ├── nghttp2_gzip_test.c ├── nghttp2_gzip_test.h ├── nghttpd.cc ├── shrpx-unittest.cc ├── shrpx.cc ├── shrpx.h ├── shrpx_accept_handler.cc ├── shrpx_accept_handler.h ├── shrpx_api_downstream_connection.cc ├── shrpx_api_downstream_connection.h ├── shrpx_client_handler.cc ├── shrpx_client_handler.h ├── shrpx_config.cc ├── shrpx_config.h ├── shrpx_config_test.cc ├── shrpx_config_test.h ├── shrpx_connect_blocker.cc ├── shrpx_connect_blocker.h ├── shrpx_connection.cc ├── shrpx_connection.h ├── shrpx_connection_handler.cc ├── shrpx_connection_handler.h ├── shrpx_dns_resolver.cc ├── shrpx_dns_resolver.h ├── shrpx_dns_tracker.cc ├── shrpx_dns_tracker.h ├── shrpx_downstream.cc ├── shrpx_downstream.h ├── shrpx_downstream_connection.cc ├── shrpx_downstream_connection.h ├── shrpx_downstream_connection_pool.cc ├── shrpx_downstream_connection_pool.h ├── shrpx_downstream_queue.cc ├── shrpx_downstream_queue.h ├── shrpx_downstream_test.cc ├── shrpx_downstream_test.h ├── shrpx_dual_dns_resolver.cc ├── shrpx_dual_dns_resolver.h ├── shrpx_error.h ├── shrpx_exec.cc ├── shrpx_exec.h ├── shrpx_health_monitor_downstream_connection.cc ├── shrpx_health_monitor_downstream_connection.h ├── shrpx_http.cc ├── shrpx_http.h ├── shrpx_http2_downstream_connection.cc ├── shrpx_http2_downstream_connection.h ├── shrpx_http2_session.cc ├── shrpx_http2_session.h ├── shrpx_http2_upstream.cc ├── shrpx_http2_upstream.h ├── shrpx_http_downstream_connection.cc ├── shrpx_http_downstream_connection.h ├── shrpx_http_test.cc ├── shrpx_http_test.h ├── shrpx_https_upstream.cc ├── shrpx_https_upstream.h ├── shrpx_io_control.cc ├── shrpx_io_control.h ├── shrpx_live_check.cc ├── shrpx_live_check.h ├── shrpx_log.cc ├── shrpx_log.h ├── shrpx_log_config.cc ├── shrpx_log_config.h ├── shrpx_memcached_connection.cc ├── shrpx_memcached_connection.h ├── shrpx_memcached_dispatcher.cc ├── shrpx_memcached_dispatcher.h ├── shrpx_memcached_request.h ├── shrpx_memcached_result.h ├── shrpx_mruby.cc ├── shrpx_mruby.h ├── shrpx_mruby_module.cc ├── shrpx_mruby_module.h ├── shrpx_mruby_module_env.cc ├── shrpx_mruby_module_env.h ├── shrpx_mruby_module_request.cc ├── shrpx_mruby_module_request.h ├── shrpx_mruby_module_response.cc ├── shrpx_mruby_module_response.h ├── shrpx_process.h ├── shrpx_rate_limit.cc ├── shrpx_rate_limit.h ├── shrpx_router.cc ├── shrpx_router.h ├── shrpx_router_test.cc ├── shrpx_router_test.h ├── shrpx_signal.cc ├── shrpx_signal.h ├── shrpx_spdy_upstream.cc ├── shrpx_spdy_upstream.h ├── shrpx_ssl.cc ├── shrpx_ssl.h ├── shrpx_ssl_test.cc ├── shrpx_ssl_test.h ├── shrpx_upstream.h ├── shrpx_worker.cc ├── shrpx_worker.h ├── shrpx_worker_process.cc ├── shrpx_worker_process.h ├── shrpx_worker_test.cc ├── shrpx_worker_test.h ├── ssl.cc ├── ssl.h ├── ssl_compat.h ├── template.h ├── template_test.cc ├── template_test.h ├── test.example.com-key.pem ├── test.example.com.csr ├── test.example.com.csr.json ├── test.example.com.pem ├── test.nghttp2.org-key.pem ├── test.nghttp2.org.csr ├── test.nghttp2.org.csr.json ├── test.nghttp2.org.pem ├── timegm.c ├── timegm.h ├── util.cc ├── util.h ├── util_test.cc ├── util_test.h ├── xsi_strerror.c └── xsi_strerror.h ├── tests ├── .gitignore ├── CMakeLists.txt ├── Makefile.am ├── end_to_end.py ├── failmalloc.c ├── failmalloc_test.c ├── failmalloc_test.h ├── main.c ├── malloc_wrapper.c ├── malloc_wrapper.h ├── nghttp2_buf_test.c ├── nghttp2_buf_test.h ├── nghttp2_frame_test.c ├── nghttp2_frame_test.h ├── nghttp2_hd_test.c ├── nghttp2_hd_test.h ├── nghttp2_helper_test.c ├── nghttp2_helper_test.h ├── nghttp2_map_test.c ├── nghttp2_map_test.h ├── nghttp2_npn_test.c ├── nghttp2_npn_test.h ├── nghttp2_pq_test.c ├── nghttp2_pq_test.h ├── nghttp2_queue_test.c ├── nghttp2_queue_test.h ├── nghttp2_session_test.c ├── nghttp2_session_test.h ├── nghttp2_stream_test.c ├── nghttp2_stream_test.h ├── nghttp2_test_helper.c ├── nghttp2_test_helper.h └── testdata │ ├── Makefile.am │ ├── cacert.pem │ ├── index.html │ └── privkey.pem └── third-party ├── CMakeLists.txt ├── Makefile.am ├── build_config.rb └── http-parser ├── .gitignore ├── AUTHORS ├── CONTRIBUTIONS ├── LICENSE-MIT ├── README.md ├── bench.c ├── contrib ├── parsertrace.c └── url_parser.c ├── http_parser.c ├── http_parser.gyp ├── http_parser.h └── test.c /nghttp2/.gitignore: -------------------------------------------------------------------------------- 1 | # emacs backup file 2 | *~ 3 | 4 | # autotools 5 | *.la 6 | *.lo 7 | *.m4 8 | *.o 9 | *.pyc 10 | .deps/ 11 | .libs/ 12 | INSTALL 13 | Makefile 14 | Makefile.in 15 | autom4te.cache/ 16 | compile 17 | config.guess 18 | config.h 19 | config.h.in 20 | config.log 21 | config.status 22 | config.sub 23 | configure 24 | depcomp 25 | install-sh 26 | libtool 27 | ltmain.sh 28 | missing 29 | stamp-h1 30 | test-driver 31 | 32 | # cmake 33 | CMakeCache.txt 34 | CMakeFiles/ 35 | cmake_install.cmake 36 | install_manifest.txt 37 | CTestTestfile.cmake 38 | build.ninja 39 | rules.ninja 40 | .ninja_deps 41 | .ninja_log 42 | lib*.so 43 | lib*.so.* 44 | lib*.a 45 | # generated by "make test" with cmake 46 | Testing/ 47 | 48 | # test logs generated by `make check` 49 | *.log 50 | *.trs 51 | 52 | lib/MSVC_obj/ 53 | _VC_ROOT/ 54 | .depend.MSVC 55 | *.pyd 56 | *.egg-info/ 57 | python/nghttp2.c 58 | -------------------------------------------------------------------------------- /nghttp2/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "third-party/mruby"] 2 | path = third-party/mruby 3 | url = https://github.com/mruby/mruby 4 | [submodule "third-party/neverbleed"] 5 | path = third-party/neverbleed 6 | url = https://github.com/h2o/neverbleed.git 7 | -------------------------------------------------------------------------------- /nghttp2/CMakeOptions.txt: -------------------------------------------------------------------------------- 1 | # Features that can be enabled for cmake (see CMakeLists.txt) 2 | 3 | option(ENABLE_WERROR "Turn on compile time warnings") 4 | option(ENABLE_DEBUG "Turn on debug output") 5 | option(ENABLE_THREADS "Turn on threading in apps" ON) 6 | option(ENABLE_APP "Build applications (nghttp, nghttpd, nghttpx and h2load)" 7 | ${ENABLE_APP_DEFAULT}) 8 | option(ENABLE_HPACK_TOOLS "Build HPACK tools" 9 | ${ENABLE_HPACK_TOOLS_DEFAULT}) 10 | option(ENABLE_ASIO_LIB "Build C++ libnghttp2_asio library") 11 | option(ENABLE_EXAMPLES "Build examples" 12 | ${ENABLE_EXAMPLES_DEFAULT}) 13 | option(ENABLE_PYTHON_BINDINGS "Build Python bindings" 14 | ${ENABLE_PYTHON_BINDINGS_DEFAULT}) 15 | option(ENABLE_FAILMALLOC "Build failmalloc test program" ON) 16 | option(ENABLE_LIB_ONLY "Build libnghttp2 only. This is a short hand for -DENABLE_APP=0 -DENABLE_EXAMPLES=0 -DENABLE_HPACK_TOOLS=0 -DENABLE_PYTHON_BINDINGS=0") 17 | 18 | option(WITH_LIBXML2 "Use libxml2" 19 | ${WITH_LIBXML2_DEFAULT}) 20 | option(WITH_JEMALLOC "Use jemalloc" 21 | ${WITH_JEMALLOC_DEFAULT}) 22 | option(WITH_SPDYLAY "Use spdylay" 23 | ${WITH_SPDYLAY_DEFAULT}) 24 | option(WITH_MRUBY "Use mruby") 25 | option(WITH_NEVERBLEED "Use neverbleed") 26 | 27 | # vim: ft=cmake: 28 | -------------------------------------------------------------------------------- /nghttp2/CONTRIBUTION: -------------------------------------------------------------------------------- 1 | [The text below was composed based on 1.2. License section of 2 | curl/libcurl project.] 3 | 4 | When contributing with code, you agree to put your changes and new 5 | code under the same license nghttp2 is already using unless stated and 6 | agreed otherwise. 7 | 8 | When changing existing source code, you do not alter the copyright of 9 | the original file(s). The copyright will still be owned by the 10 | original creator(s) or those who have been assigned copyright by the 11 | original author(s). 12 | 13 | By submitting a patch to the nghttp2 project, you are assumed to have 14 | the right to the code and to be allowed by your employer or whatever 15 | to hand over that patch/code to us. We will credit you for your 16 | changes as far as possible, to give credit but also to keep a trace 17 | back to who made what changes. Please always provide us with your 18 | full real name when contributing! 19 | -------------------------------------------------------------------------------- /nghttp2/COPYING: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa 4 | Copyright (c) 2012, 2014, 2015, 2016 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 | -------------------------------------------------------------------------------- /nghttp2/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/ChangeLog -------------------------------------------------------------------------------- /nghttp2/LICENSE: -------------------------------------------------------------------------------- 1 | See COPYING 2 | -------------------------------------------------------------------------------- /nghttp2/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/NEWS -------------------------------------------------------------------------------- /nghttp2/README: -------------------------------------------------------------------------------- 1 | See README.rst 2 | -------------------------------------------------------------------------------- /nghttp2/android-make: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # nghttp2 - HTTP/2 C Library 4 | # 5 | # Copyright (c) 2013 Tatsuhiro Tsujikawa 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining 8 | # a copy of this software and associated documentation files (the 9 | # "Software"), to deal in the Software without restriction, including 10 | # without limitation the rights to use, copy, modify, merge, publish, 11 | # distribute, sublicense, and/or sell copies of the Software, and to 12 | # permit persons to whom the Software is furnished to do so, subject to 13 | # the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be 16 | # included in all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22 | # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24 | # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 | 26 | if [ -z "$ANDROID_HOME" ]; then 27 | echo 'No $ANDROID_HOME specified.' 28 | exit 1 29 | fi 30 | TOOLCHAIN=$ANDROID_HOME/toolchain 31 | PATH=$TOOLCHAIN/bin:$PATH 32 | 33 | make "$@" 34 | -------------------------------------------------------------------------------- /nghttp2/appveyor.yml: -------------------------------------------------------------------------------- 1 | # Notes: 2 | # - Minimal appveyor.yml file is an empty file. All sections are optional. 3 | # - Indent each level of configuration with 2 spaces. Do not use tabs! 4 | # - All section names are case-sensitive. 5 | # - Section names should be unique on each level. 6 | 7 | #---------------------------------# 8 | # general configuration # 9 | #---------------------------------# 10 | 11 | # version format 12 | #version: 0.10.{build} 13 | 14 | # branches to build 15 | branches: 16 | # blacklist 17 | except: 18 | - gh-pages 19 | 20 | # Do not build on tags (GitHub only) 21 | skip_tags: true 22 | 23 | #---------------------------------# 24 | # environment configuration # 25 | #---------------------------------# 26 | 27 | os: Windows Server 2012 28 | 29 | # scripts that run after cloning repository 30 | install: 31 | # install Win-Flex-Bison 32 | #- cmd: cinst winflexbison -y 33 | 34 | #---------------------------------# 35 | # build configuration # 36 | #---------------------------------# 37 | 38 | # scripts to run before build 39 | before_build: 40 | - cmd: cmake . 41 | 42 | # scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services) 43 | # before_package: 44 | 45 | # scripts to run after build 46 | # after_build: 47 | 48 | # to run your custom scripts instead of automatic MSBuild 49 | build_script: 50 | - cmd: cmake --build . 51 | 52 | # to disable automatic builds 53 | # build: off 54 | -------------------------------------------------------------------------------- /nghttp2/author.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # script to extract commit author's name from standard input. The 4 | # input should be :, one per line. 5 | # This script expects the input is created by git-log command: 6 | # 7 | # git log --format=%aN:%aE 8 | # 9 | # This script removes duplicates based on email address, breaking a 10 | # tie with longer author name. Among the all author names extract the 11 | # previous step, we remove duplicate by case-insensitive match. 12 | # 13 | # So we can do this in one line: 14 | # 15 | # git log --format=%aN:%aE | sort | uniq | ./author.py > authors 16 | 17 | import sys 18 | 19 | edict = {} 20 | 21 | for line in sys.stdin: 22 | author, email = line.strip().split(':', 1) 23 | if email in edict: 24 | an = edict[email] 25 | if len(an) < len(author) or an > author: 26 | sys.stderr.write( 27 | 'eliminated {} in favor of {}\n'.format(an, author)) 28 | edict[email] = author 29 | else: 30 | sys.stderr.write( 31 | 'eliminated {} in favor of {}\n'.format(author, an)) 32 | else: 33 | edict[email] = author 34 | 35 | names = list(sorted(edict.values())) 36 | 37 | ndict = {} 38 | 39 | for name in names: 40 | lowname = name.lower() 41 | if lowname in ndict: 42 | an = ndict[lowname] 43 | if an > name: 44 | sys.stderr.write('eliminated {} in favor of {}\n'.format(an, name)) 45 | ndict[lowname] = name 46 | else: 47 | sys.stderr.write('eliminated {} in favor of {}\n'.format(name, an)) 48 | else: 49 | ndict[lowname] = name 50 | 51 | for name in sorted(ndict.values()): 52 | print name 53 | -------------------------------------------------------------------------------- /nghttp2/cmake/ExtractValidFlags.cmake: -------------------------------------------------------------------------------- 1 | # Convenience function that checks the availability of certain 2 | # C or C++ compiler flags and returns valid ones as a string. 3 | 4 | include(CheckCCompilerFlag) 5 | include(CheckCXXCompilerFlag) 6 | 7 | function(extract_valid_c_flags varname) 8 | set(valid_flags) 9 | foreach(flag IN LISTS ARGN) 10 | string(REGEX REPLACE "[^a-zA-Z0-9_]+" "_" flag_var ${flag}) 11 | set(flag_var "C_FLAG_${flag_var}") 12 | check_c_compiler_flag("${flag}" "${flag_var}") 13 | if(${flag_var}) 14 | set(valid_flags "${valid_flags} ${flag}") 15 | endif() 16 | endforeach() 17 | set(${varname} "${valid_flags}" PARENT_SCOPE) 18 | endfunction() 19 | 20 | function(extract_valid_cxx_flags varname) 21 | set(valid_flags) 22 | foreach(flag IN LISTS ARGN) 23 | string(REGEX REPLACE "[^a-zA-Z0-9_]+" "_" flag_var ${flag}) 24 | set(flag_var "CXX_FLAG_${flag_var}") 25 | check_cxx_compiler_flag("${flag}" "${flag_var}") 26 | if(${flag_var}) 27 | set(valid_flags "${valid_flags} ${flag}") 28 | endif() 29 | endforeach() 30 | set(${varname} "${valid_flags}" PARENT_SCOPE) 31 | endfunction() 32 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindCUnit.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find cunit 2 | # Once done this will define 3 | # CUNIT_FOUND - System has cunit 4 | # CUNIT_INCLUDE_DIRS - The cunit include directories 5 | # CUNIT_LIBRARIES - The libraries needed to use cunit 6 | 7 | find_package(PkgConfig QUIET) 8 | pkg_check_modules(PC_CUNIT QUIET cunit) 9 | 10 | find_path(CUNIT_INCLUDE_DIR 11 | NAMES CUnit/CUnit.h 12 | HINTS ${PC_CUNIT_INCLUDE_DIRS} 13 | ) 14 | find_library(CUNIT_LIBRARY 15 | NAMES cunit 16 | HINTS ${PC_CUNIT_LIBRARY_DIRS} 17 | ) 18 | 19 | if(CUNIT_INCLUDE_DIR) 20 | set(_version_regex "^#define[ \t]+CU_VERSION[ \t]+\"([^\"]+)\".*") 21 | file(STRINGS "${CUNIT_INCLUDE_DIR}/CUnit/CUnit.h" 22 | CUNIT_VERSION REGEX "${_version_regex}") 23 | string(REGEX REPLACE "${_version_regex}" "\\1" 24 | CUNIT_VERSION "${CUNIT_VERSION}") 25 | unset(_version_regex) 26 | endif() 27 | 28 | include(FindPackageHandleStandardArgs) 29 | # handle the QUIETLY and REQUIRED arguments and set CUNIT_FOUND to TRUE 30 | # if all listed variables are TRUE and the requested version matches. 31 | find_package_handle_standard_args(CUnit REQUIRED_VARS 32 | CUNIT_LIBRARY CUNIT_INCLUDE_DIR 33 | VERSION_VAR CUNIT_VERSION) 34 | 35 | if(CUNIT_FOUND) 36 | set(CUNIT_LIBRARIES ${CUNIT_LIBRARY}) 37 | set(CUNIT_INCLUDE_DIRS ${CUNIT_INCLUDE_DIR}) 38 | endif() 39 | 40 | mark_as_advanced(CUNIT_INCLUDE_DIR CUNIT_LIBRARY) 41 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindCython.cmake: -------------------------------------------------------------------------------- 1 | # Find the Cython compiler. 2 | # 3 | # This code sets the following variables: 4 | # 5 | # CYTHON_EXECUTABLE 6 | # 7 | # See also UseCython.cmake 8 | 9 | #============================================================================= 10 | # Copyright 2011 Kitware, Inc. 11 | # 12 | # Licensed under the Apache License, Version 2.0 (the "License"); 13 | # you may not use this file except in compliance with the License. 14 | # You may obtain a copy of the License at 15 | # 16 | # http://www.apache.org/licenses/LICENSE-2.0 17 | # 18 | # Unless required by applicable law or agreed to in writing, software 19 | # distributed under the License is distributed on an "AS IS" BASIS, 20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | # See the License for the specific language governing permissions and 22 | # limitations under the License. 23 | #============================================================================= 24 | 25 | # Use the Cython executable that lives next to the Python executable 26 | # if it is a local installation. 27 | find_package( PythonInterp ) 28 | if( PYTHONINTERP_FOUND ) 29 | get_filename_component( _python_path ${PYTHON_EXECUTABLE} PATH ) 30 | find_program( CYTHON_EXECUTABLE 31 | NAMES cython cython.bat cython3 32 | HINTS ${_python_path} 33 | ) 34 | else() 35 | find_program( CYTHON_EXECUTABLE 36 | NAMES cython cython.bat cython3 37 | ) 38 | endif() 39 | 40 | 41 | include( FindPackageHandleStandardArgs ) 42 | FIND_PACKAGE_HANDLE_STANDARD_ARGS( Cython REQUIRED_VARS CYTHON_EXECUTABLE ) 43 | 44 | mark_as_advanced( CYTHON_EXECUTABLE ) 45 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindJansson.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find jansson 2 | # Once done this will define 3 | # JANSSON_FOUND - System has jansson 4 | # JANSSON_INCLUDE_DIRS - The jansson include directories 5 | # JANSSON_LIBRARIES - The libraries needed to use jansson 6 | 7 | find_package(PkgConfig QUIET) 8 | pkg_check_modules(PC_JANSSON QUIET jansson) 9 | 10 | find_path(JANSSON_INCLUDE_DIR 11 | NAMES jansson.h 12 | HINTS ${PC_JANSSON_INCLUDE_DIRS} 13 | ) 14 | find_library(JANSSON_LIBRARY 15 | NAMES jansson 16 | HINTS ${PC_JANSSON_LIBRARY_DIRS} 17 | ) 18 | 19 | if(JANSSON_INCLUDE_DIR) 20 | set(_version_regex "^#define[ \t]+JANSSON_VERSION[ \t]+\"([^\"]+)\".*") 21 | file(STRINGS "${JANSSON_INCLUDE_DIR}/jansson.h" 22 | JANSSON_VERSION REGEX "${_version_regex}") 23 | string(REGEX REPLACE "${_version_regex}" "\\1" 24 | JANSSON_VERSION "${JANSSON_VERSION}") 25 | unset(_version_regex) 26 | endif() 27 | 28 | include(FindPackageHandleStandardArgs) 29 | # handle the QUIETLY and REQUIRED arguments and set JANSSON_FOUND to TRUE 30 | # if all listed variables are TRUE and the requested version matches. 31 | find_package_handle_standard_args(Jansson REQUIRED_VARS 32 | JANSSON_LIBRARY JANSSON_INCLUDE_DIR 33 | VERSION_VAR JANSSON_VERSION) 34 | 35 | if(JANSSON_FOUND) 36 | set(JANSSON_LIBRARIES ${JANSSON_LIBRARY}) 37 | set(JANSSON_INCLUDE_DIRS ${JANSSON_INCLUDE_DIR}) 38 | endif() 39 | 40 | mark_as_advanced(JANSSON_INCLUDE_DIR JANSSON_LIBRARY) 41 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindJemalloc.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find jemalloc 2 | # Once done this will define 3 | # JEMALLOC_FOUND - System has jemalloc 4 | # JEMALLOC_INCLUDE_DIRS - The jemalloc include directories 5 | # JEMALLOC_LIBRARIES - The libraries needed to use jemalloc 6 | 7 | find_package(PkgConfig QUIET) 8 | pkg_check_modules(PC_JEMALLOC QUIET jemalloc) 9 | 10 | find_path(JEMALLOC_INCLUDE_DIR 11 | NAMES jemalloc/jemalloc.h 12 | HINTS ${PC_JEMALLOC_INCLUDE_DIRS} 13 | ) 14 | find_library(JEMALLOC_LIBRARY 15 | NAMES jemalloc 16 | HINTS ${PC_JEMALLOC_LIBRARY_DIRS} 17 | ) 18 | 19 | if(JEMALLOC_INCLUDE_DIR) 20 | set(_version_regex "^#define[ \t]+JEMALLOC_VERSION[ \t]+\"([^\"]+)\".*") 21 | file(STRINGS "${JEMALLOC_INCLUDE_DIR}/jemalloc/jemalloc.h" 22 | JEMALLOC_VERSION REGEX "${_version_regex}") 23 | string(REGEX REPLACE "${_version_regex}" "\\1" 24 | JEMALLOC_VERSION "${JEMALLOC_VERSION}") 25 | unset(_version_regex) 26 | endif() 27 | 28 | include(FindPackageHandleStandardArgs) 29 | # handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE 30 | # if all listed variables are TRUE and the requested version matches. 31 | find_package_handle_standard_args(Jemalloc REQUIRED_VARS 32 | JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR 33 | VERSION_VAR JEMALLOC_VERSION) 34 | 35 | if(JEMALLOC_FOUND) 36 | set(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY}) 37 | set(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR}) 38 | endif() 39 | 40 | mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY) 41 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindLibcares.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find libcares 2 | # Once done this will define 3 | # LIBCARES_FOUND - System has libcares 4 | # LIBCARES_INCLUDE_DIRS - The libcares include directories 5 | # LIBCARES_LIBRARIES - The libraries needed to use libcares 6 | 7 | find_package(PkgConfig QUIET) 8 | pkg_check_modules(PC_LIBCARES QUIET libcares) 9 | 10 | find_path(LIBCARES_INCLUDE_DIR 11 | NAMES ares.h 12 | HINTS ${PC_LIBCARES_INCLUDE_DIRS} 13 | ) 14 | find_library(LIBCARES_LIBRARY 15 | NAMES cares 16 | HINTS ${PC_LIBCARES_LIBRARY_DIRS} 17 | ) 18 | 19 | if(LIBCARES_INCLUDE_DIR) 20 | set(_version_regex "^#define[ \t]+ARES_VERSION_STR[ \t]+\"([^\"]+)\".*") 21 | file(STRINGS "${LIBCARES_INCLUDE_DIR}/ares_version.h" 22 | LIBCARES_VERSION REGEX "${_version_regex}") 23 | string(REGEX REPLACE "${_version_regex}" "\\1" 24 | LIBCARES_VERSION "${LIBCARES_VERSION}") 25 | unset(_version_regex) 26 | endif() 27 | 28 | include(FindPackageHandleStandardArgs) 29 | # handle the QUIETLY and REQUIRED arguments and set LIBCARES_FOUND to TRUE 30 | # if all listed variables are TRUE and the requested version matches. 31 | find_package_handle_standard_args(Libcares REQUIRED_VARS 32 | LIBCARES_LIBRARY LIBCARES_INCLUDE_DIR 33 | VERSION_VAR LIBCARES_VERSION) 34 | 35 | if(LIBCARES_FOUND) 36 | set(LIBCARES_LIBRARIES ${LIBCARES_LIBRARY}) 37 | set(LIBCARES_INCLUDE_DIRS ${LIBCARES_INCLUDE_DIR}) 38 | endif() 39 | 40 | mark_as_advanced(LIBCARES_INCLUDE_DIR LIBCARES_LIBRARY) 41 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindLibev.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find libev 2 | # Once done this will define 3 | # LIBEV_FOUND - System has libev 4 | # LIBEV_INCLUDE_DIRS - The libev include directories 5 | # LIBEV_LIBRARIES - The libraries needed to use libev 6 | 7 | find_path(LIBEV_INCLUDE_DIR 8 | NAMES ev.h 9 | ) 10 | find_library(LIBEV_LIBRARY 11 | NAMES ev 12 | ) 13 | 14 | if(LIBEV_INCLUDE_DIR) 15 | file(STRINGS "${LIBEV_INCLUDE_DIR}/ev.h" 16 | LIBEV_VERSION_MAJOR REGEX "^#define[ \t]+EV_VERSION_MAJOR[ \t]+[0-9]+") 17 | file(STRINGS "${LIBEV_INCLUDE_DIR}/ev.h" 18 | LIBEV_VERSION_MINOR REGEX "^#define[ \t]+EV_VERSION_MINOR[ \t]+[0-9]+") 19 | string(REGEX REPLACE "[^0-9]+" "" LIBEV_VERSION_MAJOR "${LIBEV_VERSION_MAJOR}") 20 | string(REGEX REPLACE "[^0-9]+" "" LIBEV_VERSION_MINOR "${LIBEV_VERSION_MINOR}") 21 | set(LIBEV_VERSION "${LIBEV_VERSION_MAJOR}.${LIBEV_VERSION_MINOR}") 22 | unset(LIBEV_VERSION_MINOR) 23 | unset(LIBEV_VERSION_MAJOR) 24 | endif() 25 | 26 | include(FindPackageHandleStandardArgs) 27 | # handle the QUIETLY and REQUIRED arguments and set LIBEV_FOUND to TRUE 28 | # if all listed variables are TRUE and the requested version matches. 29 | find_package_handle_standard_args(Libev REQUIRED_VARS 30 | LIBEV_LIBRARY LIBEV_INCLUDE_DIR 31 | VERSION_VAR LIBEV_VERSION) 32 | 33 | if(LIBEV_FOUND) 34 | set(LIBEV_LIBRARIES ${LIBEV_LIBRARY}) 35 | set(LIBEV_INCLUDE_DIRS ${LIBEV_INCLUDE_DIR}) 36 | endif() 37 | 38 | mark_as_advanced(LIBEV_INCLUDE_DIR LIBEV_LIBRARY) 39 | -------------------------------------------------------------------------------- /nghttp2/cmake/FindSpdylay.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find spdylay 2 | # Once done this will define 3 | # SPDYLAY_FOUND - System has spdylay 4 | # SPDYLAY_INCLUDE_DIRS - The spdylay include directories 5 | # SPDYLAY_LIBRARIES - The libraries needed to use spdylay 6 | 7 | find_package(PkgConfig QUIET) 8 | pkg_check_modules(PC_SPDYLAY QUIET libspdylay) 9 | 10 | find_path(SPDYLAY_INCLUDE_DIR 11 | NAMES spdylay/spdylay.h 12 | HINTS ${PC_SPDYLAY_INCLUDE_DIRS} 13 | ) 14 | find_library(SPDYLAY_LIBRARY 15 | NAMES spdylay 16 | HINTS ${PC_SPDYLAY_LIBRARY_DIRS} 17 | ) 18 | 19 | if(SPDYLAY_INCLUDE_DIR) 20 | set(_version_regex "^#define[ \t]+SPDYLAY_VERSION[ \t]+\"([^\"]+)\".*") 21 | file(STRINGS "${SPDYLAY_INCLUDE_DIR}/spdylay/spdylayver.h" 22 | SPDYLAY_VERSION REGEX "${_version_regex}") 23 | string(REGEX REPLACE "${_version_regex}" "\\1" 24 | SPDYLAY_VERSION "${SPDYLAY_VERSION}") 25 | unset(_version_regex) 26 | endif() 27 | 28 | include(FindPackageHandleStandardArgs) 29 | # handle the QUIETLY and REQUIRED arguments and set SPDYLAY_FOUND to TRUE 30 | # if all listed variables are TRUE and the requested version matches. 31 | find_package_handle_standard_args(Spdylay REQUIRED_VARS 32 | SPDYLAY_LIBRARY SPDYLAY_INCLUDE_DIR 33 | VERSION_VAR SPDYLAY_VERSION) 34 | 35 | if(SPDYLAY_FOUND) 36 | set(SPDYLAY_LIBRARIES ${SPDYLAY_LIBRARY}) 37 | set(SPDYLAY_INCLUDE_DIRS ${SPDYLAY_INCLUDE_DIR}) 38 | endif() 39 | 40 | mark_as_advanced(SPDYLAY_INCLUDE_DIR SPDYLAY_LIBRARY) 41 | -------------------------------------------------------------------------------- /nghttp2/cmake/Version.cmake: -------------------------------------------------------------------------------- 1 | # Converts a version such as 1.2.255 to 0x0102ff 2 | function(HexVersion version_hex_var major minor patch) 3 | math(EXPR version_dec "${major} * 256 * 256 + ${minor} * 256 + ${patch}") 4 | set(version_hex "0x") 5 | foreach(i RANGE 5 0 -1) 6 | math(EXPR num "(${version_dec} >> (4 * ${i})) & 15") 7 | string(SUBSTRING "0123456789abcdef" ${num} 1 num_hex) 8 | set(version_hex "${version_hex}${num_hex}") 9 | endforeach() 10 | set(${version_hex_var} "${version_hex}" PARENT_SCOPE) 11 | endfunction() 12 | -------------------------------------------------------------------------------- /nghttp2/contrib/.gitignore: -------------------------------------------------------------------------------- 1 | nghttpx-init 2 | nghttpx.service 3 | nghttpx-upstart.conf 4 | -------------------------------------------------------------------------------- /nghttp2/contrib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(CONFIGFILES 2 | nghttpx-init 3 | nghttpx.service 4 | nghttpx-upstart.conf 5 | ) 6 | 7 | # Note that the execute permissions of nghttpx-init is preserved 8 | foreach(name IN LISTS CONFIGFILES) 9 | configure_file("${name}.in" "${name}" @ONLY) 10 | endforeach() 11 | 12 | # set(EXTRA_DIST ${CONFIGFILES} nghttpx-logrotate tlsticketupdate.go) 13 | -------------------------------------------------------------------------------- /nghttp2/contrib/nghttpx-logrotate: -------------------------------------------------------------------------------- 1 | /var/log/nghttpx/*.log { 2 | weekly 3 | rotate 52 4 | missingok 5 | compress 6 | delaycompress 7 | notifempty 8 | postrotate 9 | [ -s /var/run/nghttpx.pid ] && kill -USR1 `cat /var/run/nghttpx.pid` 2> /dev/null || true 10 | endscript 11 | } 12 | -------------------------------------------------------------------------------- /nghttp2/contrib/nghttpx-upstart.conf.in: -------------------------------------------------------------------------------- 1 | # vim: ft=upstart: 2 | 3 | description "HTTP/2 reverse proxy" 4 | 5 | start on runlevel [2] 6 | stop on runlevel [016] 7 | 8 | exec @bindir@/nghttpx 9 | -------------------------------------------------------------------------------- /nghttp2/contrib/nghttpx.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=HTTP/2 proxy 3 | Documentation=man:nghttpx 4 | After=network.target 5 | 6 | [Service] 7 | Type=notify 8 | ExecStart=@bindir@/nghttpx --conf=/etc/nghttpx/nghttpx.conf 9 | ExecReload=/bin/kill --signal HUP $MAINPID 10 | KillSignal=SIGQUIT 11 | PrivateTmp=yes 12 | ProtectHome=yes 13 | ProtectSystem=full 14 | Restart=always 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /nghttp2/contrib/usr.sbin.nghttpx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /usr/sbin/nghttpx { 4 | #include 5 | #include 6 | #include 7 | 8 | capability setgid, 9 | capability setuid, 10 | 11 | /usr/sbin/nghttpx rmix, # allow to run itself 12 | /etc/nghttpx/nghttpx.conf r, # allow to read the config file 13 | /etc/ssl/** r, # give access to ssl keys 14 | 15 | /{,var/}run/nghttpx.pid lw, # allow to store a pid file 16 | } 17 | -------------------------------------------------------------------------------- /nghttp2/doc/.gitignore: -------------------------------------------------------------------------------- 1 | # generated files 2 | apiref.rst 3 | asio_http2.h.rst 4 | asio_http2_client.h.rst 5 | asio_http2_server.h.rst 6 | building-android-binary.rst 7 | conf.py 8 | contribute.rst 9 | enums.rst 10 | h2load-howto.rst 11 | index.rst 12 | libnghttp2_asio.rst 13 | macros.rst 14 | manual/ 15 | nghttp2.h.rst 16 | nghttp2_*.rst 17 | nghttp2ver.h.rst 18 | nghttpx-howto.rst 19 | package_README.rst 20 | python-apiref.rst 21 | tutorial-client.rst 22 | tutorial-hpack.rst 23 | tutorial-server.rst 24 | types.rst 25 | -------------------------------------------------------------------------------- /nghttp2/doc/_exts/sphinxcontrib/LICENSE.rubydomain: -------------------------------------------------------------------------------- 1 | If not otherwise noted, the extensions in this package are licensed 2 | under the following license. 3 | 4 | Copyright (c) 2010 by the contributors (see AUTHORS file). 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are 9 | met: 10 | 11 | * Redistributions of source code must retain the above copyright 12 | notice, this list of conditions and the following disclaimer. 13 | 14 | * Redistributions in binary form must reproduce the above copyright 15 | notice, this list of conditions and the following disclaimer in the 16 | documentation and/or other materials provided with the distribution. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /nghttp2/doc/_exts/sphinxcontrib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | sphinxcontrib 4 | ~~~~~~~~~~~~~ 5 | 6 | This package is a namespace package that contains all extensions 7 | distributed in the ``sphinx-contrib`` distribution. 8 | 9 | :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS. 10 | :license: BSD, see LICENSE for details. 11 | """ 12 | 13 | __import__('pkg_resources').declare_namespace(__name__) 14 | 15 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/__init__.py: -------------------------------------------------------------------------------- 1 | """Sphinx ReadTheDocs theme. 2 | 3 | From https://github.com/ryan-roemer/sphinx-bootstrap-theme. 4 | 5 | """ 6 | import os 7 | 8 | VERSION = (0, 1, 9) 9 | 10 | __version__ = ".".join(str(v) for v in VERSION) 11 | __version_full__ = __version__ 12 | 13 | 14 | def get_html_theme_path(): 15 | """Return list of HTML theme paths.""" 16 | cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) 17 | return cur_dir 18 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/breadcrumbs.html: -------------------------------------------------------------------------------- 1 | {# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #} 2 | 3 | {% if page_source_suffix %} 4 | {% set suffix = page_source_suffix %} 5 | {% else %} 6 | {% set suffix = source_suffix %} 7 | {% endif %} 8 | 9 |
10 |
    11 |
  • Docs »
  • 12 | {% for doc in parents %} 13 |
  • {{ doc.title }} »
  • 14 | {% endfor %} 15 |
  • {{ title }}
  • 16 |
  • 17 | {% if pagename != "search" %} 18 | {% if display_github %} 19 | Edit on GitHub 20 | {% elif display_bitbucket %} 21 | Edit on Bitbucket 22 | {% elif show_source and source_url_prefix %} 23 | View page source 24 | {% elif show_source and has_source and sourcename %} 25 | View page source 26 | {% endif %} 27 | {% endif %} 28 |
  • 29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/search.html: -------------------------------------------------------------------------------- 1 | {# 2 | basic/search.html 3 | ~~~~~~~~~~~~~~~~~ 4 | 5 | Template for the search page. 6 | 7 | :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. 8 | :license: BSD, see LICENSE for details. 9 | #} 10 | {%- extends "layout.html" %} 11 | {% set title = _('Search') %} 12 | {% set script_files = script_files + ['_static/searchtools.js'] %} 13 | {% block footer %} 14 | 17 | {# this is used when loading the search index using $.ajax fails, 18 | such as on Chrome for documents on localhost #} 19 | 20 | {{ super() }} 21 | {% endblock %} 22 | {% block body %} 23 | 31 | 32 | {% if search_performed %} 33 |

{{ _('Search Results') }}

34 | {% if not search_results %} 35 |

{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}

36 | {% endif %} 37 | {% endif %} 38 |
39 | {% if search_results %} 40 |
    41 | {% for href, caption, context in search_results %} 42 |
  • 43 | {{ caption }} 44 |

    {{ context|e }}

    45 |
  • 46 | {% endfor %} 47 |
48 | {% endif %} 49 |
50 | {% endblock %} 51 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/searchbox.html: -------------------------------------------------------------------------------- 1 | {%- if builder != 'singlehtml' %} 2 |
3 |
4 | 5 | 6 | 7 |
8 |
9 | {%- endif %} 10 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/doc/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | stylesheet = css/theme.css 4 | 5 | [options] 6 | typekit_id = hiw1hhg 7 | analytics_id = 8 | sticky_navigation = False 9 | logo_only = 10 | collapse_navigation = False 11 | display_version = True 12 | -------------------------------------------------------------------------------- /nghttp2/doc/_themes/sphinx_rtd_theme/versions.html: -------------------------------------------------------------------------------- 1 | {% if READTHEDOCS %} 2 | {# Add rst-badge after rst-versions for small badge style. #} 3 |
4 | 5 | Read the Docs 6 | v: {{ current_version }} 7 | 8 | 9 |
10 |
11 |
Versions
12 | {% for slug, url in versions %} 13 |
{{ slug }}
14 | {% endfor %} 15 |
16 |
17 |
Downloads
18 | {% for type, url in downloads %} 19 |
{{ type }}
20 | {% endfor %} 21 |
22 |
23 |
On Read the Docs
24 |
25 | Project Home 26 |
27 |
28 | Builds 29 |
30 |
31 |
32 | Free document hosting provided by Read the Docs. 33 | 34 |
35 |
36 | {% endif %} 37 | 38 | -------------------------------------------------------------------------------- /nghttp2/doc/asio_http2.h.rst.in: -------------------------------------------------------------------------------- 1 | asio_http2.h 2 | ============ 3 | 4 | .. literalinclude:: @top_srcdir@/src/includes/nghttp2/asio_http2.h 5 | :language: cpp 6 | -------------------------------------------------------------------------------- /nghttp2/doc/asio_http2_client.h.rst.in: -------------------------------------------------------------------------------- 1 | asio_http2_client.h 2 | =================== 3 | 4 | .. literalinclude:: @top_srcdir@/src/includes/nghttp2/asio_http2_client.h 5 | :language: cpp 6 | -------------------------------------------------------------------------------- /nghttp2/doc/asio_http2_server.h.rst.in: -------------------------------------------------------------------------------- 1 | asio_http2_server.h 2 | =================== 3 | 4 | .. literalinclude:: @top_srcdir@/src/includes/nghttp2/asio_http2_server.h 5 | :language: cpp 6 | -------------------------------------------------------------------------------- /nghttp2/doc/bash_completion/h2load: -------------------------------------------------------------------------------- 1 | _h2load() 2 | { 3 | local cur prev split=false 4 | COMPREPLY=() 5 | COMP_WORDBREAKS=${COMP_WORDBREAKS//=} 6 | 7 | cmd=${COMP_WORDS[0]} 8 | _get_comp_words_by_ref cur prev 9 | case $cur in 10 | -*) 11 | COMPREPLY=( $( compgen -W '--connection-window-bits --clients --verbose --ciphers --rate --no-tls-proto --header-table-size --requests --base-uri --h1 --threads --npn-list --rate-period --data --version --connection-inactivity-timeout --timing-script-file --encoder-header-table-size --max-concurrent-streams --connection-active-timeout --input-file --help --window-bits --header ' -- "$cur" ) ) 12 | ;; 13 | *) 14 | _filedir 15 | return 0 16 | esac 17 | return 0 18 | } 19 | complete -F _h2load h2load 20 | -------------------------------------------------------------------------------- /nghttp2/doc/bash_completion/nghttp: -------------------------------------------------------------------------------- 1 | _nghttp() 2 | { 3 | local cur prev split=false 4 | COMPREPLY=() 5 | COMP_WORDBREAKS=${COMP_WORDBREAKS//=} 6 | 7 | cmd=${COMP_WORDS[0]} 8 | _get_comp_words_by_ref cur prev 9 | case $cur in 10 | -*) 11 | COMPREPLY=( $( compgen -W '--no-push --verbose --no-dep --get-assets --har --header-table-size --multiply --encoder-header-table-size --padding --hexdump --max-concurrent-streams --continuation --connection-window-bits --peer-max-concurrent-streams --timeout --data --no-content-length --version --color --cert --upgrade --remote-name --trailer --weight --help --key --null-out --window-bits --expect-continue --stat --header ' -- "$cur" ) ) 12 | ;; 13 | *) 14 | _filedir 15 | return 0 16 | esac 17 | return 0 18 | } 19 | complete -F _nghttp nghttp 20 | -------------------------------------------------------------------------------- /nghttp2/doc/bash_completion/nghttpd: -------------------------------------------------------------------------------- 1 | _nghttpd() 2 | { 3 | local cur prev split=false 4 | COMPREPLY=() 5 | COMP_WORDBREAKS=${COMP_WORDBREAKS//=} 6 | 7 | cmd=${COMP_WORDS[0]} 8 | _get_comp_words_by_ref cur prev 9 | case $cur in 10 | -*) 11 | COMPREPLY=( $( compgen -W '--htdocs --verbose --daemon --echo-upload --error-gzip --push --header-table-size --encoder-header-table-size --padding --hexdump --max-concurrent-streams --no-tls --connection-window-bits --mime-types-file --no-content-length --workers --version --color --early-response --dh-param-file --trailer --address --window-bits --verify-client --help ' -- "$cur" ) ) 12 | ;; 13 | *) 14 | _filedir 15 | return 0 16 | esac 17 | return 0 18 | } 19 | complete -F _nghttpd nghttpd 20 | -------------------------------------------------------------------------------- /nghttp2/doc/building-android-binary.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/building-android-binary.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/contribute.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/contribute.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/h2load-howto.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/h2load-howto.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/index.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/index.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/libnghttp2_asio.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/libnghttp2_asio.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/nghttp2.h.rst.in: -------------------------------------------------------------------------------- 1 | nghttp2.h 2 | ========= 3 | 4 | .. literalinclude:: @top_srcdir@/lib/includes/nghttp2/nghttp2.h 5 | -------------------------------------------------------------------------------- /nghttp2/doc/nghttp2ver.h.rst.in: -------------------------------------------------------------------------------- 1 | nghttp2ver.h 2 | ============ 3 | 4 | .. literalinclude:: @top_builddir@/lib/includes/nghttp2/nghttp2ver.h 5 | -------------------------------------------------------------------------------- /nghttp2/doc/nghttpd.h2r: -------------------------------------------------------------------------------- 1 | SEE ALSO 2 | -------- 3 | 4 | :manpage:`nghttp(1)`, :manpage:`nghttpx(1)`, :manpage:`h2load(1)` 5 | -------------------------------------------------------------------------------- /nghttp2/doc/nghttpx-howto.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/nghttpx-howto.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/package_README.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/README.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/python-apiref.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/python-apiref.rst 2 | -------------------------------------------------------------------------------- /nghttp2/doc/tutorial-client.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/tutorial-client.rst 2 | 3 | libevent-client.c 4 | ----------------- 5 | 6 | .. literalinclude:: @top_srcdir@/examples/libevent-client.c 7 | -------------------------------------------------------------------------------- /nghttp2/doc/tutorial-hpack.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/tutorial-hpack.rst 2 | 3 | deflate.c 4 | --------- 5 | 6 | .. literalinclude:: @top_srcdir@/examples/deflate.c 7 | -------------------------------------------------------------------------------- /nghttp2/doc/tutorial-server.rst.in: -------------------------------------------------------------------------------- 1 | .. include:: @top_srcdir@/doc/sources/tutorial-server.rst 2 | 3 | libevent-server.c 4 | ----------------- 5 | 6 | .. literalinclude:: @top_srcdir@/examples/libevent-server.c 7 | -------------------------------------------------------------------------------- /nghttp2/examples/.gitignore: -------------------------------------------------------------------------------- 1 | client 2 | libevent-client 3 | libevent-server 4 | deflate 5 | tiny-nghttpd 6 | asio-sv 7 | asio-sv2 8 | asio-cl 9 | asio-cl2 10 | -------------------------------------------------------------------------------- /nghttp2/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(ENABLE_EXAMPLES) 2 | file(GLOB c_sources *.c) 3 | set_source_files_properties(${c_sources} PROPERTIES 4 | COMPILE_FLAGS "${WARNCFLAGS}") 5 | file(GLOB cxx_sources *.cc) 6 | set_source_files_properties(${cxx_sources} PROPERTIES 7 | COMPILE_FLAGS "${WARNCXXFLAGS} ${CXX1XCXXFLAGS}") 8 | 9 | include_directories( 10 | ${CMAKE_SOURCE_DIR} 11 | ${CMAKE_SOURCE_DIR}/lib/includes 12 | ${CMAKE_BINARY_DIR}/lib/includes 13 | ${CMAKE_SOURCE_DIR}/src/includes 14 | ${CMAKE_SOURCE_DIR}/third-party 15 | 16 | ${LIBEVENT_INCLUDE_DIRS} 17 | ${OPENSSL_INCLUDE_DIRS} 18 | ) 19 | 20 | link_libraries( 21 | nghttp2 22 | ${LIBEVENT_OPENSSL_LIBRARIES} 23 | ${OPENSSL_LIBRARIES} 24 | ${APP_LIBRARIES} 25 | ) 26 | 27 | add_executable(client client.c $) 28 | add_executable(libevent-client libevent-client.c $) 29 | add_executable(libevent-server libevent-server.c $) 30 | add_executable(deflate deflate.c $) 31 | 32 | if(ENABLE_ASIO_LIB) 33 | foreach(name asio-sv asio-sv2 asio-cl asio-cl2) 34 | add_executable(${name} ${name}.cc $) 35 | target_include_directories(${name} PRIVATE 36 | ${OPENSSL_INCLUDE_DIRS} 37 | ${Boost_INCLUDE_DIRS} 38 | ) 39 | target_link_libraries(${name} 40 | nghttp2 41 | nghttp2_asio 42 | ${JEMALLOC_LIBRARIES} 43 | ${OPENSSL_LIBRARIES} 44 | ${Boost_LIBRARIES} 45 | ${APP_LIBRARIES} 46 | ) 47 | endforeach() 48 | endif() 49 | endif() 50 | -------------------------------------------------------------------------------- /nghttp2/fuzz/README.rst: -------------------------------------------------------------------------------- 1 | Fuzzer 2 | ====== 3 | 4 | This directory contains fuzzer target mainly written to integrate 5 | nghttp2 into `oss-fuzz `_. 6 | 7 | fuzz_target.cc contains an entry point of fuzzer. corpus directory 8 | contains initial data for fuzzer. 9 | 10 | The file name of initial data under corpus is the lower-cased hex 11 | string of SHA-256 hash of its own content. 12 | 13 | corpus/h2spec contains input data which was recorded when we ran 14 | `h2spec `_ against nghttpd. 15 | 16 | corpus/nghttp contains input data which was recorded when we ran 17 | nghttp against nghttpd with some varying command line options of 18 | nghttp. 19 | 20 | 21 | To build fuzz_target.cc, make sure that libnghttp2 is built with 22 | following compiler/linker flags: 23 | 24 | .. code-block:: text 25 | 26 | CPPFLAGS="-fsanitize-coverage=edge -fsanitize=addres" 27 | LDFLAGS="-fsanitize-coverage=edge -fsanitize=addres" 28 | 29 | Then, fuzz_target.cc can be built using the following command: 30 | 31 | .. code-block:: text 32 | 33 | $ clang++ -fsanitize-coverage=edge -fsanitize=address -I../lib/includes -std=c++11 fuzz_target.cc ../lib/.libs/libnghttp2.a /usr/lib/llvm-3.9/lib/libFuzzer.a -o nghttp2_fuzzer 34 | -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/025ca25c8427361ea5498e4c3ba49d20eac5b4332f7b75b8f74bfba5e43f59f8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/025ca25c8427361ea5498e4c3ba49d20eac5b4332f7b75b8f74bfba5e43f59f8 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0276779c73bddcebc63b863c23a338b4c827bf6164640ff20a2d64d45a6b3f5a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0276779c73bddcebc63b863c23a338b4c827bf6164640ff20a2d64d45a6b3f5a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0428d1e3b2364efcc93ffd8fcfff43b378a92c7da44268b9dda2bf32a1178c66: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0428d1e3b2364efcc93ffd8fcfff43b378a92c7da44268b9dda2bf32a1178c66 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/06bc5f79b7e68e005bd4382bd3a6c6b1b6005c5f7d5783e99baf2f8f7432d71a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/06bc5f79b7e68e005bd4382bd3a6c6b1b6005c5f7d5783e99baf2f8f7432d71a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/09f76550ec065944a5d1d52f5d07b1dd87de1f651f80ef82c2815b0248b7dccd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/09f76550ec065944a5d1d52f5d07b1dd87de1f651f80ef82c2815b0248b7dccd -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0b39d9df6e1721030667980a41547272ad42377149edcf130b2bf0b76804c61f: -------------------------------------------------------------------------------- 1 | INVALID CONNECTION PREFACE 2 | 3 | -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0bb4365b02c05540936f9606ca725770a731e73c2144c7b81953dcc4b4f73c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0bb4365b02c05540936f9606ca725770a731e73c2144c7b81953dcc4b4f73c32 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0d577f6eb853e987b8fdab6ca4615a351ab74bfc75eb0d227acbef6a35bcae39: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0d577f6eb853e987b8fdab6ca4615a351ab74bfc75eb0d227acbef6a35bcae39 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0df702020c019dd33d0643c5a2b9a9637d325c8f38b4cc6d3f808b5b2a4169a9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0df702020c019dd33d0643c5a2b9a9637d325c8f38b4cc6d3f808b5b2a4169a9 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/0f8054152149c73e64c9f3e83f97e6585c8a51ec2413e7a2e8dfcc444082a5c5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/0f8054152149c73e64c9f3e83f97e6585c8a51ec2413e7a2e8dfcc444082a5c5 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/105f72bc9184bf47a857ed84e8c2f917946ec7ef3f4720535478b41e097a798a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/105f72bc9184bf47a857ed84e8c2f917946ec7ef3f4720535478b41e097a798a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1368ed7160cc4115e31a8a158af429421570e7363a3b75441edc5d740513b0dc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1368ed7160cc4115e31a8a158af429421570e7363a3b75441edc5d740513b0dc -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1402c49b963994284b0d429edfac603133e0144dba08836f90b1ae164b328800: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1402c49b963994284b0d429edfac603133e0144dba08836f90b1ae164b328800 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1468c2cddae629788f6957847b76c09921e984796f6dc482859b119cf4879300: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1468c2cddae629788f6957847b76c09921e984796f6dc482859b119cf4879300 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/14f66ce296f03e52f039f4fad189d3d70aebe70ecb14ffb1ffe2cd5fc5d1e5f0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/14f66ce296f03e52f039f4fad189d3d70aebe70ecb14ffb1ffe2cd5fc5d1e5f0 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/17caaf734401d2d25d09a65432789b45aff588c606536e93824b89739a6d07ab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/17caaf734401d2d25d09a65432789b45aff588c606536e93824b89739a6d07ab -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/195b4a74a62fabc877052454d935ebc543f4d1305e318ccd2ff407517636bed8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/195b4a74a62fabc877052454d935ebc543f4d1305e318ccd2ff407517636bed8 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1960fc215485486f3e8ab97f853954e6f11c1f4754ccd83b1603b808878cfa76: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1960fc215485486f3e8ab97f853954e6f11c1f4754ccd83b1603b808878cfa76 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1a56272611761f0687dfb0ea37c900f13f429b750c87e6175b234b881bda6248: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1a56272611761f0687dfb0ea37c900f13f429b750c87e6175b234b881bda6248 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1d31cd88fae35f2329e201983d11256d2432fcdeb55bfba9634aa88e3794adc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1d31cd88fae35f2329e201983d11256d2432fcdeb55bfba9634aa88e3794adc6 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1e27187b10c02fe7e151818ddd0722f69830ac04975ddb5a9d83cdc406cbb678: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1e27187b10c02fe7e151818ddd0722f69830ac04975ddb5a9d83cdc406cbb678 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1ecace234d8542fbaab35c7c55330e80d8121a0cff19633a56eba8f2182a59df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1ecace234d8542fbaab35c7c55330e80d8121a0cff19633a56eba8f2182a59df -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/1f4f3a16f5ad0425e0b38601339096b80a382afa1083a19c4deab11be847502f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/1f4f3a16f5ad0425e0b38601339096b80a382afa1083a19c4deab11be847502f -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/203a798d4b658be744fe34042038692eaede4d2c1f9e05a27f2410a6e0230132: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/203a798d4b658be744fe34042038692eaede4d2c1f9e05a27f2410a6e0230132 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/21904e842e90becb56ff9748ae962bb543dd5ca188dabc30897726f87403fbce: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/21904e842e90becb56ff9748ae962bb543dd5ca188dabc30897726f87403fbce -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/23df7e0419240a9709b55af68a89c9750332ae5063e36401eae150ce63188fe0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/23df7e0419240a9709b55af68a89c9750332ae5063e36401eae150ce63188fe0 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/245ba702520fa32cf41d994f5d37e4111fe6203bac35b220d50362d5e986aa91: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/245ba702520fa32cf41d994f5d37e4111fe6203bac35b220d50362d5e986aa91 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/274faf343feb9cb44079316401fee50c647552c99c0550ebfd7a3b736e8db9e5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/274faf343feb9cb44079316401fee50c647552c99c0550ebfd7a3b736e8db9e5 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/2b042a1dfa3aeed6af58c58a4336f1386633bac75dea2c4b64c02541e7320933: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/2b042a1dfa3aeed6af58c58a4336f1386633bac75dea2c4b64c02541e7320933 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/2d8ec606661a9f12960893aab9a74dd392cbdae104307e8512e5e4113739e93a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/2d8ec606661a9f12960893aab9a74dd392cbdae104307e8512e5e4113739e93a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/2e0c8a3ce53e8e3711f781b480efaf9e2526f4ae87c5f5a585d68d6f7f7da13c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/2e0c8a3ce53e8e3711f781b480efaf9e2526f4ae87c5f5a585d68d6f7f7da13c -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/315e6acba7d715333d0865a8dfc0cd0e7aef8a1f5f420eae3d39067ad78df17d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/315e6acba7d715333d0865a8dfc0cd0e7aef8a1f5f420eae3d39067ad78df17d -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/3376a2cdde0b98759f14490881328f80b5d3c942de3b1304a0382923ce896f8f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/3376a2cdde0b98759f14490881328f80b5d3c942de3b1304a0382923ce896f8f -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/35c2719913a19f197fb6484a34c3574da63554ff06f52377b73a9cfc24eb02ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/35c2719913a19f197fb6484a34c3574da63554ff06f52377b73a9cfc24eb02ca -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/35ddf0611cd98d025f6a625e7e4a102ba74721a04dfa1811e0968e9a4966d92c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/35ddf0611cd98d025f6a625e7e4a102ba74721a04dfa1811e0968e9a4966d92c -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/37e9eab291d6bca69510354e1d029cbbbb6113071b2bb13fc9646b5a0447d2cf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/37e9eab291d6bca69510354e1d029cbbbb6113071b2bb13fc9646b5a0447d2cf -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/381c81f5e4d1b02de39c4f99f21e9793f6ffc82ae0ef6917a8611e8879e05941: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/381c81f5e4d1b02de39c4f99f21e9793f6ffc82ae0ef6917a8611e8879e05941 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/38ac32c81952cc832ade7aea13b0740f76898ccbb1da25f2281da76e50c1d04a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/38ac32c81952cc832ade7aea13b0740f76898ccbb1da25f2281da76e50c1d04a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/3e297dd8fcdb50a751c397a505d84e76374b064aa5c71aab33bd9650c9a9d801: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/3e297dd8fcdb50a751c397a505d84e76374b064aa5c71aab33bd9650c9a9d801 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/3e5a57c30a97d3f06a3181f4baf3996053b8572da5f2deee3a636c3bc8dfcc60: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/3e5a57c30a97d3f06a3181f4baf3996053b8572da5f2deee3a636c3bc8dfcc60 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/420b9790375f59a6e8c326391023a0981789c2351817996e0c253bfed708ad82: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/420b9790375f59a6e8c326391023a0981789c2351817996e0c253bfed708ad82 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/43df3c3af62ddd1393269ffcf964f1897063e81da79c971e8af8c1fefa3e3cab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/43df3c3af62ddd1393269ffcf964f1897063e81da79c971e8af8c1fefa3e3cab -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/443f39c99e1c9ca1908b54153c480754054a57777f22a00d377d745d78e9d193: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/443f39c99e1c9ca1908b54153c480754054a57777f22a00d377d745d78e9d193 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/44f3fc1504a14e693fde420da94f77bf4a44e4e741420291491343f7ae4ecc16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/44f3fc1504a14e693fde420da94f77bf4a44e4e741420291491343f7ae4ecc16 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/4528e6beb34f695f4df8ddbb7ac85f76a91229d9ba675fc9e09fe12f4a497937: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/4528e6beb34f695f4df8ddbb7ac85f76a91229d9ba675fc9e09fe12f4a497937 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/4534032d57020d2910641561a9f9da021f0fe52ebdbb148ee776ced87bac9b13: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/4534032d57020d2910641561a9f9da021f0fe52ebdbb148ee776ced87bac9b13 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/47c5e9b339f9e7f1dccad5c9f51f211183795660ec81a6bdb5614031d39ebe3a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/47c5e9b339f9e7f1dccad5c9f51f211183795660ec81a6bdb5614031d39ebe3a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/48ca2b3f63206aa8f774c3cb33958a806a1debf3d9ccf7b09c2d31256498cda6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/48ca2b3f63206aa8f774c3cb33958a806a1debf3d9ccf7b09c2d31256498cda6 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/4ddbb54259df7ee7ecbdf9f8b4a0e8f7756b9846f2e2add8dd0df825296d993e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/4ddbb54259df7ee7ecbdf9f8b4a0e8f7756b9846f2e2add8dd0df825296d993e -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/4e612f3c1dfa468d94bbc3bde202c732b06a9b5f6bc5471c879fa56ec2daa4aa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/4e612f3c1dfa468d94bbc3bde202c732b06a9b5f6bc5471c879fa56ec2daa4aa -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/55860c89ef796d41b06b3c0fe60a3e6f90709c6a0e7063a8b4057dafa57c878a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/55860c89ef796d41b06b3c0fe60a3e6f90709c6a0e7063a8b4057dafa57c878a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/5748e7a24e8d9ecb43de7d1e14519f10d8c669a5a2602fc948bc9a80e6114b63: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/5748e7a24e8d9ecb43de7d1e14519f10d8c669a5a2602fc948bc9a80e6114b63 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/5a13c8e09802e07fd3ceee625307fe48ef29bc66641c4f80ed4593bf8b773f88: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/5a13c8e09802e07fd3ceee625307fe48ef29bc66641c4f80ed4593bf8b773f88 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/5aa30337198b482522a55c90554c93278034ebacc24792509a32aeba466df4e8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/5aa30337198b482522a55c90554c93278034ebacc24792509a32aeba466df4e8 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/5f3ff3c345ade163ba1ba889d60c1995b7fab68ded6ab052814008d990862c23: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/5f3ff3c345ade163ba1ba889d60c1995b7fab68ded6ab052814008d990862c23 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/5f88a17509a8843ab761bc8cbcfe1a511670ae1a4a434f3d483f942738933a3e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/5f88a17509a8843ab761bc8cbcfe1a511670ae1a4a434f3d483f942738933a3e -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/60a288333ea7f01d380f2661d387692063ce2ae73b3e5401b716326967b4ce0c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/60a288333ea7f01d380f2661d387692063ce2ae73b3e5401b716326967b4ce0c -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/63ae750f5fe9469664b6f79cb48c502c3bfc4cb0a950aeba998a72ea6a3d5b2d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/63ae750f5fe9469664b6f79cb48c502c3bfc4cb0a950aeba998a72ea6a3d5b2d -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/67abeaacb21769a9fb521efa7ebdc8d9ff3443ad5892d75dd6d4f7d541713d33: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/67abeaacb21769a9fb521efa7ebdc8d9ff3443ad5892d75dd6d4f7d541713d33 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/6e3b8913d874a18ec3ab9f74d4fab435b7738e1a14d0754fb79229c4bda9f604: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/6e3b8913d874a18ec3ab9f74d4fab435b7738e1a14d0754fb79229c4bda9f604 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/6fe31187ce1a64bffb0b31ee59618a2ebd483812410e9f8ae5a92fb72ef70885: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/6fe31187ce1a64bffb0b31ee59618a2ebd483812410e9f8ae5a92fb72ef70885 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/71d3c74882a100eaa5aaf9f62659d3b26bcbb8f2055f1add504f599f9051f61e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/71d3c74882a100eaa5aaf9f62659d3b26bcbb8f2055f1add504f599f9051f61e -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7232f506e00bee175a3df8d33933fae10c67e501d6cea8e73ce76f4363d0bbea: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7232f506e00bee175a3df8d33933fae10c67e501d6cea8e73ce76f4363d0bbea -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7425039321dcbecb1a1ef28849f277f914a889a54d44c1f2566b6ddd5bc83b4f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7425039321dcbecb1a1ef28849f277f914a889a54d44c1f2566b6ddd5bc83b4f -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7487341c630472c46a534223da1173666aaeae9788b144fa2c723204d55cc0a2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7487341c630472c46a534223da1173666aaeae9788b144fa2c723204d55cc0a2 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/79207f7d09b6145f3dbfcb9e19835f34e56c7927fda22859e960f5f13bc847a0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/79207f7d09b6145f3dbfcb9e19835f34e56c7927fda22859e960f5f13bc847a0 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7a1e1268d329e5f71ebdf74677a6c1a118994d7534d1fb08d631898d67372f5a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7a1e1268d329e5f71ebdf74677a6c1a118994d7534d1fb08d631898d67372f5a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7c954b010232be9461483803e3e553623d4fc382324d8b8ba53ebf83f0457707: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7c954b010232be9461483803e3e553623d4fc382324d8b8ba53ebf83f0457707 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7ce8914993956b04baafaad0668e5c26a87a1c4cf70a6566aa0f199fe3c1dc18: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7ce8914993956b04baafaad0668e5c26a87a1c4cf70a6566aa0f199fe3c1dc18 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/7d230ff71bac867a9820e75328f893972df210ab75cdb67f620b370ee5cddf45: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/7d230ff71bac867a9820e75328f893972df210ab75cdb67f620b370ee5cddf45 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/85a985b9011e356e11a24c2d0a01173ea80ccc584b659947b64ffefddab7fada: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/85a985b9011e356e11a24c2d0a01173ea80ccc584b659947b64ffefddab7fada -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/8b165b8b94a9d120edf139fbd63cb6b161131d5722f201f2f4ba0984b46a3ca5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/8b165b8b94a9d120edf139fbd63cb6b161131d5722f201f2f4ba0984b46a3ca5 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/8f5fd3dd5c0eb40ceb409c0f7d85086319d4177524fad58dc01743434765902a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/8f5fd3dd5c0eb40ceb409c0f7d85086319d4177524fad58dc01743434765902a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9223480b7c4b0d1cb95eb33a7a52dc7494b53a0f8a93fbc1816c6c4f347780b0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9223480b7c4b0d1cb95eb33a7a52dc7494b53a0f8a93fbc1816c6c4f347780b0 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9248ee16c602d45651b0045e9cc4e407fc62ce5688e1c6636f482ea02314c357: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9248ee16c602d45651b0045e9cc4e407fc62ce5688e1c6636f482ea02314c357 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/979b96b7806f61081a48ff556bfbdb3e1c74e04f7d2cf88eab49b0fd89845453: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/979b96b7806f61081a48ff556bfbdb3e1c74e04f7d2cf88eab49b0fd89845453 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/97f2f674b859ff1adb2e9548550f07fa8818d1ee8edae39ca50f516a57a12edb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/97f2f674b859ff1adb2e9548550f07fa8818d1ee8edae39ca50f516a57a12edb -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9984490c02b1604423a8679caf527d5f10667e0a38790f28f32af61efa930eef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9984490c02b1604423a8679caf527d5f10667e0a38790f28f32af61efa930eef -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9a648e49f93b60cf578c87d187c8acb61d3a638bc30568bdcc6be30fd9defd43: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9a648e49f93b60cf578c87d187c8acb61d3a638bc30568bdcc6be30fd9defd43 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9af5c7a8538fb02b0a836b88a40d0b144f11ee98624e3686c0f43684e34e6838: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9af5c7a8538fb02b0a836b88a40d0b144f11ee98624e3686c0f43684e34e6838 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9b24f66bc7c47e677e40f8b07b2fd54985ef27c99670bed582ce904569b95702: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9b24f66bc7c47e677e40f8b07b2fd54985ef27c99670bed582ce904569b95702 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9fc2eee916b1cfb002a487c37e73af29a0fbb29e47bf36839a762bb26fea3ec7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9fc2eee916b1cfb002a487c37e73af29a0fbb29e47bf36839a762bb26fea3ec7 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/9ff0fc476b3d27f5dc9803d38ef10be0d08b5e096630308f0d6f57a6f8ee5d88: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/9ff0fc476b3d27f5dc9803d38ef10be0d08b5e096630308f0d6f57a6f8ee5d88 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/a46866d1875d0c06ec3ead73ecca531ef0dc92a67a233ebc8d1e2fff79f50a07: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/a46866d1875d0c06ec3ead73ecca531ef0dc92a67a233ebc8d1e2fff79f50a07 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/a71bcbf6a6668aa019d38cc3527d5ecf2f4e538dfedddf34ff484e29d6fd26d1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/a71bcbf6a6668aa019d38cc3527d5ecf2f4e538dfedddf34ff484e29d6fd26d1 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ad0d3509e08424d21d87c64a0969b588dc9281ea98fd744acd9b8bd1daf72225: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ad0d3509e08424d21d87c64a0969b588dc9281ea98fd744acd9b8bd1daf72225 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/adaa168d63fe063455c1e0c304c9c9ba6b43e13849235339710d6b5f941e80a1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/adaa168d63fe063455c1e0c304c9c9ba6b43e13849235339710d6b5f941e80a1 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/aee251ccb027a2676ad1261b48d08b52752a41633279ff2e9e474eebf508250f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/aee251ccb027a2676ad1261b48d08b52752a41633279ff2e9e474eebf508250f -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/b5b546cf87a6d23c6f6ee0e44db5b90a4bb23e0558873f159bf09140782989d8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/b5b546cf87a6d23c6f6ee0e44db5b90a4bb23e0558873f159bf09140782989d8 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/b8fffa51391680139ea773ff40a58a1f24e9b1a8c530823d7d12053ec4aabd76: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/b8fffa51391680139ea773ff40a58a1f24e9b1a8c530823d7d12053ec4aabd76 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/b904fd3aa656603b26572deb105290328add76123b4a99ad4e78189e1337ae1b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/b904fd3aa656603b26572deb105290328add76123b4a99ad4e78189e1337ae1b -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/bbda8e26f356aa635f7774ec483a4b493668ca1448948c62f641d176838306d5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/bbda8e26f356aa635f7774ec483a4b493668ca1448948c62f641d176838306d5 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/bc35711cdc43b868c59515211893e7681fef6da4b623392d402fb40736dc1beb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/bc35711cdc43b868c59515211893e7681fef6da4b623392d402fb40736dc1beb -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/bd25bb84dd44c7e09d9e723016c49cc2a868a1bfc007528138a28ea1c0abfda7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/bd25bb84dd44c7e09d9e723016c49cc2a868a1bfc007528138a28ea1c0abfda7 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/c23df1d03e3c1039692ea3d9897e41ceb2add1ebdec0937a64321c536eef71f7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/c23df1d03e3c1039692ea3d9897e41ceb2add1ebdec0937a64321c536eef71f7 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/c2e6cf1692ef3a4bc88af94bb9e6c9011855bbf954c273f45eb3ea97bb491c9a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/c2e6cf1692ef3a4bc88af94bb9e6c9011855bbf954c273f45eb3ea97bb491c9a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/c3b0ea2a8874777b9805018c177382ab3278a019935fa50b3e0d7971c28c40d9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/c3b0ea2a8874777b9805018c177382ab3278a019935fa50b3e0d7971c28c40d9 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/c9dfe97833473610816085c5a009696cd5f659f85fc10ef76dc140851ffcc423: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/c9dfe97833473610816085c5a009696cd5f659f85fc10ef76dc140851ffcc423 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ca19cba772c047e5e1f229e5de18d06d885b50be9136778b4937437f0d70738d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ca19cba772c047e5e1f229e5de18d06d885b50be9136778b4937437f0d70738d -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ca6e1239c11d08940c991f77470859ccb4ec9fa5e8c30de7b40521d620b87a1e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ca6e1239c11d08940c991f77470859ccb4ec9fa5e8c30de7b40521d620b87a1e -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/cb09d2148ae1c8b054cdbafcf3f3e41e75bae978dcfc8886981479d723fc44e9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/cb09d2148ae1c8b054cdbafcf3f3e41e75bae978dcfc8886981479d723fc44e9 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/cd35ff680e23f67fe52b722a88c9537bee642b8a7a8a388cb4952f3bf60e64cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/cd35ff680e23f67fe52b722a88c9537bee642b8a7a8a388cb4952f3bf60e64cc -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/cd6d3880ee87c6b716749cb9a30f8faa658ee49f6ce90f3e34df70560a0477ad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/cd6d3880ee87c6b716749cb9a30f8faa658ee49f6ce90f3e34df70560a0477ad -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/cd7b24cfe10fc4346a91f04b1a0d0e22054f76bf704db8e19d73cb9bf792a89b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/cd7b24cfe10fc4346a91f04b1a0d0e22054f76bf704db8e19d73cb9bf792a89b -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/cea2c4c70f94e90c4c4a6b63f7c212d2465936090c06ba4db92071a3c247ca11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/cea2c4c70f94e90c4c4a6b63f7c212d2465936090c06ba4db92071a3c247ca11 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d26a0d653a01c6bf9403e0bc0fa5ea05ea4dd7b163e8d85287b19ff257a88ea7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d26a0d653a01c6bf9403e0bc0fa5ea05ea4dd7b163e8d85287b19ff257a88ea7 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d3dec3f7485c6c3f8b8949db68bd212ef16a7f1f41047e290d14f9cd6dae91a0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d3dec3f7485c6c3f8b8949db68bd212ef16a7f1f41047e290d14f9cd6dae91a0 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d43f2a0606841580986981ec0bec10473e79c9097bfd8fd81d1a239f146f31d3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d43f2a0606841580986981ec0bec10473e79c9097bfd8fd81d1a239f146f31d3 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d4d5fe38e4bafa733182eb5aaad19a6ff59c8316908b20d3c94cdc29a92964e6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d4d5fe38e4bafa733182eb5aaad19a6ff59c8316908b20d3c94cdc29a92964e6 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d69256403d5d27244080b8b53931aa6bfd4ce95771c748372626414d5c37e105: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d69256403d5d27244080b8b53931aa6bfd4ce95771c748372626414d5c37e105 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/d9b617f62de41c1cb02ff91cef9c3f753d440c75efa489a952fdcd314d27ee1d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/d9b617f62de41c1cb02ff91cef9c3f753d440c75efa489a952fdcd314d27ee1d -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/dc57f64202486572ef99d4ff4970fb339f440867ebedf02eaab75fb555e293cf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/dc57f64202486572ef99d4ff4970fb339f440867ebedf02eaab75fb555e293cf -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e11a6036e2c0bde71f3eabac3f98734af2cdcfe3ebb6e02dcce9b7f4c4bcc99a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e11a6036e2c0bde71f3eabac3f98734af2cdcfe3ebb6e02dcce9b7f4c4bcc99a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e26ce028366bb4ff566972a945b7fd0035f6dba48d886160fdf1974aae8dee65: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e26ce028366bb4ff566972a945b7fd0035f6dba48d886160fdf1974aae8dee65 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e35a4d079adfe4d399f026c711940e4917d5dae3dc2723a034f44d2b53a34a11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e35a4d079adfe4d399f026c711940e4917d5dae3dc2723a034f44d2b53a34a11 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e3666122dbe804ac609c0ae717a9e6aa8bb2842953e4528230a5bcfc3a59c120: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e3666122dbe804ac609c0ae717a9e6aa8bb2842953e4528230a5bcfc3a59c120 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e59961f75a4cfe33bc4ce9290f938c5bc247c440a2e572ab18021c8223c55bc7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e59961f75a4cfe33bc4ce9290f938c5bc247c440a2e572ab18021c8223c55bc7 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e7b11cf0762255ad6741aa3d6e269f8b4bc785089040be666f480464cb13b4df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e7b11cf0762255ad6741aa3d6e269f8b4bc785089040be666f480464cb13b4df -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e89af554621f1ce6262d47a68efea1d8d304ae595a094ebc955bceb6d06ed629: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e89af554621f1ce6262d47a68efea1d8d304ae595a094ebc955bceb6d06ed629 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/e9d399b6dc6b7d18bac97e5556875ab6df561f1ca718f1fc716a929d3c706f14: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/e9d399b6dc6b7d18bac97e5556875ab6df561f1ca718f1fc716a929d3c706f14 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/eb733425f0fc1f0cf7f74e1c1ef87680a96a1aca613180110df26259eb36c433: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/eb733425f0fc1f0cf7f74e1c1ef87680a96a1aca613180110df26259eb36c433 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ec399d3511fa4a30df9b3c51637a357cc1c84d30e3d48bccc9b97564c8a60b73: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ec399d3511fa4a30df9b3c51637a357cc1c84d30e3d48bccc9b97564c8a60b73 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ef73cbf3d98059b13b30db1089ad6af12beea18f895be6f18d42962721d6e3ee: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ef73cbf3d98059b13b30db1089ad6af12beea18f895be6f18d42962721d6e3ee -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/efc0f664cf2ebac4e05e6acac77778fe630b278f167321a46d861ac8ad56fd76: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/efc0f664cf2ebac4e05e6acac77778fe630b278f167321a46d861ac8ad56fd76 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/f139f9c20bcdc6bbe0301c98bdd719b37b4a98fe3b1414b583ddb5dc17f62e3a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/f139f9c20bcdc6bbe0301c98bdd719b37b4a98fe3b1414b583ddb5dc17f62e3a -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/f5318eb5ea6dcdf630a2ab157dbfa122f6de9b6f4e5a3a036c17f32da3030877: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/f5318eb5ea6dcdf630a2ab157dbfa122f6de9b6f4e5a3a036c17f32da3030877 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/f5f4973e9e8fb6fb8834a612a9b8b0419fbae7c0934dda22e61f11556918f1cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/f5f4973e9e8fb6fb8834a612a9b8b0419fbae7c0934dda22e61f11556918f1cc -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/f932da1aefb3b8d9918f46bd936130b0d06332ab062a48f41b206ce696428e03: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/f932da1aefb3b8d9918f46bd936130b0d06332ab062a48f41b206ce696428e03 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/fbfa931f27b0173613b0e04af58d8bba7df12c1cd15c404d95680df6fc1cb89e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/fbfa931f27b0173613b0e04af58d8bba7df12c1cd15c404d95680df6fc1cb89e -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/fc30ab2ea532f953350f0de7ff3c0422328c131f4642d30a4c88bdf43bcd8d98: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/fc30ab2ea532f953350f0de7ff3c0422328c131f4642d30a4c88bdf43bcd8d98 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/fc7e85c3af87f3c0b482cb57fde916a7d8db293427159f3b31bbc23b6b285116: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/fc7e85c3af87f3c0b482cb57fde916a7d8db293427159f3b31bbc23b6b285116 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/fcfcfe84724a9b7c7c8277057b557ab044d24130bd360fe087e9f55bef2cadc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/fcfcfe84724a9b7c7c8277057b557ab044d24130bd360fe087e9f55bef2cadc6 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/h2spec/ff00f50eada19c5354a579ef7f1af5952ecb2df2423022dd5483d8fede26d6e5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/h2spec/ff00f50eada19c5354a579ef7f1af5952ecb2df2423022dd5483d8fede26d6e5 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/nghttp/9c8ed8981065d28ce8a5a04ac6fc7a87ffaf9f9c6ce4323e6e0fefaabb2393cb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/nghttp/9c8ed8981065d28ce8a5a04ac6fc7a87ffaf9f9c6ce4323e6e0fefaabb2393cb -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/nghttp/d53b58a8685030918fda36a704db43cdfec99fc1b9de83c195227161f4bdb911: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/nghttp/d53b58a8685030918fda36a704db43cdfec99fc1b9de83c195227161f4bdb911 -------------------------------------------------------------------------------- /nghttp2/fuzz/corpus/nghttp/f0a8cacb9f31b53d237628084e3946d556086c9991cce7962e9e69a3eed406aa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/fuzz/corpus/nghttp/f0a8cacb9f31b53d237628084e3946d556086c9991cce7962e9e69a3eed406aa -------------------------------------------------------------------------------- /nghttp2/genauthoritychartbl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | def name(i): 5 | if i < 0x21: 6 | return \ 7 | ['NUL ', 'SOH ', 'STX ', 'ETX ', 'EOT ', 'ENQ ', 'ACK ', 'BEL ', 8 | 'BS ', 'HT ', 'LF ', 'VT ', 'FF ', 'CR ', 'SO ', 'SI ', 9 | 'DLE ', 'DC1 ', 'DC2 ', 'DC3 ', 'DC4 ', 'NAK ', 'SYN ', 'ETB ', 10 | 'CAN ', 'EM ', 'SUB ', 'ESC ', 'FS ', 'GS ', 'RS ', 'US ', 11 | 'SPC '][i] 12 | elif i == 0x7f: 13 | return 'DEL ' 14 | 15 | for i in range(256): 16 | if chr(i) in [ 17 | "-", ".", "_", "~", 18 | "!", "$", "&", "'", "(", ")", 19 | "*", "+", ",", ";", "=", 20 | "%", "@", ":", "[", "]"] or\ 21 | ('0' <= chr(i) and chr(i) <= '9') or \ 22 | ('A' <= chr(i) and chr(i) <= 'Z') or \ 23 | ('a' <= chr(i) and chr(i) <= 'z'): 24 | sys.stdout.write('1 /* {} */, '.format(chr(i))) 25 | elif (0x21 <= i and i < 0x7f): 26 | sys.stdout.write('0 /* {} */, '.format(chr(i))) 27 | elif 0x80 <= i: 28 | sys.stdout.write('0 /* {} */, '.format(hex(i))) 29 | else: 30 | sys.stdout.write('0 /* {} */, '.format(name(i))) 31 | if (i + 1)%4 == 0: 32 | sys.stdout.write('\n') 33 | -------------------------------------------------------------------------------- /nghttp2/gendowncasetbl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | def name(i): 5 | if i < 0x20: 6 | return \ 7 | ['NUL ', 'SOH ', 'STX ', 'ETX ', 'EOT ', 'ENQ ', 'ACK ', 'BEL ', 8 | 'BS ', 'HT ', 'LF ', 'VT ', 'FF ', 'CR ', 'SO ', 'SI ', 9 | 'DLE ', 'DC1 ', 'DC2 ', 'DC3 ', 'DC4 ', 'NAK ', 'SYN ', 'ETB ', 10 | 'CAN ', 'EM ', 'SUB ', 'ESC ', 'FS ', 'GS ', 'RS ', 'US '][i] 11 | elif i == 0x7f: 12 | return 'DEL ' 13 | 14 | for i in range(256): 15 | if chr(i) == ' ': 16 | sys.stdout.write('{} /* SPC */, '.format(i)) 17 | elif chr(i) == '\t': 18 | sys.stdout.write('{} /* HT */, '.format(i)) 19 | elif 'A' <= chr(i) and chr(i) <= 'Z': 20 | sys.stdout.write('{} /* {} */, '.format(i - ord('A') + ord('a'), chr(i))) 21 | elif (0x21 <= i and i < 0x7f): 22 | sys.stdout.write('{} /* {} */, '.format(i, chr(i))) 23 | elif 0x80 <= i: 24 | sys.stdout.write('{} /* {} */, '.format(i, hex(i))) 25 | elif 0 == i: 26 | sys.stdout.write('{} /* NUL */, '.format(i)) 27 | else: 28 | sys.stdout.write('{} /* {} */, '.format(i, name(i))) 29 | if (i + 1)%4 == 0: 30 | sys.stdout.write('\n') 31 | -------------------------------------------------------------------------------- /nghttp2/genheaderfunc.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from gentokenlookup import gentokenlookup 4 | 5 | HEADERS = [ 6 | ':authority', 7 | ':method', 8 | ':path', 9 | ':scheme', 10 | ':status', 11 | ':host', # for spdy 12 | 'expect', 13 | 'host', 14 | 'if-modified-since', 15 | "te", 16 | "cookie", 17 | "http2-settings", 18 | "server", 19 | "via", 20 | "forwarded", 21 | "x-forwarded-for", 22 | "x-forwarded-proto", 23 | "alt-svc", 24 | "content-length", 25 | "location", 26 | "trailer", 27 | "link", 28 | "accept-encoding", 29 | "accept-language", 30 | "cache-control", 31 | "user-agent", 32 | "date", 33 | "content-type", 34 | # disallowed h1 headers 35 | 'connection', 36 | 'keep-alive', 37 | 'proxy-connection', 38 | 'transfer-encoding', 39 | 'upgrade' 40 | ] 41 | 42 | if __name__ == '__main__': 43 | gentokenlookup(HEADERS, 'HD') 44 | -------------------------------------------------------------------------------- /nghttp2/genmethodfunc.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import unicode_literals 3 | from io import StringIO 4 | 5 | from gentokenlookup import gentokenlookup 6 | 7 | # copied from http-parser/http_parser.h, and stripped trailing spaces 8 | # and backslashes. 9 | SRC = ''' 10 | XX(0, DELETE, DELETE) 11 | XX(1, GET, GET) 12 | XX(2, HEAD, HEAD) 13 | XX(3, POST, POST) 14 | XX(4, PUT, PUT) 15 | /* pathological */ 16 | XX(5, CONNECT, CONNECT) 17 | XX(6, OPTIONS, OPTIONS) 18 | XX(7, TRACE, TRACE) 19 | /* webdav */ 20 | XX(8, COPY, COPY) 21 | XX(9, LOCK, LOCK) 22 | XX(10, MKCOL, MKCOL) 23 | XX(11, MOVE, MOVE) 24 | XX(12, PROPFIND, PROPFIND) 25 | XX(13, PROPPATCH, PROPPATCH) 26 | XX(14, SEARCH, SEARCH) 27 | XX(15, UNLOCK, UNLOCK) 28 | /* subversion */ 29 | XX(16, REPORT, REPORT) 30 | XX(17, MKACTIVITY, MKACTIVITY) 31 | XX(18, CHECKOUT, CHECKOUT) 32 | XX(19, MERGE, MERGE) 33 | /* upnp */ 34 | XX(20, MSEARCH, M-SEARCH) 35 | XX(21, NOTIFY, NOTIFY) 36 | XX(22, SUBSCRIBE, SUBSCRIBE) 37 | XX(23, UNSUBSCRIBE, UNSUBSCRIBE) 38 | /* RFC-5789 */ 39 | XX(24, PATCH, PATCH) 40 | XX(25, PURGE, PURGE) 41 | /* CalDAV */ 42 | XX(26, MKCALENDAR, MKCALENDAR) 43 | ''' 44 | 45 | if __name__ == '__main__': 46 | methods = [] 47 | for line in StringIO(SRC): 48 | line = line.strip() 49 | if not line.startswith('XX'): 50 | continue 51 | _, m, _ = line.split(',', 2) 52 | methods.append(m.strip()) 53 | gentokenlookup(methods, 'HTTP') 54 | -------------------------------------------------------------------------------- /nghttp2/gennmchartbl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | def name(i): 5 | if i < 0x21: 6 | return \ 7 | ['NUL ', 'SOH ', 'STX ', 'ETX ', 'EOT ', 'ENQ ', 'ACK ', 'BEL ', 8 | 'BS ', 'HT ', 'LF ', 'VT ', 'FF ', 'CR ', 'SO ', 'SI ', 9 | 'DLE ', 'DC1 ', 'DC2 ', 'DC3 ', 'DC4 ', 'NAK ', 'SYN ', 'ETB ', 10 | 'CAN ', 'EM ', 'SUB ', 'ESC ', 'FS ', 'GS ', 'RS ', 'US ', 11 | 'SPC '][i] 12 | elif i == 0x7f: 13 | return 'DEL ' 14 | 15 | for i in range(256): 16 | if chr(i) in ["!" , "#" , "$" , "%" , "&" , "'" , "*", 17 | "+" , "-" , "." , "^" , "_" , "`" , "|" , "~"] or\ 18 | ('0' <= chr(i) and chr(i) <= '9') or \ 19 | ('a' <= chr(i) and chr(i) <= 'z'): 20 | sys.stdout.write('1 /* {} */, '.format(chr(i))) 21 | elif (0x21 <= i and i < 0x7f): 22 | sys.stdout.write('0 /* {} */, '.format(chr(i))) 23 | elif 0x80 <= i: 24 | sys.stdout.write('0 /* {} */, '.format(hex(i))) 25 | else: 26 | sys.stdout.write('0 /* {} */, '.format(name(i))) 27 | if (i + 1)%4 == 0: 28 | sys.stdout.write('\n') 29 | -------------------------------------------------------------------------------- /nghttp2/genvchartbl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | def name(i): 5 | if i < 0x20: 6 | return \ 7 | ['NUL ', 'SOH ', 'STX ', 'ETX ', 'EOT ', 'ENQ ', 'ACK ', 'BEL ', 8 | 'BS ', 'HT ', 'LF ', 'VT ', 'FF ', 'CR ', 'SO ', 'SI ', 9 | 'DLE ', 'DC1 ', 'DC2 ', 'DC3 ', 'DC4 ', 'NAK ', 'SYN ', 'ETB ', 10 | 'CAN ', 'EM ', 'SUB ', 'ESC ', 'FS ', 'GS ', 'RS ', 'US '][i] 11 | elif i == 0x7f: 12 | return 'DEL ' 13 | 14 | for i in range(256): 15 | if chr(i) == ' ': 16 | sys.stdout.write('1 /* SPC */, ') 17 | elif chr(i) == '\t': 18 | sys.stdout.write('1 /* HT */, ') 19 | elif (0x21 <= i and i < 0x7f): 20 | sys.stdout.write('1 /* {} */, '.format(chr(i))) 21 | elif 0x80 <= i: 22 | sys.stdout.write('1 /* {} */, '.format(hex(i))) 23 | elif 0 == i: 24 | sys.stdout.write('1 /* NUL */, ') 25 | else: 26 | sys.stdout.write('0 /* {} */, '.format(name(i))) 27 | if (i + 1)%4 == 0: 28 | sys.stdout.write('\n') 29 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/.gitignore: -------------------------------------------------------------------------------- 1 | # generated files 2 | config.go 3 | setenv 4 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(GO_FILES 2 | nghttpx_http1_test.go 3 | nghttpx_http2_test.go 4 | nghttpx_spdy_test.go 5 | server_tester.go 6 | ) 7 | 8 | # XXX unused 9 | set(EXTRA_DIST 10 | ${GO_FILES} 11 | server.key 12 | server.crt 13 | alt-server.key 14 | alt-server.crt 15 | setenv 16 | req-set-header.rb 17 | resp-set-header.rb 18 | req-return.rb 19 | resp-return.rb 20 | ) 21 | 22 | add_custom_target(itprep 23 | COMMAND go get -d -v golang.org/x/net/http2 24 | COMMAND go get -d -v github.com/tatsuhiro-t/go-nghttp2 25 | COMMAND go get -d -v github.com/tatsuhiro-t/spdy 26 | COMMAND go get -d -v golang.org/x/net/websocket 27 | ) 28 | 29 | # 'go test' requires both config.go and the test files in the same directory. 30 | # For out-of-tree builds, config.go is normally not placed next to the source 31 | # files, so copy the tests to the build directory as a workaround. 32 | set(GO_BUILD_FILES) 33 | if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) 34 | foreach(gofile IN LISTS GO_FILES) 35 | set(outfile "${CMAKE_CURRENT_BINARY_DIR}/${gofile}") 36 | add_custom_command(OUTPUT "${outfile}" 37 | COMMAND ${CMAKE_COMMAND} -E copy 38 | "${CMAKE_CURRENT_SOURCE_DIR}/${gofile}" "${outfile}" 39 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${gofile}" 40 | ) 41 | list(APPEND GO_BUILD_FILES "${outfile}") 42 | endforeach() 43 | endif() 44 | 45 | add_custom_target(it 46 | COMMAND sh setenv go test -v 47 | DEPENDS ${GO_BUILD_FILES} 48 | ) 49 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/alt-server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDhzCCAm+gAwIBAgIJANfuEldiquMNMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV 3 | BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX 4 | aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMMCmFsdC1kb21haW4wHhcNMTUwMTI1MDYy 5 | NTQxWhcNMjUwMTIyMDYyNTQxWjBaMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t 6 | ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD 7 | VQQDDAphbHQtZG9tYWluMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA 8 | 0IwhDOGDipGrJQ9IoRSzPdkU/Ii4aJgGKHlXminym42X0VI3IW61RLvOHRlHVmVH 9 | JQjFuDo2x+y81t9NlDg3HGUbSpzOzpm6StiutB7c4hreT5G4r0YKya1ugiemN0+p 10 | qjIPJWm2jVnf448eZvUKRKEQ9W0MLZjiNjVGKrKlwo7fIlXg4N3+YixLYffAT1NV 11 | d1T6V5jzlbruj15gK2nGjMQ9D1h1t9vTbTxY+mtk72aX0Y64IE6pPBWLFSSH8ozU 12 | idDoL3AZwz2Jker+ALKK8CM4uho/RPpyW1C06HH+HLdH2MqEjDOROde/Nzxm668O 13 | gK/JWGIEyUqYiUXx0yhFxwIDAQABo1AwTjAdBgNVHQ4EFgQU/Y0GDN2uPjbyePcu 14 | 95ZvYEK/gHIwHwYDVR0jBBgwFoAU/Y0GDN2uPjbyePcu95ZvYEK/gHIwDAYDVR0T 15 | BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAodD6LVCzL3wfsZ6TxTzf9TfgIdbj 16 | ilL3SEMT/xnfTXT3SLYScTRqQIAI29Y7dOLMq89p4hY2wmeUEhBUAz+y9G2JVr8o 17 | 6EbxXrQpWgNJogELqoNnMdrDxB5RsmDDKEJ/rLjDfSkjWbK7B2PZsqVTDgjekCFw 18 | u6FqTIjn/O1O/L5tjwxwxjHmQod/maFCvXoDOVBuwdHnkp298tqlvsHfHO8m++Wj 19 | +XYB8plMIjpeTh9v4w9Jc4QZ59lK/3Tt4qaENeQrMEubKSY/Zen7L2bzhk+cChWT 20 | GSGz9uNXieoZaH79D0wnyZaSZ5Ds4ActMevnGg3iYXuzuFqx8Pungn74Vg== 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/config.go.in: -------------------------------------------------------------------------------- 1 | package nghttp2 2 | 3 | const ( 4 | buildDir = "@top_builddir@" 5 | sourceDir = "@top_srcdir@" 6 | ) 7 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/req-return.rb: -------------------------------------------------------------------------------- 1 | class App 2 | def on_req(env) 3 | resp = env.resp 4 | 5 | resp.clear_headers 6 | resp.status = 404 7 | resp.add_header "from", "mruby" 8 | resp.return "Hello World from req" 9 | end 10 | end 11 | 12 | App.new 13 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/req-set-header.rb: -------------------------------------------------------------------------------- 1 | class App 2 | def on_req(env) 3 | env.req.set_header "User-Agent", "mruby" 4 | end 5 | end 6 | 7 | App.new 8 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/resp-return.rb: -------------------------------------------------------------------------------- 1 | class App 2 | def on_resp(env) 3 | resp = env.resp 4 | 5 | resp.clear_headers 6 | resp.status = 404 7 | resp.add_header "from", "mruby" 8 | resp.return "Hello World from resp" 9 | end 10 | end 11 | 12 | App.new 13 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/resp-set-header.rb: -------------------------------------------------------------------------------- 1 | class App 2 | def on_resp(env) 3 | env.resp.set_header "Alpha", "bravo" 4 | end 5 | end 6 | 7 | App.new 8 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDhTCCAm2gAwIBAgIJAOvIx8xIxgyOMA0GCSqGSIb3DQEBCwUAMFkxCzAJBgNV 3 | BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX 4 | aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMMCTEyNy4wLjAuMTAeFw0xNTAxMjMxMjI0 5 | MjdaFw0yNTAxMjAxMjI0MjdaMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21l 6 | LVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNV 7 | BAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMuI 8 | QZRI/iBaxPTjTWGemt8tCEfzZWxuIW3hY/gIhwJDfH2SbourBh1s9vqcqhBq5vmo 9 | kdfVQXAnNLjIG1uhWmcHuNnKrE5hU82N6i9RsmuM5TQRvhsamHri4G+EXJMu9GqF 10 | Mso8g7MWpRSGKf+8gfjAVNwfCHFiu8oBcMmy3l54MFHgRLSveAMhiPB0e3Xlnpr5 11 | 2bS/oGTx5ynwPgBpEn2FrpT4Z/aLCLzJ/ysgNH8BXEh7n/v7xM3vd5grqB039rd5 12 | JoxlWvp+4XpzKp5upaqmOcVUq4pDSFUQ3w6C+v33Z3OK6Qaon7GMxLv3Us3b7PZ3 13 | 1CLoWJR2o3OSnUfO/gUCAwEAAaNQME4wHQYDVR0OBBYEFLc5JWPUUVx4GJesogMV 14 | w2Rz0L3yMB8GA1UdIwQYMBaAFLc5JWPUUVx4GJesogMVw2Rz0L3yMAwGA1UdEwQF 15 | MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAAP/cJWpM+GEjmVYHFacKTdbXBMox2Xn 16 | QY2NLm00WPOGvKnO7czMFfX/pEmiq71kD45rLLfbaJP205QpxqiAIvhFhuq50Co7 17 | sTDtwcDTPLX9H7Ugjt4sTMPiwC14uVXFfoT/J46zMjXwP00qKyfszc2tkIgHfrTl 18 | h4M1hkdfmMximir/Ii7TdYYJ3oGS8tdcYb6D4DZwAljKmxF6iUOwFCUgpTmqDBT5 19 | irXY8D27DzuNN5Pg07rwAlwXLCzrJE10UtO4MmRVXwpzmoaRQD4/tna6bZzdetvs 20 | gPdGP6W1o0q85gullieMJWeKyQA/wasoE7fypn4pHAdTZm/vH+v7GHg= 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /nghttp2/integration-tests/setenv.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | libdir="@abs_top_builddir@/lib" 4 | if [ -d "$libdir/.libs" ]; then 5 | libdir="$libdir/.libs" 6 | fi 7 | 8 | export CGO_CFLAGS="-I@abs_top_srcdir@/lib/includes -I@abs_top_builddir@/lib/includes" 9 | export CGO_LDFLAGS="-L$libdir" 10 | export LD_LIBRARY_PATH="$libdir" 11 | export GODEBUG=cgocheck=0 12 | "$@" 13 | -------------------------------------------------------------------------------- /nghttp2/lib/.gitignore: -------------------------------------------------------------------------------- 1 | # generated files 2 | includes/nghttp2/nghttp2ver.h 3 | libnghttp2.pc 4 | -------------------------------------------------------------------------------- /nghttp2/lib/includes/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | install(FILES 2 | nghttp2/nghttp2.h 3 | "${CMAKE_CURRENT_BINARY_DIR}/nghttp2/nghttp2ver.h" 4 | DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nghttp2") 5 | -------------------------------------------------------------------------------- /nghttp2/lib/includes/Makefile.am: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | EXTRA_DIST = CMakeLists.txt 25 | 26 | nobase_include_HEADERS = nghttp2/nghttp2.h nghttp2/nghttp2ver.h 27 | -------------------------------------------------------------------------------- /nghttp2/lib/includes/nghttp2/nghttp2.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/includes/nghttp2/nghttp2.h -------------------------------------------------------------------------------- /nghttp2/lib/libnghttp2.pc.in: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2012, 2013 Tatsuhiro Tsujikawa 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 | prefix=@prefix@ 24 | exec_prefix=@exec_prefix@ 25 | libdir=@libdir@ 26 | includedir=@includedir@ 27 | 28 | Name: libnghttp2 29 | Description: HTTP/2 C library 30 | URL: https://github.com/tatsuhiro-t/nghttp2 31 | Version: @VERSION@ 32 | Libs: -L${libdir} -lnghttp2 33 | Cflags: -I${includedir} 34 | -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_callbacks.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_callbacks.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_callbacks.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_callbacks.h -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_frame.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_frame.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_map.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_map.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_npn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_NPN_H 26 | #define NGHTTP2_NPN_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | #include 33 | 34 | #endif /* NGHTTP2_NPN_H */ 35 | -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_outbound_item.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_outbound_item.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_outbound_item.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_outbound_item.h -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_priority_spec.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_priority_spec.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_session.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_session.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_session.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_session.h -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_stream.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_stream.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_stream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_stream.h -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_submit.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/lib/nghttp2_submit.c -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_submit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_SUBMIT_H 26 | #define NGHTTP2_SUBMIT_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | #include 33 | 34 | #endif /* NGHTTP2_SUBMIT_H */ 35 | -------------------------------------------------------------------------------- /nghttp2/lib/nghttp2_version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012, 2013 Tatsuhiro Tsujikawa 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 | #ifdef HAVE_CONFIG_H 26 | #include 27 | #endif /* HAVE_CONFIG_H */ 28 | 29 | #include 30 | 31 | static nghttp2_info version = {NGHTTP2_VERSION_AGE, NGHTTP2_VERSION_NUM, 32 | NGHTTP2_VERSION, NGHTTP2_PROTO_VERSION_ID}; 33 | 34 | nghttp2_info *nghttp2_version(int least_version) { 35 | if (least_version > NGHTTP2_VERSION_NUM) 36 | return NULL; 37 | return &version; 38 | } 39 | -------------------------------------------------------------------------------- /nghttp2/lib/version.rc.in: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | VS_VERSION_INFO VERSIONINFO 4 | 5 | FILEVERSION @PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@, 0 6 | PRODUCTVERSION @PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@, 0 7 | FILEFLAGSMASK 0x3fL 8 | FILEOS 0x40004L 9 | FILETYPE 0x2L 10 | FILESUBTYPE 0x0L 11 | #ifdef _DEBUG 12 | #define VER_STR "@PROJECT_VERSION@.0 (MSVC debug)" 13 | #define DBG "d" 14 | FILEFLAGS 0x1L 15 | #else 16 | #define VER_STR "@PROJECT_VERSION@.0 (MSVC release)" 17 | #define DBG "" 18 | FILEFLAGS 0x0L 19 | #endif 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904b0" 24 | BEGIN 25 | VALUE "CompanyName", "https://nghttp2.org/" 26 | VALUE "FileDescription", "nghttp2; HTTP/2 C library" 27 | VALUE "FileVersion", VER_STR 28 | VALUE "InternalName", "nghttp2" DBG 29 | VALUE "LegalCopyright", "The MIT License" 30 | VALUE "LegalTrademarks", "" 31 | VALUE "OriginalFilename", "nghttp2" DBG ".dll" 32 | VALUE "ProductName", "NGHTTP2." 33 | VALUE "ProductVersion", VER_STR 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x409, 1200 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/Makefile.am: -------------------------------------------------------------------------------- 1 | AUTOMAKE_OPTIONS = foreign 2 | 3 | VERSION_INFO = 4:0:0 4 | 5 | EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \ 6 | ev_vars.h ev_wrap.h \ 7 | ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \ 8 | ev.3 ev.pod Symbols.ev Symbols.event 9 | 10 | man_MANS = ev.3 11 | 12 | include_HEADERS = ev.h ev++.h event.h 13 | 14 | lib_LTLIBRARIES = libev.la 15 | 16 | libev_la_SOURCES = ev.c event.c 17 | libev_la_LDFLAGS = -version-info $(VERSION_INFO) 18 | 19 | ev.3: ev.pod 20 | pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@ 21 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/Symbols.ev: -------------------------------------------------------------------------------- 1 | ev_async_send 2 | ev_async_start 3 | ev_async_stop 4 | ev_backend 5 | ev_break 6 | ev_check_start 7 | ev_check_stop 8 | ev_child_start 9 | ev_child_stop 10 | ev_cleanup_start 11 | ev_cleanup_stop 12 | ev_clear_pending 13 | ev_default_loop 14 | ev_default_loop_ptr 15 | ev_depth 16 | ev_embed_start 17 | ev_embed_stop 18 | ev_embed_sweep 19 | ev_embeddable_backends 20 | ev_feed_event 21 | ev_feed_fd_event 22 | ev_feed_signal 23 | ev_feed_signal_event 24 | ev_fork_start 25 | ev_fork_stop 26 | ev_idle_start 27 | ev_idle_stop 28 | ev_invoke 29 | ev_invoke_pending 30 | ev_io_start 31 | ev_io_stop 32 | ev_iteration 33 | ev_loop_destroy 34 | ev_loop_fork 35 | ev_loop_new 36 | ev_now 37 | ev_now_update 38 | ev_once 39 | ev_pending_count 40 | ev_periodic_again 41 | ev_periodic_start 42 | ev_periodic_stop 43 | ev_prepare_start 44 | ev_prepare_stop 45 | ev_recommended_backends 46 | ev_ref 47 | ev_resume 48 | ev_run 49 | ev_set_allocator 50 | ev_set_invoke_pending_cb 51 | ev_set_io_collect_interval 52 | ev_set_loop_release_cb 53 | ev_set_syserr_cb 54 | ev_set_timeout_collect_interval 55 | ev_set_userdata 56 | ev_signal_start 57 | ev_signal_stop 58 | ev_sleep 59 | ev_stat_start 60 | ev_stat_stat 61 | ev_stat_stop 62 | ev_supported_backends 63 | ev_suspend 64 | ev_time 65 | ev_timer_again 66 | ev_timer_remaining 67 | ev_timer_start 68 | ev_timer_stop 69 | ev_unref 70 | ev_userdata 71 | ev_verify 72 | ev_version_major 73 | ev_version_minor 74 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/Symbols.event: -------------------------------------------------------------------------------- 1 | event_active 2 | event_add 3 | event_base_dispatch 4 | event_base_free 5 | event_base_get_method 6 | event_base_loop 7 | event_base_loopexit 8 | event_base_new 9 | event_base_once 10 | event_base_priority_init 11 | event_base_set 12 | event_del 13 | event_dispatch 14 | event_get_callback 15 | event_get_method 16 | event_get_version 17 | event_init 18 | event_loop 19 | event_loopexit 20 | event_once 21 | event_pending 22 | event_priority_init 23 | event_priority_set 24 | event_set 25 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | autoreconf --install --symlink --force 4 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/configure.ac: -------------------------------------------------------------------------------- 1 | AC_INIT 2 | 3 | orig_CFLAGS="$CFLAGS" 4 | 5 | AC_CONFIG_SRCDIR([ev_epoll.c]) 6 | 7 | AM_INIT_AUTOMAKE(libev,4.15) dnl also update ev.h! 8 | AC_CONFIG_HEADERS([config.h]) 9 | AM_MAINTAINER_MODE 10 | 11 | AC_PROG_CC 12 | 13 | dnl Supply default CFLAGS, if not specified 14 | if test -z "$orig_CFLAGS"; then 15 | if test x$GCC = xyes; then 16 | CFLAGS="-g -O3" 17 | fi 18 | fi 19 | 20 | AC_PROG_INSTALL 21 | AC_PROG_LIBTOOL 22 | 23 | m4_include([libev.m4]) 24 | 25 | AC_CONFIG_FILES([Makefile]) 26 | AC_OUTPUT 27 | -------------------------------------------------------------------------------- /nghttp2/libev-4.15/ev.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/libev-4.15/ev.c -------------------------------------------------------------------------------- /nghttp2/makebashcompletion: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | BCPATH=doc/bash_completion 4 | 5 | for prog in nghttp nghttpd nghttpx h2load; do 6 | $BCPATH/make_bash_completion.py src/$prog > $BCPATH/$prog 7 | done 8 | -------------------------------------------------------------------------------- /nghttp2/makemanpages: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | for prog in nghttp nghttpd nghttpx h2load; do 4 | src/$prog -h | ./help2rst.py -i doc/$prog.h2r > doc/$prog.1.rst 5 | done 6 | 7 | cd doc 8 | make man 9 | 10 | for prog in nghttp nghttpd nghttpx h2load; do 11 | cp manual/man/$prog.1 $prog.1 12 | done 13 | -------------------------------------------------------------------------------- /nghttp2/makerelease.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | TAG=$1 4 | PREV_TAG=$2 5 | 6 | git checkout refs/tags/$TAG 7 | git log --pretty=fuller --date=short refs/tags/$PREV_TAG..HEAD > ChangeLog 8 | 9 | git submodule update --init 10 | 11 | autoreconf -i 12 | ./configure --with-mruby && \ 13 | make dist-bzip2 && make dist-gzip && make dist-xz || echo "error" 14 | make distclean 15 | -------------------------------------------------------------------------------- /nghttp2/mkstatichdtbl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # This scripts reads static table entries [1] and generates 5 | # nghttp2_hd_static_entry table. This table is used in 6 | # lib/nghttp2_hd.c. 7 | # 8 | # [1] http://http2.github.io/http2-spec/compression.html 9 | 10 | from __future__ import unicode_literals 11 | import re, sys 12 | 13 | def hd_map_hash(name): 14 | h = 2166136261 15 | 16 | # FNV hash variant: http://isthe.com/chongo/tech/comp/fnv/ 17 | for c in name: 18 | h ^= ord(c) 19 | h *= 16777619 20 | h &= 0xffffffff 21 | 22 | return h 23 | 24 | entries = [] 25 | for line in sys.stdin: 26 | m = re.match(r'(\d+)\s+(\S+)\s+(\S.*)?', line) 27 | val = m.group(3).strip() if m.group(3) else '' 28 | entries.append((int(m.group(1)), m.group(2), val)) 29 | 30 | print 'static nghttp2_hd_entry static_table[] = {' 31 | idx = 0 32 | for i, ent in enumerate(entries): 33 | if entries[idx][1] != ent[1]: 34 | idx = i 35 | print 'MAKE_STATIC_ENT("{}", "{}", {}, {}u),'\ 36 | .format(ent[1], ent[2], entries[idx][0] - 1, hd_map_hash(ent[1])) 37 | print '};' 38 | -------------------------------------------------------------------------------- /nghttp2/nghttpx.conf.sample: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for nghttpx. 3 | # 4 | # * Line staring '#' is treated as comment. 5 | # 6 | # * The option name in the configuration file is the long command-line 7 | # option name with leading '--' stripped (e.g., frontend). Put '=' 8 | # between option name and value. Don't put extra leading or trailing 9 | # spaces. 10 | # 11 | # * The options which do not take argument in the command-line *take* 12 | # argument in the configuration file. Specify 'yes' as argument 13 | # (e.g., http2-proxy=yes). If other string is given, it disables the 14 | # option. 15 | # 16 | # * To specify private key and certificate file, use private-key-file 17 | # and certificate-file. See the examples below. 18 | # 19 | # * conf option cannot be used in the configuration file. It will be 20 | # ignored. 21 | # 22 | # Examples: 23 | # 24 | # frontend=0.0.0.0,3000 25 | # backend=127.0.0.1,80 26 | # private-key-file=/path/to/server.key 27 | # certificate-file=/path/to/server.crt 28 | # http2-proxy=no 29 | # workers=1 30 | -------------------------------------------------------------------------------- /nghttp2/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | 9 | CLANGFORMATDIFF=`git config --get clangformatdiff.binary` 10 | 11 | if [ -z "$CLANGFORMATDIFF" ]; then 12 | CLANGFORMATDIFF=clang-format-diff.py 13 | fi 14 | 15 | errors=`git diff-index --cached --diff-filter=ACMR -p HEAD lib src examples tests | $CLANGFORMATDIFF -p1` 16 | 17 | if [ -n "$errors" ]; then 18 | echo "$errors" 19 | echo "--" 20 | echo "[ERROR] We have detected the difference between the code to commit" 21 | echo "and clang-format style rules. Please fix this problem in either:" 22 | echo "1) Apply patch above." 23 | echo "2) Use clang-format to format lines." 24 | echo "3) Reformat these lines manually." 25 | echo "Aborting commit." 26 | exit 1 27 | fi 28 | -------------------------------------------------------------------------------- /nghttp2/proxy.pac.sample: -------------------------------------------------------------------------------- 1 | function FindProxyForURL(url, host) { 2 | // For SPDY proxy 3 | return "HTTPS localhost:3000"; 4 | // For conventional HTTP proxy 5 | // return "PROXY localhost:3000"; 6 | } 7 | -------------------------------------------------------------------------------- /nghttp2/python/.gitignore: -------------------------------------------------------------------------------- 1 | # generated files 2 | MANIFEST 3 | dist/ 4 | setup.py 5 | -------------------------------------------------------------------------------- /nghttp2/python/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # EXTRA_DIST = cnghttp2.pxd nghttp2.pyx 2 | 3 | if(ENABLE_PYTHON_BINDINGS) 4 | add_custom_target(python ALL 5 | COMMAND "${PYTHON_EXECUTABLE}" setup.py build 6 | VERBATIM 7 | DEPENDS nghttp2.c nghttp2 8 | ) 9 | 10 | configure_file(install-python.cmake.in install-python.cmake ESCAPE_QUOTES @ONLY) 11 | install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install-python.cmake") 12 | 13 | add_custom_command(OUTPUT nghttp2.c 14 | COMMAND "${CYTHON_EXECUTABLE}" -o nghttp2.c 15 | "${CMAKE_CURRENT_SOURCE_DIR}/nghttp2.pyx" 16 | VERBATIM 17 | DEPENDS nghttp2.pyx 18 | ) 19 | 20 | # Instead of calling "setup.py clean --all", this should do... 21 | set_directory_properties(PROPERTIES 22 | ADDITIONAL_MAKE_CLEAN_FILES "build;python_nghttp2.egg-info" 23 | ) 24 | 25 | ## This works also, except that the installation target is missing... 26 | # include(UseCython) 27 | # cython_add_module(python_nghttp2 nghttp2.pyx) 28 | # set_target_properties(python_nghttp2 PROPERTIES 29 | # OUTPUT_NAME nghttp2 30 | # ) 31 | # target_include_directories(python_nghttp2 PRIVATE 32 | # "${CMAKE_SOURCE_DIR}/lib" 33 | # "${CMAKE_SOURCE_DIR}/lib/includes" 34 | # "${CMAKE_BINARY_DIR}/lib/includes" 35 | # ) 36 | # target_link_libraries(python_nghttp2 37 | # nghttp2 38 | # ) 39 | endif() 40 | -------------------------------------------------------------------------------- /nghttp2/python/install-python.cmake.in: -------------------------------------------------------------------------------- 1 | get_filename_component(rootdir "$ENV{DESTDIR}" ABSOLUTE) 2 | if(rootdir STREQUAL "") 3 | set(rootdir /) 4 | endif() 5 | execute_process( 6 | COMMAND "@PYTHON_EXECUTABLE@" setup.py install 7 | --skip-build 8 | --root=${rootdir} --prefix=${CMAKE_INSTALL_PREFIX} 9 | WORKING_DIRECTORY "@CMAKE_CURRENT_BINARY_DIR@" 10 | ) 11 | -------------------------------------------------------------------------------- /nghttp2/releasechk: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | autoreconf -i 4 | git submodule update --init 5 | ./configure --with-mruby --with-neverbleed --enable-asio-lib 6 | make -j8 distcheck DISTCHECK_CONFIGURE_FLAGS="--with-mruby --with-neverbleed --enable-asio-lib --enable-werror" 7 | -------------------------------------------------------------------------------- /nghttp2/script/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # EXTRA_DIST = README.rst 2 | install( 3 | PROGRAMS fetch-ocsp-response 4 | DESTINATION "${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}" 5 | ) 6 | -------------------------------------------------------------------------------- /nghttp2/script/Makefile.am: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | EXTRA_DIST = README.rst CMakeLists.txt 25 | dist_pkgdata_SCRIPTS = fetch-ocsp-response 26 | -------------------------------------------------------------------------------- /nghttp2/script/README.rst: -------------------------------------------------------------------------------- 1 | fetch-ocsp-response is a Python script which performs OCSP query and 2 | get response. It uses openssl command under the hood. nghttpx uses 3 | it to enable OCSP stapling feature. 4 | 5 | fetch-ocsp-response is a translation from original fetch-ocsp-response 6 | written in Perl and which has been developed as part of h2o project 7 | (https://github.com/h2o/h2o). 8 | 9 | fetch-ocsp-response is usually installed under $(pkgdatadir), which is 10 | $(prefix)/share/nghttp2. 11 | -------------------------------------------------------------------------------- /nghttp2/src/.gitignore: -------------------------------------------------------------------------------- 1 | # generated files 2 | libnghttp2_asio.pc 3 | 4 | # programs 5 | deflatehd 6 | h2load 7 | inflatehd 8 | nghttp 9 | nghttpd 10 | nghttpx 11 | 12 | # build 13 | libnghttpx.a 14 | 15 | # tests 16 | nghttpx-unittest 17 | -------------------------------------------------------------------------------- /nghttp2/src/app_helper.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/app_helper.cc -------------------------------------------------------------------------------- /nghttp2/src/asio_client_tls_context.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef ASIO_CLIENT_TLS_CONTEXT_H 26 | #define ASIO_CLIENT_TLS_CONTEXT_H 27 | 28 | #include "nghttp2_config.h" 29 | 30 | #include 31 | 32 | #endif // ASIO_CLIENT_TLS_CONTEXT_H 33 | -------------------------------------------------------------------------------- /nghttp2/src/asio_server_request_handler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef ASIO_SERVER_REQUEST_HANDLER_H 26 | #define ASIO_SERVER_REQUEST_HANDLER_H 27 | 28 | #include "nghttp2_config.h" 29 | 30 | #include 31 | 32 | #endif // ASIO_SERVER_REQUEST_HANDLER_H 33 | -------------------------------------------------------------------------------- /nghttp2/src/asio_server_tls_context.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef ASIO_SERVER_TLS_CONTEXT_H 26 | #define ASIO_SERVER_TLS_CONTEXT_H 27 | 28 | #include "nghttp2_config.h" 29 | 30 | #include 31 | 32 | #endif // ASIO_SERVER_TLS_CONTEXT_H 33 | -------------------------------------------------------------------------------- /nghttp2/src/base64_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef BASE64_TEST_H 26 | #define BASE64_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace nghttp2 { 33 | 34 | void test_base64_encode(void); 35 | void test_base64_decode(void); 36 | 37 | } // namespace nghttp2 38 | 39 | #endif // BASE64_TEST_H 40 | -------------------------------------------------------------------------------- /nghttp2/src/buffer_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef BUFFER_TEST_H 26 | #define BUFFER_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace nghttp2 { 33 | 34 | void test_buffer_write(void); 35 | 36 | } // namespace nghttp2 37 | 38 | #endif // BUFFER_TEST_H 39 | -------------------------------------------------------------------------------- /nghttp2/src/c++11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/c++11 -------------------------------------------------------------------------------- /nghttp2/src/c++11.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/c++11.c -------------------------------------------------------------------------------- /nghttp2/src/ca-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "signing": { 3 | "default": { 4 | "expiry": "87600h" 5 | }, 6 | "profiles": { 7 | "server": { 8 | "expiry": "87600h", 9 | "usages": [ 10 | "signing", 11 | "key encipherment", 12 | "server auth" 13 | ] 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /nghttp2/src/ca.nghttp2.org-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEA1kVkF8QSUwW/HV9EFRPSMoiOVmYwB8vqKDtT0d6MFiKAM8/Y 3 | JFUq2uKlUydgT4IPE7PATvVcIj3GtL9XzPhscqYO/S0Y7scyTE2VAPmtz+StPWf2 4 | wZ1IQR09HrnDTc44KvYGZpefBZkD9UjbmJ9a1ZmJjJiMr3hTnKE/sxZ2+dMsnMZX 5 | N822cfaHyTN+T0+Tyw5vBBboCDsZzxmf+9FFIDJNs3NL34cR8EZRhpfaegapH8bt 6 | OJ+D+RZ2kg7E/YYkGcS6NodvTjSUFCFHpWjHCfTFhn/owBIAooCdWorh6dc8Q72l 7 | AodwNLXS8uuPgPqM5s4Cz57m7Zgs4OilNmIdawIDAQABAoIBAQCwqLtygLye6KD+ 8 | RXorapEmCsJX5553/x6Klwdvg+25ni5XCWjp47IWj0DBQzi7tL5bfxrxvod8z7QR 9 | d6SbIMLA77px8Ima7G7CzEAqcrBkM+TFOP8P+G4HCWVH/N5SOtDCUt9KHH4Grna9 10 | 95jdx5yreRAX8/oh/bHp9GRBcicbpwYMVWOnjTE2seEUYQOpdpYdP4bOPUvAju0l 11 | mwmy2/dDGmbibktN3sdHEhDodKu+Znv7nFZo0jzhlyoXse653WcvaQeZZYuojvSe 12 | Sr92DvPp7UaYrb4KvT7ujXiPavSV2m/4EmGtyqevUf2dZ6sfMXZjmXsjWz9txhWp 13 | 4BgbHyHRAoGBAPqyuNj2CDD3FE7N3Hxyba8d+ZtsVUNawjq2gwOvT9NLsMstOGyH 14 | OCc1v4W6Sq4w1wo4nIJyY8kNZwtReaTHOPZlDgBhVvk/x8eLBu+QTMRyocRt1LoD 15 | 8HyKxWSAnYTtCh/GUEQ37amIqvOJ5GNL+25WDzevLa5kMYWG743uxEupAoGBANrN 16 | c/fVxepvP0GISlLpL3aZCFGAjMrq3xUYcf/w4wPoMq6AdpIPeRVBmJ1/Uqw1FkV8 17 | NRKJNPE2YcMuv8iMeQlacoPd34KT9ob80EYVlMwAkeC0NK+FfiM/UteR0wB49gmi 18 | ugX9YlJytOP9aUgPvEGT6l+XtgGC44W1TQWe62zzAoGBAKZenNU+0UjNb6isbToZ 19 | Jjkkh1Vhm2PLg0I7hM6ZNTxf6r+rDtrXEajTvnocmxrmRo796r+W8immv09/jl6P 20 | 53l8rsIJ1xIqBYai+MNa29cyy6/zw0x++MVtwnlj8SUZubJEhVgAVbRAglKEnBBZ 21 | iE48xnSJyKMG0uZuGePzJEmhAoGBAIOHJcNBumum3DuklikpC+MbMyjrQbdpYRjp 22 | TP4x7AWZO34ysxQyQPNKL1feBfCHKRA0DiNKX4zwx+vw2lDQQKIiwNwMMCPqljOn 23 | HfxDVOMdJJQTP+iTMrQ1iLMVceXC0QQR0glvu/8b/SlgWD19WAmDxUwZgst9xw/F 24 | YLuUQKmJAoGAREeTugd4hc0U/YV/BQQjSCLhl11EtVry/oQMHj8KZpIJhP7tj8lw 25 | hSE0+z04oMhiTeq55PYKQkTo5l6V4PW0zfpEwlKEEm0erab1G9Ddh7us47XFcKLl 26 | Rmk192EVZ0lQuzftsYv7dzRLiAR7yDFXwD1ELIK/uPkwBtu7wtHlq+M= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /nghttp2/src/ca.nghttp2.org.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICwjCCAaoCAQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx 3 | ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMOY2Eu 4 | bmdodHRwMi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWRWQX 5 | xBJTBb8dX0QVE9IyiI5WZjAHy+ooO1PR3owWIoAzz9gkVSra4qVTJ2BPgg8Ts8BO 6 | 9VwiPca0v1fM+Gxypg79LRjuxzJMTZUA+a3P5K09Z/bBnUhBHT0eucNNzjgq9gZm 7 | l58FmQP1SNuYn1rVmYmMmIyveFOcoT+zFnb50yycxlc3zbZx9ofJM35PT5PLDm8E 8 | FugIOxnPGZ/70UUgMk2zc0vfhxHwRlGGl9p6Bqkfxu04n4P5FnaSDsT9hiQZxLo2 9 | h29ONJQUIUelaMcJ9MWGf+jAEgCigJ1aiuHp1zxDvaUCh3A0tdLy64+A+ozmzgLP 10 | nubtmCzg6KU2Yh1rAgMBAAGgHzAdBgkqhkiG9w0BCQ4xEDAOMAwGA1UdEwQFMAMB 11 | Af8wDQYJKoZIhvcNAQELBQADggEBACI5v8GbOXKv38h9/tuGEwJ9uxpYEljgGt8h 12 | QL5lwfEifh/7A8b39b9JEzWk5hnMRCOb8J6Jc3/6nmVgtKkQ+Mceupqpwsp1gT/v 13 | uUoAkJE03Iuja9zLhHmy74oZ7LWOQrZ1T7Z0eGQ+5u+LBZiPKnKxmkLCQoUPTbc4 14 | NQ9BbKhr8OaoJ4DDvJnszcL7to6kih7SkdoNZsq4zB0/ai/cPhvoVgkYfbLH2++D 15 | Tcs7TqU2L7gKzqXUtHeAKM2y81ewL7QTrcYzgiW86s3NmquxZG5pq0mjD+P4BYLc 16 | MOdnCxKbBuE/1R29pa6+JKgc46jOa2yRgv5+8rXkkpu53Ke3FGc= 17 | -----END CERTIFICATE REQUEST----- 18 | -------------------------------------------------------------------------------- /nghttp2/src/ca.nghttp2.org.csr.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "ca.nghttp2.org", 3 | "key": { 4 | "algo": "rsa", 5 | "size": 2048 6 | }, 7 | "ca": { 8 | "expiry": "87600h" 9 | }, 10 | "names": [ 11 | { 12 | "C": "AU", 13 | "ST": "Some-State", 14 | "O": "Internet Widgits Pty Ltd" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /nghttp2/src/ca.nghttp2.org.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDrTCCApWgAwIBAgIUe4dvx8haIjsT3ZpNCMrl62Xk6E0wDQYJKoZIhvcNAQEL 3 | BQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoT 4 | GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMOY2EubmdodHRwMi5v 5 | cmcwHhcNMTYwNjI1MDkzMzAwWhcNMjYwNjIzMDkzMzAwWjBeMQswCQYDVQQGEwJB 6 | VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0 7 | cyBQdHkgTHRkMRcwFQYDVQQDEw5jYS5uZ2h0dHAyLm9yZzCCASIwDQYJKoZIhvcN 8 | AQEBBQADggEPADCCAQoCggEBANZFZBfEElMFvx1fRBUT0jKIjlZmMAfL6ig7U9He 9 | jBYigDPP2CRVKtripVMnYE+CDxOzwE71XCI9xrS/V8z4bHKmDv0tGO7HMkxNlQD5 10 | rc/krT1n9sGdSEEdPR65w03OOCr2BmaXnwWZA/VI25ifWtWZiYyYjK94U5yhP7MW 11 | dvnTLJzGVzfNtnH2h8kzfk9Pk8sObwQW6Ag7Gc8Zn/vRRSAyTbNzS9+HEfBGUYaX 12 | 2noGqR/G7Tifg/kWdpIOxP2GJBnEujaHb040lBQhR6Voxwn0xYZ/6MASAKKAnVqK 13 | 4enXPEO9pQKHcDS10vLrj4D6jObOAs+e5u2YLODopTZiHWsCAwEAAaNjMGEwDgYD 14 | VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNA5xVR1Zcax 15 | RJL9VC6pzuLmvduGMB8GA1UdIwQYMBaAFNA5xVR1ZcaxRJL9VC6pzuLmvduGMA0G 16 | CSqGSIb3DQEBCwUAA4IBAQCmdVfn/hUyEdvkKG7svg5d8o6BENOj8695KtWmzJjK 17 | zxH8J5Vy3mn89XrHQ+BOYXCDPyhs0aDS8aq3Z+HY0n9z1oAicyGzlVwZQQNX3YId 18 | Y2vcf7qu/2ATm/1S+mebE1/EXMUlWISKKUYXjggCwFgjDhH87Ai+A8MKScVdmqgL 19 | Hf+fRSzH3ToW7BCXlRl5bPAq2g+v1ALYc8wU9cT1MYm4dqAXh870LGFyUpaSWmFr 20 | TtX1DXBTgLp62syNlDthAvGigYFDtCa4cDM2vdTD9wpec2V9EKpfVqiRDDuYjUVX 21 | UXl27MvkNWnEBKCIoNv5abWXpZVG2zQdEMmUOkVuAXUC 22 | -----END CERTIFICATE----- 23 | -------------------------------------------------------------------------------- /nghttp2/src/http-parser.patch: -------------------------------------------------------------------------------- 1 | commit a143133d43420ef89e4ba0d84c73998863cf9f81 2 | Author: Tatsuhiro Tsujikawa 3 | Date: Wed Jul 11 18:46:00 2012 +0900 4 | 5 | Use http_parser for tunneling connection transparently 6 | 7 | diff --git a/examples/http-parser/http_parser.c b/examples/http-parser/http_parser.c 8 | index 0c11eb8..610da57 100644 9 | --- a/examples/http-parser/http_parser.c 10 | +++ b/examples/http-parser/http_parser.c 11 | @@ -1627,9 +1627,14 @@ size_t http_parser_execute (http_parser *parser, 12 | 13 | /* Exit, the rest of the connect is in a different protocol. */ 14 | if (parser->upgrade) { 15 | - parser->state = NEW_MESSAGE(); 16 | - CALLBACK_NOTIFY(message_complete); 17 | - return (p - data) + 1; 18 | + /* We want to use http_parser for tunneling connection 19 | + transparently */ 20 | + /* Read body until EOF */ 21 | + parser->state = s_body_identity_eof; 22 | + break; 23 | + /* parser->state = NEW_MESSAGE(); */ 24 | + /* CALLBACK_NOTIFY(message_complete); */ 25 | + /* return (p - data) + 1; */ 26 | } 27 | 28 | if (parser->flags & F_SKIPBODY) { 29 | -------------------------------------------------------------------------------- /nghttp2/src/includes/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(ENABLE_ASIO_LIB) 2 | install(FILES 3 | nghttp2/asio_http2.h 4 | nghttp2/asio_http2_client.h 5 | nghttp2/asio_http2_server.h 6 | DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nghttp2") 7 | endif() 8 | -------------------------------------------------------------------------------- /nghttp2/src/includes/Makefile.am: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2014 Tatsuhiro Tsujikawa 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 | EXTRA_DIST = CMakeLists.txt 25 | 26 | if ENABLE_ASIO_LIB 27 | nobase_include_HEADERS = nghttp2/asio_http2.h nghttp2/asio_http2_client.h \ 28 | nghttp2/asio_http2_server.h 29 | endif # ENABLE_ASIO_LIB 30 | -------------------------------------------------------------------------------- /nghttp2/src/libnghttp2_asio.pc.in: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2014 Tatsuhiro Tsujikawa 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 | prefix=@prefix@ 24 | exec_prefix=@exec_prefix@ 25 | libdir=@libdir@ 26 | includedir=@includedir@ 27 | 28 | Name: libnghttp2_asio 29 | Description: HTTP/2 C++ library 30 | URL: https://github.com/tatsuhiro-t/nghttp2 31 | Version: @VERSION@ 32 | Libs: -L${libdir} -lnghttp2_asio 33 | Cflags: -I${includedir} 34 | -------------------------------------------------------------------------------- /nghttp2/src/memchunk.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/memchunk.h -------------------------------------------------------------------------------- /nghttp2/src/nghttp.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/nghttp.cc -------------------------------------------------------------------------------- /nghttp2/src/nghttp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/nghttp.h -------------------------------------------------------------------------------- /nghttp2/src/nghttp2_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_CONFIG_H 26 | #define NGHTTP2_CONFIG_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | #endif // NGHTTP2_CONFIG_H 33 | -------------------------------------------------------------------------------- /nghttp2/src/nghttp2_gzip_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_GZIP_TEST_H 26 | #define NGHTTP2_GZIP_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | void test_nghttp2_gzip_inflate(void); 37 | 38 | #ifdef __cplusplus 39 | } 40 | #endif 41 | 42 | #endif /* NGHTTP2_GZIP_TEST_H */ 43 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/shrpx_config.h -------------------------------------------------------------------------------- /nghttp2/src/shrpx_error.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_ERROR_H 26 | #define SHRPX_ERROR_H 27 | 28 | #include "shrpx.h" 29 | 30 | namespace shrpx { 31 | 32 | // Deprecated, do not use. 33 | enum ErrorCode { 34 | SHRPX_ERR_SUCCESS = 0, 35 | SHRPX_ERR_ERROR = -1, 36 | SHRPX_ERR_NETWORK = -100, 37 | SHRPX_ERR_EOF = -101, 38 | SHRPX_ERR_INPROGRESS = -102, 39 | SHRPX_ERR_DCONN_CANCELED = -103, 40 | SHRPX_ERR_RETRY = -104, 41 | SHRPX_ERR_TLS_REQUIRED = -105, 42 | }; 43 | 44 | } // namespace shrpx 45 | 46 | #endif // SHRPX_ERROR_H 47 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_http2_session.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/src/shrpx_http2_session.cc -------------------------------------------------------------------------------- /nghttp2/src/shrpx_http_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_HTTP_TEST_H 26 | #define SHRPX_HTTP_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace shrpx { 33 | 34 | void test_shrpx_http_create_forwarded(void); 35 | void test_shrpx_http_create_via_header_value(void); 36 | 37 | } // namespace shrpx 38 | 39 | #endif // SHRPX_HTTP_TEST_H 40 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_mruby_module_env.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_MRUBY_MODULE_ENV_H 26 | #define SHRPX_MRUBY_MODULE_ENV_H 27 | 28 | #include "shrpx.h" 29 | 30 | #include 31 | 32 | namespace shrpx { 33 | 34 | namespace mruby { 35 | 36 | void init_env_class(mrb_state *mrb, RClass *module); 37 | 38 | } // namespace mruby 39 | 40 | } // namespace shrpx 41 | 42 | #endif // SHRPX_MRUBY_MODULE_ENV_H 43 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_mruby_module_request.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_MRUBY_MODULE_REQUEST_H 26 | #define SHRPX_MRUBY_MODULE_REQUEST_H 27 | 28 | #include "shrpx.h" 29 | 30 | #include 31 | 32 | namespace shrpx { 33 | 34 | namespace mruby { 35 | 36 | void init_request_class(mrb_state *mrb, RClass *module); 37 | 38 | } // namespace mruby 39 | 40 | } // namespace shrpx 41 | 42 | #endif // SHRPX_MRUBY_MODULE_REQUEST_H 43 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_mruby_module_response.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_MRUBY_MODULE_RESPONSE_H 26 | #define SHRPX_MRUBY_MODULE_RESPONSE_H 27 | 28 | #include "shrpx.h" 29 | 30 | #include 31 | 32 | namespace shrpx { 33 | 34 | namespace mruby { 35 | 36 | void init_response_class(mrb_state *mrb, RClass *module); 37 | 38 | } // namespace mruby 39 | 40 | } // namespace shrpx 41 | 42 | #endif // SHRPX_MRUBY_MODULE_RESPONSE_H 43 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_process.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2015 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_PROCESS_H 26 | #define SHRPX_PROCESS_H 27 | 28 | #include "shrpx.h" 29 | 30 | namespace shrpx { 31 | 32 | constexpr uint8_t SHRPX_IPC_REOPEN_LOG = 1; 33 | constexpr uint8_t SHRPX_IPC_GRACEFUL_SHUTDOWN = 2; 34 | 35 | } // namespace shrpx 36 | 37 | #endif // SHRPX_PROCESS_H 38 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_router_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_ROUTER_TEST_H 26 | #define SHRPX_ROUTER_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace shrpx { 33 | 34 | void test_shrpx_router_match(void); 35 | void test_shrpx_router_match_prefix(void); 36 | 37 | } // namespace shrpx 38 | 39 | #endif // SHRPX_ROUTER_TEST_H 40 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_ssl_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2013 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_SSL_TEST_H 26 | #define SHRPX_SSL_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace shrpx { 33 | 34 | void test_shrpx_ssl_create_lookup_tree(void); 35 | void test_shrpx_ssl_cert_lookup_tree_add_ssl_ctx(void); 36 | void test_shrpx_ssl_tls_hostname_match(void); 37 | 38 | } // namespace shrpx 39 | 40 | #endif // SHRPX_SSL_TEST_H 41 | -------------------------------------------------------------------------------- /nghttp2/src/shrpx_worker_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef SHRPX_WORKER_TEST_H 26 | #define SHRPX_WORKER_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace shrpx { 33 | 34 | void test_shrpx_worker_match_downstream_addr_group(void); 35 | 36 | } // namespace shrpx 37 | 38 | #endif // SHRPX_WORKER_TEST_H 39 | -------------------------------------------------------------------------------- /nghttp2/src/ssl_compat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef OPENSSL_COMPAT_H 26 | 27 | #include 28 | 29 | #if defined(LIBRESSL_VERSION_NUMBER) 30 | #define LIBRESSL_IN_USE 1 31 | #else // !defined(LIBRESSL_VERSION_NUMBER) 32 | #define LIBRESSL_IN_USE 0 33 | #endif // !defined(LIBRESSL_VERSION_NUMBER) 34 | 35 | #define OPENSSL_1_1_API \ 36 | (!LIBRESSL_IN_USE && OPENSSL_VERSION_NUMBER >= 0x1010000fL) 37 | 38 | #endif // OPENSSL_COMPAT_H 39 | -------------------------------------------------------------------------------- /nghttp2/src/template_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2016 Tatsuhiro Tsujikawa 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 | #ifndef TEMPLATE_TEST_H 26 | #define TEMPLATE_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif // HAVE_CONFIG_H 31 | 32 | namespace nghttp2 { 33 | 34 | void test_template_immutable_string(void); 35 | void test_template_string_ref(void); 36 | 37 | } // namespace nghttp2 38 | 39 | #endif // TEMPLATE_TEST_H 40 | -------------------------------------------------------------------------------- /nghttp2/src/test.example.com-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEArf2UBsEh/xwd/4WZfVFf5sMyWcns/1idF2FroLDwqVUYRlxp 3 | U/KbrIG8X8v3w4cVP/xOXd1y9Q+W9OLK2YScAeHeE97mHZXbcpowUxvTDv/GNIHH 4 | XK/yvYM8R2EEnZR71qXdoXsCakv/aG2ewkkvA108eEbk0u7RxNmIsYsO0Y4iBtwB 5 | M/MSkAYPfWdrdHhY9z0l4M8GAyUOuZc0t6j0zw3fzkjqmVgGEJvcVzvSgZIzMLqS 6 | zvC89viXtj1pyzQjMLgmuDbs0l47uRHpZXgMGVyF3UuQipPzvhO7G/ZbX/4kUU5b 7 | PabdtvPbjju7dE5PfGrKOThM6HS93Y7QvYTUtwIDAQABAoIBAQCjUL69iFOs7muK 8 | CZGFe/iU1uxQM6XuGPN7mso3z15W07UxdlS3o6ZUSoLTONWcBxP/N4knulHJjZSY 9 | 0LivbDYz3htic3t0kdGmxOxPVnLKRXN6ncbQTaeAE8tlBMAcWd/UH2Tlylz+Ac// 10 | 6cV3gNJMShwUmhb3l4v3Rml0nZ6PO1pFc/Chk5L9REAV8G6rNtc9bzgmgoFucRO/ 11 | 8ce/uJrENt1Pu3vBvmz42DTGfG48v5RZ0OY4qEPawZJ7p+QYiTf6h3Eilss/AllW 12 | PPfQ0thdyB+yrZ3p6qb+ZUYphpGxgg6YlQxLfDKAikuo+EXwjPBPfeHhTO4kAj+h 13 | opDCroZhAoGBANyVFbagCWqwguE6nVPmnCaiNQUIh8b7L2CnkkLfdbPQr/KvyIjg 14 | Ua125bTJhe9Uk+ZBWsobQkjA0Baidiylx51pWYaxPVn5araVmkh2dqMluk2QE82X 15 | AWemBgKhAqCLLLMVXbrRYlxpKUm1Fc/lJ8Ig2R/MJSntTMpQhJtIejUbAoGBAMnt 16 | XMvlFABCoFbI9GMcteI/KkvNGQUy3OKEln/QCssnE4/XIu7LCxy6P+1lycbFy/mQ 17 | 0bnp525sPEIIkMpi6LeAbSzYN2O3BRjNrjPcbx6Khz9DweNhRIo5qTFRszZ+pHbV 18 | N+9Oc9JVenwPw6EuW7uZRFKFhCHtsBFdUrWLJoSVAoGAQ3ytdwGBwA2fDW/UgL32 19 | mm9YT2DrwbpKJYU/X4xkw44ett6HOTGAa9ULtINPogi7c2AdeeZbIk0znSk5hLF3 20 | 4DZCOM5zWdrQhmpBGNh9ta6uUFq7ZFRGDsMh5Z4DYsER/PyVf7neIS3ffviTYtbW 21 | kjNgmrTnzesXanK2D5heI28CgYEAhl+qjRTYhoPP53C7EOmeL/0QzHij2c3LKAJL 22 | lKqBREewwNvNp1L/BhL7T6OY7unZny48IpgBJn5oaxkAIW5IpzSTcnBAC99TSPo2 23 | ntRmLdDJx9PzRrkHv2Q3r1ZLCEymbV3eZyWx9ZpkdAKZkL0k1mZcDP5Eu79Ml4Ge 24 | 9Kiw7TECgYEAh+nTKwrCUFGbe4RIVCj/QG7FVPbq5PdxJ3gILZ3/1XkhPcNRFKJS 25 | u5qPfA02tYEALz9KXATK1uRB/GlBM7Eap/g2GFiHpVxrw6wPpybLywJmNyNTwqiq 26 | eJxQ0FRzW9Kwwn1ThPY38LdFe/wvXZFOcNvGD8hHCLQRdlBR4zuTsBk= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /nghttp2/src/test.example.com.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICpTCCAY0CAQAwYDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx 3 | ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEZMBcGA1UEAxMQdGVz 4 | dC5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK39 5 | lAbBIf8cHf+FmX1RX+bDMlnJ7P9YnRdha6Cw8KlVGEZcaVPym6yBvF/L98OHFT/8 6 | Tl3dcvUPlvTiytmEnAHh3hPe5h2V23KaMFMb0w7/xjSBx1yv8r2DPEdhBJ2Ue9al 7 | 3aF7AmpL/2htnsJJLwNdPHhG5NLu0cTZiLGLDtGOIgbcATPzEpAGD31na3R4WPc9 8 | JeDPBgMlDrmXNLeo9M8N385I6plYBhCb3Fc70oGSMzC6ks7wvPb4l7Y9acs0IzC4 9 | Jrg27NJeO7kR6WV4DBlchd1LkIqT874Tuxv2W1/+JFFOWz2m3bbz2447u3ROT3xq 10 | yjk4TOh0vd2O0L2E1LcCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBMAUqwty7R 11 | /YWRrC8NuvrbSsW0r7Z7FXWxny5w5ImONCgVffc2wVydtBVQ0rfd3pDZLyu0P4sx 12 | 4bJ/KBz67t2MsOKbCMDS7SJuFwHu9AUzaYNh455HeBOVwb6LemJDNnCtMG9DgcRv 13 | 2BpwKqekUVTGDuUQmLibjE8qwDHw/p9k4gjQBxlfJe2sIZGs6oA/JGFJUU6ZIn8Y 14 | M6aazrbjWexbWCnjhiXkNa8kfKiSHzU+2ct+GY5QxI221+63bXRiAi2/LK0gaY+p 15 | +3vYu75F7+8oPZOfsGmYEyPz7c1jPqcwPgVDk+sdvl1MO1TGFRaFNIlRP1DhpHkj 16 | fuJ/id6oUHhj 17 | -----END CERTIFICATE REQUEST----- 18 | -------------------------------------------------------------------------------- /nghttp2/src/test.example.com.csr.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "test.example.com", 3 | "key": { 4 | "algo": "rsa", 5 | "size": 2048 6 | }, 7 | "names": [ 8 | { 9 | "C": "AU", 10 | "ST": "Some-State", 11 | "O": "Internet Widgits Pty Ltd" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /nghttp2/src/test.example.com.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDwTCCAqmgAwIBAgIUDhKNhGRUq1TSHD6aG2k4TRR8iA0wDQYJKoZIhvcNAQEL 3 | BQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoT 4 | GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMOY2EubmdodHRwMi5v 5 | cmcwHhcNMTYwNjI1MDkzNzAwWhcNMjYwNjIzMDkzNzAwWjBgMQswCQYDVQQGEwJB 6 | VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0 7 | cyBQdHkgTHRkMRkwFwYDVQQDExB0ZXN0LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG 8 | 9w0BAQEFAAOCAQ8AMIIBCgKCAQEArf2UBsEh/xwd/4WZfVFf5sMyWcns/1idF2Fr 9 | oLDwqVUYRlxpU/KbrIG8X8v3w4cVP/xOXd1y9Q+W9OLK2YScAeHeE97mHZXbcpow 10 | UxvTDv/GNIHHXK/yvYM8R2EEnZR71qXdoXsCakv/aG2ewkkvA108eEbk0u7RxNmI 11 | sYsO0Y4iBtwBM/MSkAYPfWdrdHhY9z0l4M8GAyUOuZc0t6j0zw3fzkjqmVgGEJvc 12 | VzvSgZIzMLqSzvC89viXtj1pyzQjMLgmuDbs0l47uRHpZXgMGVyF3UuQipPzvhO7 13 | G/ZbX/4kUU5bPabdtvPbjju7dE5PfGrKOThM6HS93Y7QvYTUtwIDAQABo3UwczAO 14 | BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIw 15 | ADAdBgNVHQ4EFgQUm8jn1FICope9qUce6ORQ0CtbmhYwHwYDVR0jBBgwFoAU0DnF 16 | VHVlxrFEkv1ULqnO4ua924YwDQYJKoZIhvcNAQELBQADggEBAD7RPz/5rAnS1MNP 17 | JfAj1TXZSBwlYgtmJL65yaFB6a1SNSTo15deAm/1Vl10LbmYdV4sVnGKeZjhKNk+ 18 | bvVzetUSUS7Rh1fHtxlivJFkG1VrvPu9b416l2aKftBiaNyAWXbyjqXwLYli6Ehk 19 | uu6jZd0040Ggh7bY+KMSnDFDrp7Rar7OvGu9Iovs+sPdkc/iEbvwEiXdMjf3gwkT 20 | Wqx6br1VDLzhD83HAsFA9tt5fv6KTf91UgJnCmOi81Uo6fSEJG84g32T25gwwmCK 21 | q4U049aGF/f4u3QuWDsfYqNePycurAg3m5PC0wCoqvpY2u/q+PGbjWMi2PfZsF8U 22 | imgl/L0= 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /nghttp2/src/test.nghttp2.org-key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEA7p6KKa3ctS+Sr/nf2uTKNtTshuDVzTsBTbaGydj8q0YDmT3n 3 | CnOPWXvvG1N+jJv5pcAXN2ZnV9UpGh3N5g/CaRcFTgQQ8o+NlCXYBdPIXAJ+Kkbx 4 | limDw3n9xIXfeL6+V2QuPNrqh6n23xwDg5boKaNkpf7X5OrjT1Ph57SEfX1op3GX 5 | bwkAP2+3WlxxYYs0htRq2gH97q9J4MlhHPDapi+uKGs+2b1y6Uxgf4nD5jEWdPmy 6 | VqeKs+fT4ja2n+3gujpdOo2lg504p50gL4zP8zhAlcqlQCmeJGL1xFzCtm2wHQo7 7 | 6XHSWca4pJ7rxf2oIdtE7ikvgFlTVXnG1T3TEQIDAQABAoIBAQDlX/UD96MPcDmb 8 | e6EZ85AGgUsUpJAhBjVMlMagxTqtEVJoPj8XptoHdMD2DZ66XzztfedTU9bHcZpf 9 | BoNkQYXqKzzoL7Ry1leML4ymnVweRi8tSKD2bdXBVEUCYoXctc6WhzCDQxTrcBBl 10 | i7I9DhUB4ZTglEbIQJpdKQ8hAj/Rt55KWSxc+8X7ItSdtMrq+uz+pqg4PkysVAFS 11 | 3aDybOqiI/2hzOvwQU4HaB48uUQwpOU6EGidt0C5nAdWOQMbS8kkCJz6UODiUfdM 12 | mLIyA4ygkQ45QthzrddKauUMhUd/y1SAFJOambR4ZiyA+bItomlbNq018sFx3FDr 13 | Uvg7nz2ZAoGBAPC6aO4W0U7vsWyL/lgC7ybFbtPJ4emj4wK/W87qx3LW1/dRgl7Q 14 | h6oblZTFK/oV6xA7J2/Foocz/s1ntnyIdxrtrZUYAIiBXlrWhDg9+MnnmErfXx7H 15 | CkRyWH6i9JbTRUeiWRNBGQ9yMkwQPc2Ckytxrh7w9M+RVCpyzUh8lX+XAoGBAP3B 16 | 4V8cF3bVEUOk0tHshR5m2kcJ22qmUv8WUG+IdRUDb4tRpzVFC8HcKedEjk3jxkXR 17 | UInRSD+hLhx0HIhjZKWqJffSZI/G3U8AqoKu9+eh/xHZCah/8KW1YWNsn4rROcyZ 18 | 5XFRiMn7psWTjLEZ17zQS4rk9g65SKc9u1wtTxeXAoGAIY3qOF2n2Tfh5D5zOnNW 19 | QHI+q3i1a6qzZtujgWkKWgCGY+vRn0Oz1Us5A16kbZyGgmGscpD6wZvGxXzSW/Nt 20 | nqxIiMKquFxH+aNzFJ/WwNXuTWlrSc/2p2nE2gn+y9MxEfYYMm3df2CskBuncbDk 21 | sKaM3bU6eoBIWg5cfOEYuYsCgYACB2bR59uYK6PzsoGtBAMcdx4Pq1iBxcqsF3WV 22 | LrYg8OIXbxOzLVYmuqfrHXU10jhnnoDSWUYGnDdOKu9/d6v6Vx3umVQMgj6Kvyqd 23 | 2OBKjdUIQ3/8ROmbqZOZw+iSp5GavTBEc65wTv7KXZ+mWtqKu++esK32+CxIignR 24 | dttHCQKBgQDZUt94wj9s5p7H5LH6hxyqNr6P9JYEuYPao5l/3mOJ8N330wKuN2G+ 25 | GUg7p/AhtQHwdoyErlsQavKZa791oCvfJiOURYa8gYU03sYsyI1tV45UexCwl40f 26 | oS+VQYgU16UdYo9B2petecEPNpM+mgpne3qzVUwJ5NUNURgmWpyiQw== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /nghttp2/src/test.nghttp2.org.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIDATCCAekCAQAwZDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx 3 | ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEdMBsGA1UEAxMUbm90 4 | LXVzZWQubmdodHRwMi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB 5 | AQDunooprdy1L5Kv+d/a5Mo21OyG4NXNOwFNtobJ2PyrRgOZPecKc49Ze+8bU36M 6 | m/mlwBc3ZmdX1SkaHc3mD8JpFwVOBBDyj42UJdgF08hcAn4qRvGWKYPDef3Ehd94 7 | vr5XZC482uqHqfbfHAODlugpo2Sl/tfk6uNPU+HntIR9fWincZdvCQA/b7daXHFh 8 | izSG1GraAf3ur0ngyWEc8NqmL64oaz7ZvXLpTGB/icPmMRZ0+bJWp4qz59PiNraf 9 | 7eC6Ol06jaWDnTinnSAvjM/zOECVyqVAKZ4kYvXEXMK2bbAdCjvpcdJZxriknuvF 10 | /agh20TuKS+AWVNVecbVPdMRAgMBAAGgWDBWBgkqhkiG9w0BCQ4xSTBHMEUGA1Ud 11 | EQQ+MDyCEFRFU1QuTkdIVFRQMi5PUkeCEioudGVzdC5uZ2h0dHAyLm9yZ4IUdyp3 12 | LnRlc3QubmdodHRwMi5vcmcwDQYJKoZIhvcNAQELBQADggEBAIAEwnoM5moRwO5U 13 | eaeVCuzpxw1qQsB769GyQu+ey1aa+2BYflirv/FW+8x/uzQpCWGEgHqd5w+MXyXA 14 | PsyucHgKh5Ia6MUW6xxlHkkOtVtmZiH7lXWv90RNtdfHHGWnBzw8iGsk5WfEaNho 15 | NlPiuYLiFqA7W6jR/c4kOg3zziDlwTXaH6SWLCuDzLTb7E7nGcrWkN6moYj+QlSx 16 | viA4GsqDBoFgXT7cSfUzS8ZwIjrqbx7C1xkzPEt5jAiCD/UBX9ot0G+lEgCv3UQj 17 | Q1KkY+TO3bzMkt/kQSX2Q6plKj8D77tlDfFCjd77VC2lL3Qmzaz+M6T7uF+wyl9W 18 | AQJvoUg= 19 | -----END CERTIFICATE REQUEST----- 20 | -------------------------------------------------------------------------------- /nghttp2/src/test.nghttp2.org.csr.json: -------------------------------------------------------------------------------- 1 | { 2 | "CN": "not-used.nghttp2.org", 3 | "hosts": [ 4 | "TEST.NGHTTP2.ORG", 5 | "*.test.nghttp2.org", 6 | "w*w.test.nghttp2.org" 7 | ], 8 | "key": { 9 | "algo": "rsa", 10 | "size": 2048 11 | }, 12 | "names": [ 13 | { 14 | "C": "AU", 15 | "ST": "Some-State", 16 | "O": "Internet Widgits Pty Ltd" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /nghttp2/src/test.nghttp2.org.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIEDjCCAvagAwIBAgIUQBCY8Nre85JT1c7P+HbXUF9yzg8wDQYJKoZIhvcNAQEL 3 | BQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoT 4 | GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMOY2EubmdodHRwMi5v 5 | cmcwHhcNMTYwNjI1MDkzMzAwWhcNMjYwNjIzMDkzMzAwWjBkMQswCQYDVQQGEwJB 6 | VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0 7 | cyBQdHkgTHRkMR0wGwYDVQQDExRub3QtdXNlZC5uZ2h0dHAyLm9yZzCCASIwDQYJ 8 | KoZIhvcNAQEBBQADggEPADCCAQoCggEBAO6eiimt3LUvkq/539rkyjbU7Ibg1c07 9 | AU22hsnY/KtGA5k95wpzj1l77xtTfoyb+aXAFzdmZ1fVKRodzeYPwmkXBU4EEPKP 10 | jZQl2AXTyFwCfipG8ZYpg8N5/cSF33i+vldkLjza6oep9t8cA4OW6CmjZKX+1+Tq 11 | 409T4ee0hH19aKdxl28JAD9vt1pccWGLNIbUatoB/e6vSeDJYRzw2qYvrihrPtm9 12 | culMYH+Jw+YxFnT5slanirPn0+I2tp/t4Lo6XTqNpYOdOKedIC+Mz/M4QJXKpUAp 13 | niRi9cRcwrZtsB0KO+lx0lnGuKSe68X9qCHbRO4pL4BZU1V5xtU90xECAwEAAaOB 14 | vTCBujAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0T 15 | AQH/BAIwADAdBgNVHQ4EFgQUGlxgxowH6jrQiyyFpCbwPkCXXIYwHwYDVR0jBBgw 16 | FoAU0DnFVHVlxrFEkv1ULqnO4ua924YwRQYDVR0RBD4wPIIQVEVTVC5OR0hUVFAy 17 | Lk9SR4ISKi50ZXN0Lm5naHR0cDIub3JnghR3KncudGVzdC5uZ2h0dHAyLm9yZzAN 18 | BgkqhkiG9w0BAQsFAAOCAQEANCqM6ocfqOpgDEHYOOQTGFHJIptQhS3kRYAdTIo2 19 | G8XvGCoy+CDYe1GAUWbxE090+a1I1rsYMHcWKJnjKaCBZid7KMhyayIvrmgEsOCh 20 | L8iLf3bxkCoyIAmCpxJwa3LMxm2QQLtRx8AoMXWf+N8are4HY6MLNn6aP4zaTrTZ 21 | H+WkjKIh7WjSHtW/ro666PCXJDCCdRXljOf8v/fff3bYiLg8o70RBp7OFM0HaPtK 22 | wCfcLLxBeoVIncWswB6GtVUFhLeGjepDzWpuDHOdw6DtpghwSXvWFu9bRtl+x02m 23 | LAGfJ0kJrpYGfr9UB51NFX3aM/D3p2zxrjKwR2b59vJEcA== 24 | -----END CERTIFICATE----- 25 | -------------------------------------------------------------------------------- /nghttp2/tests/.gitignore: -------------------------------------------------------------------------------- 1 | # tests 2 | failmalloc 3 | main 4 | -------------------------------------------------------------------------------- /nghttp2/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # XXX testdata/: EXTRA_DIST = cacert.pem index.html privkey.pem 2 | if(HAVE_CUNIT) 3 | string(REPLACE " " ";" c_flags "${WARNCFLAGS}") 4 | add_compile_options(${c_flags}) 5 | 6 | include_directories( 7 | "${CMAKE_SOURCE_DIR}/lib/includes" 8 | "${CMAKE_SOURCE_DIR}/lib" 9 | "${CMAKE_SOURCE_DIR}/src/includes" 10 | "${CMAKE_BINARY_DIR}/lib/includes" 11 | ${CUNIT_INCLUDE_DIRS} 12 | ) 13 | 14 | set(MAIN_SOURCES 15 | main.c nghttp2_pq_test.c nghttp2_map_test.c nghttp2_queue_test.c 16 | nghttp2_test_helper.c 17 | nghttp2_frame_test.c 18 | nghttp2_stream_test.c 19 | nghttp2_session_test.c 20 | nghttp2_hd_test.c 21 | nghttp2_npn_test.c 22 | nghttp2_helper_test.c 23 | nghttp2_buf_test.c 24 | ) 25 | 26 | add_executable(main EXCLUDE_FROM_ALL 27 | ${MAIN_SOURCES} 28 | ) 29 | target_include_directories(main PRIVATE ${CUNIT_INCLUDE_DIRS}) 30 | target_link_libraries(main 31 | nghttp2_static 32 | ${CUNIT_LIBRARIES} 33 | ) 34 | add_test(main main) 35 | add_dependencies(check main) 36 | 37 | if(ENABLE_FAILMALLOC) 38 | set(FAILMALLOC_SOURCES 39 | failmalloc.c failmalloc_test.c 40 | malloc_wrapper.c 41 | nghttp2_test_helper.c 42 | ) 43 | add_executable(failmalloc EXCLUDE_FROM_ALL 44 | ${FAILMALLOC_SOURCES} 45 | ) 46 | target_link_libraries(failmalloc 47 | nghttp2_static 48 | ${CUNIT_LIBRARIES} 49 | ) 50 | add_test(failmalloc failmalloc) 51 | add_dependencies(check failmalloc) 52 | endif() 53 | 54 | if(ENABLE_APP) 55 | # EXTRA_DIST = end_to_end.py 56 | # TESTS += end_to_end.py 57 | endif() 58 | endif() 59 | -------------------------------------------------------------------------------- /nghttp2/tests/failmalloc_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef FAILMALLOC_TEST_H 26 | #define FAILMALLOC_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_session_send(void); 33 | void test_nghttp2_session_send_server(void); 34 | void test_nghttp2_session_recv(void); 35 | void test_nghttp2_frame(void); 36 | void test_nghttp2_hd(void); 37 | 38 | #endif /* FAILMALLOC_TEST_H */ 39 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_helper_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2013 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_HELPER_TEST_H 26 | #define NGHTTP2_HELPER_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_adjust_local_window_size(void); 33 | void test_nghttp2_check_header_name(void); 34 | void test_nghttp2_check_header_value(void); 35 | 36 | #endif /* NGHTTP2_HELPER_TEST_H */ 37 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_map_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_MAP_TEST_H 26 | #define NGHTTP2_MAP_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_map(void); 33 | void test_nghttp2_map_functional(void); 34 | void test_nghttp2_map_each_free(void); 35 | 36 | #endif /* NGHTTP2_MAP_TEST_H */ 37 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_npn_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Twist Inc. 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 | #ifndef NGHTTP2_NPN_TEST_H 26 | #define NGHTTP2_NPN_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_npn(void); 33 | 34 | #endif /* NGHTTP2_NPN_TEST_H */ 35 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_pq_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_PQ_TEST_H 26 | #define NGHTTP2_PQ_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_pq(void); 33 | void test_nghttp2_pq_update(void); 34 | void test_nghttp2_pq_remove(void); 35 | 36 | #endif /* NGHTTP2_PQ_TEST_H */ 37 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_queue_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_QUEUE_TEST_H 26 | #define NGHTTP2_QUEUE_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | void test_nghttp2_queue(void); 33 | 34 | #endif /* NGHTTP2_QUEUE_TEST_H */ 35 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_stream_test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #include "nghttp2_stream_test.h" 26 | 27 | #include 28 | 29 | #include "nghttp2_stream.h" 30 | -------------------------------------------------------------------------------- /nghttp2/tests/nghttp2_stream_test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nghttp2 - HTTP/2 C Library 3 | * 4 | * Copyright (c) 2012 Tatsuhiro Tsujikawa 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 | #ifndef NGHTTP2_STREAM_TEST_H 26 | #define NGHTTP2_STREAM_TEST_H 27 | 28 | #ifdef HAVE_CONFIG_H 29 | #include 30 | #endif /* HAVE_CONFIG_H */ 31 | 32 | #endif /* NGHTTP2_STREAM_TEST_H */ 33 | -------------------------------------------------------------------------------- /nghttp2/tests/testdata/Makefile.am: -------------------------------------------------------------------------------- 1 | # nghttp2 - HTTP/2 C Library 2 | 3 | # Copyright (c) 2012 Tatsuhiro Tsujikawa 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 = cacert.pem index.html privkey.pem 24 | -------------------------------------------------------------------------------- /nghttp2/tests/testdata/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICKTCCAdOgAwIBAgIJAIsolheWrwMZMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV 3 | BAYTAlVTMQswCQYDVQQIDAJDQTENMAsGA1UEBwwEQ2l0eTESMBAGA1UECgwJU3Bk 4 | eSBUZXN0MRIwEAYDVQQDDAlsb2NhbGhvc3QxHTAbBgkqhkiG9w0BCQEWDnNwZHlA 5 | bG9jYWxob3N0MB4XDTEyMDMwMTE5MTI0NVoXDTIzMDUxOTE5MTI0NVowcDELMAkG 6 | A1UEBhMCVVMxCzAJBgNVBAgMAkNBMQ0wCwYDVQQHDARDaXR5MRIwEAYDVQQKDAlT 7 | cGR5IFRlc3QxEjAQBgNVBAMMCWxvY2FsaG9zdDEdMBsGCSqGSIb3DQEJARYOc3Bk 8 | eUBsb2NhbGhvc3QwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAw/2MgzAdlJDm29qH 9 | ZlAibgs9mH+8keOtsRrb4B1PiCcZoHvN9eCVZ4WnzT+0zhHF+nO3YfwVFVC3w7TF 10 | 7fLB3QIDAQABo1AwTjAdBgNVHQ4EFgQUVP2Jw9RX6BB76aV5x2qk5qsrAIQwHwYD 11 | VR0jBBgwFoAUVP2Jw9RX6BB76aV5x2qk5qsrAIQwDAYDVR0TBAUwAwEB/zANBgkq 12 | hkiG9w0BAQUFAANBAKd9M5FzQLEZW1KPe9/XNZlgxZ2g3EC5Krxo5I4Ul3MnIYS9 13 | u4K8t/iprhgOzjFH6+8LVk9v0Za+gU+K43CpUo4= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /nghttp2/tests/testdata/index.html: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /nghttp2/tests/testdata/privkey.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOwIBAAJBAMP9jIMwHZSQ5tvah2ZQIm4LPZh/vJHjrbEa2+AdT4gnGaB7zfXg 3 | lWeFp80/tM4Rxfpzt2H8FRVQt8O0xe3ywd0CAwEAAQJBAIQ8PGP/QNYOdlT8OsLj 4 | aneJCgQsm1Rro7ONBbFO1WxslvA6+uJsx4Rs8zLiS8cyqmJ/lmGa7zhwYSOvFQPa 5 | XgECIQDgIcgM/2C67peTm1diKKIoGVVKFCfdRi+Dje6mTl2TQQIhAN/bcFWbG73j 6 | cUVlIsr9Wk1dJzjPPWKeyirF1qd/WbOdAiEApTsCOeLCssxV3jF02B5QfPNAFx6I 7 | zO2C9Z7awque/IECIGCHW3VOoTPMs7dc2Rf3D810cclJdArmtf6juOAZRjDxAiBS 8 | AC+H685IBJ99N5nCbF9NWYIVSkuiKVQ8POYVZX+0Jg== 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /nghttp2/third-party/build_config.rb: -------------------------------------------------------------------------------- 1 | MRuby::Build.new do |conf| 2 | # TODO use same compilers configured in configure script 3 | toolchain :clang 4 | 5 | # C++ project needs this. Without this, mruby exception does not 6 | # properly destory C++ object allocated on stack. 7 | conf.enable_cxx_abi 8 | 9 | conf.build_dir = ENV['BUILD_DIR'] 10 | 11 | # include the default GEMs 12 | conf.gembox 'default' 13 | conf.gem :core => 'mruby-eval' 14 | end 15 | -------------------------------------------------------------------------------- /nghttp2/third-party/http-parser/.gitignore: -------------------------------------------------------------------------------- 1 | .dirstamp 2 | -------------------------------------------------------------------------------- /nghttp2/third-party/http-parser/CONTRIBUTIONS: -------------------------------------------------------------------------------- 1 | Contributors must agree to the Contributor License Agreement before patches 2 | can be accepted. 3 | 4 | http://spreadsheets2.google.com/viewform?hl=en&formkey=dDJXOGUwbzlYaWM4cHN1MERwQS1CSnc6MQ 5 | -------------------------------------------------------------------------------- /nghttp2/third-party/http-parser/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright 2 | Igor Sysoev. 3 | 4 | Additional changes are licensed under the same terms as NGINX and 5 | copyright Joyent, Inc. and other Node contributors. All rights reserved. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to 9 | deal in the Software without restriction, including without limitation the 10 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 11 | sell copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 23 | IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /nghttp2/third-party/http-parser/contrib/url_parser.c: -------------------------------------------------------------------------------- 1 | #include "http_parser.h" 2 | #include 3 | #include 4 | 5 | void 6 | dump_url (const char *url, const struct http_parser_url *u) 7 | { 8 | unsigned int i; 9 | 10 | printf("\tfield_set: 0x%x, port: %u\n", u->field_set, u->port); 11 | for (i = 0; i < UF_MAX; i++) { 12 | if ((u->field_set & (1 << i)) == 0) { 13 | printf("\tfield_data[%u]: unset\n", i); 14 | continue; 15 | } 16 | 17 | printf("\tfield_data[%u]: off: %u, len: %u, part: %.*s\n", 18 | i, 19 | u->field_data[i].off, 20 | u->field_data[i].len, 21 | u->field_data[i].len, 22 | url + u->field_data[i].off); 23 | } 24 | } 25 | 26 | int main(int argc, char ** argv) { 27 | struct http_parser_url u; 28 | int len, connect, result; 29 | 30 | if (argc != 3) { 31 | printf("Syntax : %s connect|get url\n", argv[0]); 32 | return 1; 33 | } 34 | len = strlen(argv[2]); 35 | connect = strcmp("connect", argv[1]) == 0 ? 1 : 0; 36 | printf("Parsing %s, connect %d\n", argv[2], connect); 37 | 38 | http_parser_url_init(&u); 39 | result = http_parser_parse_url(argv[2], len, connect, &u); 40 | if (result != 0) { 41 | printf("Parse error : %d\n", result); 42 | return result; 43 | } 44 | printf("Parse ok, result : \n"); 45 | dump_url(argv[2], &u); 46 | return 0; 47 | } 48 | -------------------------------------------------------------------------------- /nghttp2/third-party/http-parser/http_parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/y123456yz/reading-and-annotate-nghttp2/485d80841885121222a7e246eb7e28e7ff224a5d/nghttp2/third-party/http-parser/http_parser.c --------------------------------------------------------------------------------