Добавлена библиотека curl и решены проблемы при запуске программы

Этот коммит содержится в:
BubnovAS
2025-06-02 10:38:08 +03:00
родитель 0c6c5a4e49
Коммит 38f5c38e4b
323 изменённых файлов: 114579 добавлений и 0 удалений

67
curl/dep/ngtcp2/AUTHORS.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,67 @@
Alexis La Goutte
Amir Livneh
Anna Henningsen
Atle Solbakken
Bas van den Berg
Billy Robert O'Neal III
Bruno S Marques
Bryan Call
Cheng Zhao
Daan De Meyer
Daiki Ueno
Daniel Bevenius
Daniel Stenberg
Dave Reisner
Don
Don Olmstead
Frank Osterfeld
Frédéric Lécaille
Félix Dagenais
Irina Guberman
James M Snell
Jan Doskočil
Jason Rhinelander
Javier Blazquez
Jay Satiro
Jean-Philippe Boivin
Jiawen Geng
Jixinqi
Junqi Wang
Karthikdasari0423
Kazu Yamamoto
Ken-ichi ICHINO
Kenjiro Nakayama
Lars Eggert
Liang Ma
Marin Rukavina
Mark Chiou
Martin Thomson
Michael White
Moritz Buhl
NKTelnet
Natris
Nishant Nori
Patrick Griffis
Pavel Otchertsov
Peter Wu
Samuel Henrique
Stefan Eissing
Tal Regev
Tatsuhiro Tsujikawa
Tim Gates
Tomas Mraz
Toni Uhlig
Valère Plantevin
Victor Loh
Viktor Szakats
Your Name
Zizhong Zhang
flx413
hondaxiao
hyunjic
junqiw
msoxzw
nickfajones
rhoxn
scw00
shibin k v

22
curl/dep/ngtcp2/COPYING.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,22 @@
The MIT License
Copyright (c) 2016 ngtcp2 contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

620
curl/dep/ngtcp2/ChangeLog.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,620 @@
commit 7dd482f949f145632c482d01af2184954b471795
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-26
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-26
Bump package and library versions
commit c1550b0fb8c864df021417744d2beac6f2a61f26
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-26
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-26
Update AUTHORS
commit dec3e0ccd3dbff5457d76003b6e34c71063497ec
Merge: f0c08bc9 1db3624d
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-26
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-26
Merge pull request #1654 from ngtcp2/bump-aws-lc
Bump aws-lc to v1.52.0
commit 1db3624dc774603d28473c949c7a3a1125df800a
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-26
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-26
Bump aws-lc to v1.52.0
commit f0c08bc94f6a06f05c468ec4174f05f605606d22
Merge: 51fb9608 c5235a75
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-26
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-26
Merge pull request #1653 from ngtcp2/bump-boringssl
Bump boringssl
commit c5235a75c92b0444b3fd9a5ac716c2f48dfb5435
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-26
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-26
Bump boringssl
commit 51fb9608e18124ef98d2d6406da047c69593aaec
Merge: c483a8f1 8626ddd7
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-12
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-12
Merge pull request #1651 from ngtcp2/constexpr-istarts_with
Make istarts_with constexpr
commit 8626ddd7a6bca940138588508396bf766e9fbdfe
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-12
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-12
Make istarts_with constexpr
commit c483a8f1b6c4ec8dc1fe704f925ec71c5106d2af
Merge: f7a4030a d61fb269
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-12
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-12
Merge pull request #1650 from ngtcp2/bump-munit
Bump munit
commit d61fb2693fb091ff1a0f631c17c21e2564465a38
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-11
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-11
Bump munit
commit f7a4030ab25c3f481f38e6f3e87da9ea9b7139bd
Merge: c3ede479 210891fb
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-04
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-04
Merge pull request #1646 from nak3/bump-libressl-4.1.0
Bump libressl to v4.1.0
commit c3ede4793aacbe8b180fd9a4b3280e7f6264e115
Merge: 4a1611ed 10ebe66c
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-04
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-04
Merge pull request #1647 from kazu-yamamoto/boringssl-mac
putting important libdir and incdir first
commit 210891fbaefde1995f5210fb3f63540f0ab07ff3
Author: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
AuthorDate: 2025-05-01
Commit: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
CommitDate: 2025-05-03
Bump libressl to v4.1.0
commit 10ebe66c5c204934a939ba314d40c5d9e9008b7f
Author: Kazu Yamamoto <kazu@iij.ad.jp>
AuthorDate: 2025-05-02
Commit: Kazu Yamamoto <kazu@iij.ad.jp>
CommitDate: 2025-05-03
putting important libdir and incdir first
commit 4a1611ed5b17bcfbf3bdf197edfb1c60c195066e
Merge: 1ab80a97 11216f47
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-01
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-01
Merge pull request #1645 from ngtcp2/avoid-mismatch
Avoid slower std::ranges::mismatch
commit 11216f47288543bbab9a301930affe898a8ff54f
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-01
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Avoid slower std::ranges::mismatch
commit 1ab80a974eee74246cf5684b130492661e161936
Merge: 261d31d1 426a023f
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-01
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-01
Merge pull request #1644 from ngtcp2/as_uint8_span-consteval
Make as_uint8_span consteval
commit 426a023fc8d91d06a458dd7da39d434c02034e30
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-01
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Make as_uint8_span consteval
commit 261d31d13e6401d9719c0067064f05001a5a04e7
Merge: 04313d14 0ee64591
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-05-01
Commit: GitHub <noreply@github.com>
CommitDate: 2025-05-01
Merge pull request #1643 from ngtcp2/refactor-examples
Refactor examples
commit 0ee645916789e121ce5b242125d9761785a2ca7d
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-01
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Refactor parse_host_port
commit 71f1985238d5d696c827f802140fd92163c8e957
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-01
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
examples/client: Adopt std::unordered_map
commit edf55332b846ec1e7a924cdd063940f0c265a19c
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-05-01
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Rewrite ALPN selection
commit 8d765e0b0ff53a86d860db5a3584a3731d8261c9
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Remove unused b64encode
commit 9c50a92b862a1c81d8454346caec5b5cbda2bb84
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
C++ style cast
commit 9fbfbf61251f1272bc6b87d7f1ecdb5f13658678
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
get_reason_phrase: Return std::string_view
commit 9f04b6b5ed1d7665eafe070865f05d781d38e319
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
siphash: Adopt std::ranges
commit c65071bf1c52cbd256d64599c05431c5c0f7519d
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
picotls: Adopt std::ranges
commit e4901d2720ab3e467d5b60c4adc75c4796eb3ebe
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
picotls: Refactor ticket encryption/decryption function
commit 9cdee080fb38b2c4388530c68abc3897332e6c4e
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Refactor ALPN definitions
commit 22fdfc6f7216400580ebceff4e75ff9a56fbb03e
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
examples/client: Adopt std::ranges
commit 8d67312aaf5f29b69b6ea34d7efb9384b6bf40d4
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
tls_server_*: Adopt std::ranges
commit 19e3af2520d206b18f91a91dc0672761bec4ec72
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
examples/server: Adopt std::ranges
commit e27fd65169e410b19e979e4882d01886d504cefd
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Append sv to string arguments to read_pem and write_pem
commit 3795fde07f00991d5e9a9424c578bcb460906791
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Refactor hexdump with std::span
commit 846d45bc3926a4a3f16fede156d2387b9b0e65a8
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
Refactor parse_version
commit 9a3d76654e86a63d81fabe676c632a3a9e3aa532
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
percent_decode: Take std::string_view
commit b778aa08802ccb0f9866ea1b95e98a82598b9db4
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-30
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-05-01
examples/util: Adopt std::ranges
commit 04313d145c7badc950853044673854212cbeb086
Merge: 2ede338d b3eccce4
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-28
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-28
Merge pull request #1640 from ngtcp2/span-first
examples: Adopt std::span::first
commit b3eccce4173748f6ce2bceb11dd4e8116a73045f
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-28
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-28
examples: Adopt std::span::first
commit 2ede338d96d3d9ded87b2641bfe83a15cf301ac5
Merge: 0271af1c 4779b8bf
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-28
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-28
Merge pull request #1638 from ngtcp2/client-refactor-packet-write
examples/client: Refactor packet write path
commit 4779b8bfc7df59ad6c8493edc96496fa48230a0e
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-28
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-28
examples/client: Refactor packet write path
commit 0271af1c504e769223214cd2138dfadb668f9b1f
Merge: fdf255b4 280c64ac
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-27
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-27
Merge pull request #1637 from ngtcp2/server-refactor-on_send_blocked
examples/server: Refactor on_send_blocked
commit 280c64ac6aad528f0d0bf2f6b41c80ca0a7a5c2b
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-27
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-27
examples/server: Refactor on_send_blocked
commit fdf255b49593bf2333a6d357877bca170bd915ab
Merge: ab43336b 225fc54b
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-27
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-27
Merge pull request #1636 from ngtcp2/server-endpoint-const
examples/server: Add const qualifier to Endpoint when passed to function
commit 225fc54bd12a78b3fd03ebf9b4dd2941fc38ccc4
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-27
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-27
examples/server: Add const qualifier to Endpoint when passed to function
commit ab43336bf514f8d6a82f1107dc52ee9f35d129b6
Merge: f2ab5479 b25ba934
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-27
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-27
Merge pull request #1635 from ngtcp2/server-refactor-packet-write
examples/server: Refactor packet write
commit b25ba9345fe7cbc97d9220ef6a67a6ad84de159b
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-27
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-27
examples/server: Refactor packet write
commit f2ab54791fdd664195a84692b08a84c35baefa29
Merge: 709806d3 1be14245
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-27
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-27
Merge pull request #1634 from ngtcp2/bump-wolfssl
Bump wolfssl to v5.8.0-stable
commit 1be1424585ed09702d223ab9da313d508f2725e1
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-27
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-27
Bump wolfssl to v5.8.0-stable
commit 709806d3fe258a0dd0b6cc40b5f03ec3c3c07f89
Merge: a5d03dd7 95dadc5a
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-22
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-22
Merge pull request #1630 from ngtcp2/cubic-bound-time-delta
cubic: Bound time_delta
commit 95dadc5a484216edaecef46abbb4c85798e4e19d
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-22
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-22
cubic: Bound time_delta
commit a5d03dd7c9b4b379770f22df8670d8c329faf518
Merge: e92f7528 9fcff171
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-21
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-21
Merge pull request #1629 from ngtcp2/refactor-cubic
Refactor cubic
commit 9fcff171091382f58005705dfdb4b405015b1a2b
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-20
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-21
Refactor cubic
commit e92f75288d9a66d3969e5b2f5b108b980037733d
Merge: 02ebe607 876c29af
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-20
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-20
Merge pull request #1628 from ngtcp2/pacing-interval
Add extra precision to pacing_interval
commit 876c29afd910dd5d69d2663dc9465507eefd78c6
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-20
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-20
Add extra precision to pacing_interval
commit 02ebe6075a043f6f1eeaa7f81ff07f1f4775bf32
Merge: 3e31700b b30e8c33
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-19
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-19
Merge pull request #1627 from ngtcp2/pacing-less-bursty
Make pacing less bursty
commit b30e8c33d9099472c9df66c072200a36ce0d3b76
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-19
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-19
Make pacing less bursty
commit 3e31700b746dc612d0c8edbb23b8aaf842a3b1f2
Merge: c239f04f 1a77af29
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-19
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-19
Merge pull request #1626 from ngtcp2/path-response-non-probing
Make a packet containing PATH_RESPONSE to active path non-probing
commit 1a77af297cd7391155a870896e2af1a6c9610a64
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-19
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-19
Make a packet containing PATH_RESPONSE to active path non-probing
commit c239f04f982726df75afd2673256bb69b3f0a3fa
Merge: 438d4e9d d6d4f064
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-19
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-19
Merge pull request #1625 from ngtcp2/fix-path-response-padding
Fix path response padding
commit d6d4f064c917c5f60e61070821b6a67ee07e3d3a
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-19
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-19
Remove unnecessary conn->pkt.require_padding manipulation
On first write call (!ppe_pending),
NGTCP2_WRITE_PKT_FLAG_REQUIRE_PADDING suggests padding requirement.
On the subsequent calls (ppe_pending), conn->pkt.require_padding is
used instead.
commit 47a9f9044532448d9cedd452a7230feb1b3a4a34
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-19
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-19
Fix bug that packet is not padded with NGTCP2_WRITE_STREAM_FLAG_MORE
Make sure that packet with PATH_RESPONSE to an active path is padded
with NGTCP2_WRITE_STREAM_FLAG_MORE.
commit 438d4e9d7d4dad936a7cd57904ce1019568ce96d
Merge: 4408e690 48cba1d2
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-19
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-19
Merge pull request #1624 from jixinqi/jixinqi-patch-1
Update CMakeLists.txt to fix the error of check_symbol_exists() when static-link openssl.
commit 48cba1d21c126070c4fe13c5cfd7b87f7f9f1e09
Author: Jixinqi <4635756+jixinqi@users.noreply.github.com>
AuthorDate: 2025-04-19
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-19
Update CMakeLists.txt to fix the error of check_symbol_exists() when static-link openssl.
commit 4408e6905274dc13131b67fdc6511193bf3ebf62
Merge: 8e09f33f 4439eaa0
Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
AuthorDate: 2025-04-18
Commit: GitHub <noreply@github.com>
CommitDate: 2025-04-18
Merge pull request #1623 from ngtcp2/update-doc
Update doc
commit 4439eaa08263a334968993649d2f42cb79f74d1a
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-18
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-18
Fix picotls crypto helper doc
commit 4b6e1c3f9db8817d4250d7a22b7795a4c173dff1
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-18
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-18
Update packet padding flag docs
commit 8e09f33ff0c53cf149607d177006e11b2bfbe0c0
Author: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
AuthorDate: 2025-04-16
Commit: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CommitDate: 2025-04-16
Bump package version

379
curl/dep/ngtcp2/README.rst Обычный файл
Просмотреть файл

@@ -0,0 +1,379 @@
ngtcp2
======
"Call it TCP/2. One More Time."
ngtcp2 project is an effort to implement `RFC9000
<https://datatracker.ietf.org/doc/html/rfc9000>`_ QUIC protocol.
Documentation
-------------
`Online documentation <https://nghttp2.org/ngtcp2/>`_ is available.
Public test server
------------------
The following endpoints are available to try out ngtcp2
implementation:
- https://nghttp2.org:4433
- https://nghttp2.org:4434 (requires address validation token)
- https://nghttp2.org (powered by `nghttpx
<https://nghttp2.org/documentation/nghttpx.1.html>`_)
This endpoints sends Alt-Svc header field to clients if it is
accessed via HTTP/1.1 or HTTP/2 to tell them that HTTP/3 is
available at UDP 443.
Requirements
------------
The libngtcp2 C library itself does not depend on any external
libraries. The example client, and server are written in C++20, and
should compile with the modern C++ compilers (e.g., clang >= 11.0, or
gcc >= 11.0).
The following packages are required to configure the build system:
- pkg-config >= 0.20
- autoconf
- automake
- autotools-dev
- libtool
To build sources under the examples directory, libev and nghttp3 are
required:
- libev
- `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ for HTTP/3
To enable `TLS Certificate Compression
<https://datatracker.ietf.org/doc/html/rfc8879>`_ in bsslclient and
bsslserver (BoringSSL (aws-lc) examples client and server), the
following library is required:
- libbrotli-dev >= 1.0.9
ngtcp2 crypto helper library, and client and server under examples
directory require at least one of the following TLS backends:
- `quictls
<https://github.com/quictls/openssl/tree/OpenSSL_1_1_1w+quic>`_
- GnuTLS >= 3.7.5
- BoringSSL (commit 9295969e1dad2c31d0d99481734c1c68dcbc6403);
or aws-lc >= 1.39.0
- Picotls (commit bbcdbe6dc31ec5d4b72a7beece4daf58098bad42)
- wolfSSL >= 5.5.0
- LibreSSL >= v3.9.2
- OpenSSL >= 3.5.0 (experimental)
Before building from git
------------------------
When build from git, run the following command to pull submodules:
.. code-block:: shell
$ git submodule update --init
Build with wolfSSL
------------------
.. code-block:: shell
$ git clone --depth 1 -b v5.8.0-stable https://github.com/wolfSSL/wolfssl
$ cd wolfssl
$ autoreconf -i
$ # For wolfSSL < v5.6.6, append --enable-quic.
$ ./configure --prefix=$PWD/build \
--enable-all --enable-aesni --enable-harden --enable-keylog-export \
--disable-ech
$ make -j$(nproc)
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ make -j$(nproc) check
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ # For Mac users who have installed libev with MacPorts, append
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
$ ./configure PKG_CONFIG_PATH=$PWD/../wolfssl/build/lib/pkgconfig:$PWD/../nghttp3/build/lib/pkgconfig \
--with-wolfssl
$ make -j$(nproc) check
Build with BoringSSL
--------------------
.. code-block:: shell
$ git clone https://boringssl.googlesource.com/boringssl
$ cd boringssl
$ git checkout 9295969e1dad2c31d0d99481734c1c68dcbc6403
$ cmake -B build -DCMAKE_POSITION_INDEPENDENT_CODE=ON
$ make -j$(nproc) -C build
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ make -j$(nproc) check
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ # For Mac users who have installed libev with MacPorts, append
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig \
BORINGSSL_LIBS="-L$PWD/../boringssl/build -lssl -lcrypto" \
BORINGSSL_CFLAGS="-I$PWD/../boringssl/include" \
--with-boringssl
$ make -j$(nproc) check
Build with aws-lc
-----------------
.. code-block:: shell
$ git clone --depth 1 -b v1.52.0 https://github.com/aws/aws-lc
$ cd aws-lc
$ cmake -B build -DDISABLE_GO=ON
$ make -j$(nproc) -C build
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ make -j$(nproc) check
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ # For Mac users who have installed libev with MacPorts, append
$ # LIBEV_CFLAGS="-I/opt/local/include" LIBEV_LIBS="-L/opt/local/lib -lev"
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig \
BORINGSSL_CFLAGS="-I$PWD/../aws-lc/include" \
BORINGSSL_LIBS="-L$PWD/../aws-lc/build/ssl -lssl -L$PWD/../aws-lc/build/crypto -lcrypto" \
--with-boringssl
$ make -j$(nproc) check
Build with libressl
-----------------
.. code-block:: shell
$ git clone --depth 1 -b v4.1.0 https://github.com/libressl/portable.git libressl
$ cd libressl
$ # Workaround autogen.sh failure
$ export LIBRESSL_GIT_OPTIONS="-b libressl-v4.1.0"
$ ./autogen.sh
$ ./configure --prefix=$PWD/build
$ make -j$(nproc) install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/nghttp3
$ cd nghttp3
$ autoreconf -i
$ ./configure --prefix=$PWD/build --enable-lib-only
$ make -j$(nproc) check
$ make install
$ cd ..
$ git clone --recursive https://github.com/ngtcp2/ngtcp2
$ cd ngtcp2
$ autoreconf -i
$ # For Mac users who have installed libev with MacPorts, append
$ # LIBEV_CFLAGS="-I/opt/homebrew/Cellar/libev/4.33/include" LIBEV_LIBS="-L/opt/homebrew/Cellar/libev/4.33/lib -lev"
$ ./configure PKG_CONFIG_PATH=$PWD/../nghttp3/build/lib/pkgconfig:$PWD/../libressl/build/lib/pkgconfig
$ make -j$(nproc) check
Client/Server
-------------
After successful build, the client and server executable should be
found under examples directory. They talk HTTP/3.
Client
~~~~~~
.. code-block:: shell
$ examples/wsslclient [OPTIONS] <HOST> <PORT> [<URI>...]
The notable options are:
- ``-d``, ``--data=<PATH>``: Read data from <PATH> and send it to a
peer.
Server
~~~~~~
.. code-block:: shell
$ examples/wsslserver [OPTIONS] <ADDR> <PORT> <PRIVATE_KEY_FILE> <CERTIFICATE_FILE>
The notable options are:
- ``-V``, ``--validate-addr``: Enforce stateless address validation.
H09wsslclient/H09wsslserver
---------------------------
There are h09wsslclient and h09wsslserver which speak HTTP/0.9. They
are written just for `quic-interop-runner
<https://github.com/marten-seemann/quic-interop-runner>`_. They share
the basic functionalities with HTTP/3 client and server but have less
functions (e.g., h09wsslclient does not have a capability to send
request body, and h09wsslserver does not understand numeric request
path, like /1000).
Resumption and 0-RTT
--------------------
In order to resume a session, a session ticket, and a transport
parameters must be fetched from server. First, run
examples/wsslclient with --session-file, and --tp-file options which
specify a path to session ticket, and transport parameter files
respectively to save them locally.
Once these files are available, run examples/wsslclient with the same
arguments again. You will see that session is resumed in your log if
resumption succeeds. Resuming session makes server's first Handshake
packet pretty small because it does not send its certificates.
To send 0-RTT data, after making sure that resumption works, use -d
option to specify a file which contains data to send.
Token (Not something included in Retry packet)
----------------------------------------------
QUIC server might send a token to client after connection has been
established. Client can send this token in subsequent connection to
the server. Server verifies the token and if it succeeds, the address
validation completes and lifts some restrictions on server which might
speed up transfer. In order to save and/or load a token,
use --token-file option of examples/wsslclient. The given file is
overwritten if it already exists when storing a token.
Crypto helper library
---------------------
In order to make TLS stack integration less painful, we provide a
crypto helper library which offers the basic crypto operations.
The header file exists under crypto/includes/ngtcp2 directory.
Each library file is built for a particular TLS backend. The
available crypto helper libraries are:
- libngtcp2_crypto_quictls: Use quictls and libressl as TLS backend
- libngtcp2_crypto_gnutls: Use GnuTLS as TLS backend
- libngtcp2_crypto_boringssl: Use BoringSSL and aws-lc as TLS backend
- libngtcp2_crypto_picotls: Use Picotls as TLS backend
- libngtcp2_crypto_wolfssl: Use wolfSSL as TLS backend
- libngtcp2_crypto_ossl: Use OpenSSL as TLS backend (experimental)
Because BoringSSL and Picotls are an unversioned product, we only
tested their particular revision. See Requirements section above.
We use Picotls with OpenSSL as crypto backend.
libngtcp2_crypto_ossl has some restrictions for its use because
OpenSSL QUIC TLS API requires us to keep crypto data in tact until it
says that they are no longer used. It also requires us to keep
transport parameter buffer. This extra book keeping is just done for
a couple of TLS messages exchanged during handshake and a couple of
session tickets after handshake. If you absolutely need to use
OpenSSL backend, your application must make sure that:
- Keep `ngtcp2_conn` alive until ``SSL`` object is freed by
``SSL_free``; or
- Call ``SSL_set_app_data(ssl, NULL)`` before calling ``SSL_free``
If you cannot make sure neither of them, it is a good time to migrate
your application to the other alternative (e.g., wolfSSL, aws-lc).
libngtcp2_crypto_quictls and libngtcp2_crypto_ossl cannot be built at
the same time.
The examples directory contains client and server that are linked to
those crypto helper libraries and TLS backends. They are only built
if their corresponding crypto helper library is built:
- qtlsclient: quictls(libressl) client
- qtlsserver: quictls(libressl) server
- gtlsclient: GnuTLS client
- gtlsserver: GnuTLS server
- bsslclient: BoringSSL(aws-lc) client
- bsslserver: BoringSSL(aws-lc) server
- ptlsclient: Picotls client
- ptlsserver: Picotls server
- wsslclient: wolfSSL client
- wsslserver: wolfSSL server
- osslclient: OpenSSL client
- osslserver: OpenSSL server
QUIC protocol extensions
-------------------------
The library implements the following QUIC protocol extensions:
- `An Unreliable Datagram Extension to QUIC
<https://datatracker.ietf.org/doc/html/rfc9221>`_
- `Greasing the QUIC Bit
<https://datatracker.ietf.org/doc/html/rfc9287>`_
- `Compatible Version Negotiation for QUIC
<https://datatracker.ietf.org/doc/html/rfc9368>`_
- `QUIC Version 2
<https://datatracker.ietf.org/doc/html/rfc9369>`_
Configuring Wireshark for QUIC
------------------------------
`Wireshark <https://www.wireshark.org/download.html>`_ can be configured to
analyze QUIC traffic using the following steps:
1. Set *SSLKEYLOGFILE* environment variable:
.. code-block:: shell
$ export SSLKEYLOGFILE=quic_keylog_file
2. Set the port that QUIC uses
Go to *Preferences->Protocols->QUIC* and set the port the program
listens to. In the case of the example application this would be
the port specified on the command line.
3. Set Pre-Master-Secret logfile
Go to *Preferences->Protocols->TLS* and set the *Pre-Master-Secret
log file* to the same value that was specified for *SSLKEYLOGFILE*.
4. Choose the correct network interface for capturing
Make sure you choose the correct network interface for
capturing. For example, if using localhost choose the *loopback*
network interface on macos.
5. Create a filter
Create A filter for the udp.port and set the port to the port the
application is listening to. For example:
.. code-block:: text
udp.port == 7777
License
-------
The MIT License
Copyright (c) 2016 ngtcp2 contributors