{"id":1144,"date":"2024-11-25T17:44:07","date_gmt":"2024-11-25T08:44:07","guid":{"rendered":"https:\/\/bokumin45.server-on.net\/blog\/?p=1144"},"modified":"2025-10-30T12:24:41","modified_gmt":"2025-10-30T03:24:41","slug":"%e3%82%b3%e3%83%bc%e3%83%89%e3%81%a7%e3%81%bf%e3%82%8bwget-2-20","status":"publish","type":"post","link":"https:\/\/www.bokumin.org\/blog\/2024\/11\/25\/%e3%82%b3%e3%83%bc%e3%83%89%e3%81%a7%e3%81%bf%e3%82%8bwget-2-20\/","title":{"rendered":"\u30b3\u30fc\u30c9\u3067\u307f\u308bwget 2.20"},"content":{"rendered":"\n<p class=\"has-medium-font-size\">Viewing wget 2.20 Through Code.<\/p>\n\n\n\n<p>11\u670824\u65e5(\u73fe\u5730\u6642\u9593)\u306bwget 2.20\u304c\u516c\u958b\u3055\u308c\u307e\u3057\u305f\u3002\u4eca\u56de\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u30b3\u30a2\u3068\u306a\u308b\u6a5f\u80fd\u3067\u5927\u5e45\u306a\u6539\u5584\u304c\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u7d39\u4ecb\u3057\u3066\u3044\u3051\u305f\u3089\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5909\u66f4\u304c\u3042\u3063\u305f\u7b87\u6240\u306b\u3064\u3044\u3066\u3001\u4ee5\u4e0b\u306eURL\u304b\u3089\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059<br><a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/blob\/master\/NEWS?ref_type=heads\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/blob\/master\/NEWS?ref_type=heads<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"564\" src=\"https:\/\/bokumin45.server-on.net\/blog\/wp-content\/uploads\/2024\/11\/1732515670266-600x564.jpg\" alt=\"\" class=\"wp-image-1145\" srcset=\"https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2024\/11\/1732515670266-600x564.jpg 600w, https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2024\/11\/1732515670266-300x282.jpg 300w, https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2024\/11\/1732515670266.jpg 615w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted has-medium-font-size\"><\/pre>\n\n\n\n<p>\u4eca\u56de\u3069\u306e\u3088\u3046\u306a\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u3042\u3063\u305f\u306e\u304b\u7c21\u5358\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002\u53c2\u8003\u306b\u306a\u308c\u3070\u5e78\u3044\u3067\u3059\u3002<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u95a2\u4fc2<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Don&#8217;t log URI userinfo to logs<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/dc8966d9060533264501bcd269fec4b2dc443df2\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/dc8966d9060533264501bcd269fec4b2dc443df2<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u69cb\u9020\u4f53\u306bsafe_uri\u304c\u8ffd\u52a0\u3055\u308c\u3001\u3053\u308c\u306fURL\u304b\u3089\u306e\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u542b\u307e\u306a\u3044\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wget_iri *wget_iri_parse(const char *url, const char *encoding)\n{\n\/\/ \u8a8d\u8a3c\u60c5\u5831\u304c\u3042\u308b\u5834\u5408\nif (iri->userinfo) {\n    iri->safe_uri = create_safe_uri(iri);\n} else {\n    \/\/ userinfo\u304c\u306a\u3044\u5834\u5408\u306f\u5143\u306eURI\u3092\u305d\u306e\u307e\u307e\u4f7f\u7528\n    iri->safe_uri = iri->uri;\n}\n\nreturn iri;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">wget_iri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">wget_iri_parse<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">const<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">url,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">const<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">encoding<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u8a8d\u8a3c\u60c5\u5831\u304c\u3042\u308b\u5834\u5408<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">iri-&gt;userinfo<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">iri-&gt;safe_uri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">create_safe_uri<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">iri<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">userinfo\u304c\u306a\u3044\u5834\u5408\u306f\u5143\u306eURI\u3092\u305d\u306e\u307e\u307e\u4f7f\u7528<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">iri-&gt;safe_uri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">iri<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">uri<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> iri<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wget https:\/\/user:password@example.com\/file<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">wget<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">https:\/\/user:password@example.com\/file<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u3063\u3066\u30e6\u30fc\u30b6\u30fc\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u3092\u53d6\u5f97\u3059\u308b\u3068\u304d\u306b\u8a8d\u8a3c\u60c5\u5831\u304c\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306b\u6b8b\u3089\u306a\u3044\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u6642\u306e\u6307\u6458\u4e8b\u9805\u304c\u6e1b\u5c11\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Disable explicit OCSP requests by default<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/c341fcd1dfd57b3cf5a1f5acb84784571fff3a20\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/c341fcd1dfd57b3cf5a1f5acb84784571fff3a20<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\t.check_certificate = 1,\n\t.check_hostname = 1,\n#ifdef WITH_OCSP\n  \/\/ \u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7121\u52b9\u306b\u5909\u66f4\n\t\/\/ .ocsp = 1, \u5909\u66f4\u524d\n\t.ocsp = 0, \/\/ \u5909\u66f4\u5f8c\n\t.ocsp_stapling = 1,\n#endif\n\t.ca_type = WGET_SSL_X509_FMT_PEM,\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.check_certificate<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.check_hostname<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">#ifdef WITH_OCSP<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7121\u52b9\u306b\u5909\u66f4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">.ocsp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.ocsp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.ocsp_stapling<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">#endif<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.ca_type<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">WGET_SSL_X509_FMT_PEM,<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix segfault when OCSP response is missing<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/c556a3226aca0e99191b52218117b7967889a9bf\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/c556a3226aca0e99191b52218117b7967889a9bf<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u30ec\u30b9\u30dd\u30f3\u30b9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u7a7a\u3067\u306a\u3044\u3053\u3068\u304c\u78ba\u8a8d\u3055\u308c\u308b\u90e8\u5206\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ \u5909\u66f4\u524d\ncertid = OCSP_cert_to_id(EVP_sha1(), subject_cert, issuer_cert);\n\nif (!(ocspreq = send_ocsp_request(ocsp_uri, certid, &amp;resp)))\n    return -1;\n\n\/\/ \u5909\u66f4\u5f8c\ncertid = OCSP_cert_to_id(EVP_sha1(), subject_cert, issuer_cert);\n\nif (!(ocspreq = send_ocsp_request(ocsp_uri, certid, &amp;resp)) || !resp || !resp->body)\n    return -1;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">certid<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">OCSP_cert_to_id<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">EVP_sha1<\/span><span style=\"color: #89DDFF\">()<\/span><span style=\"color: #BABED8\">, subject_cert, issuer_cert<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!(<\/span><span style=\"color: #FFCB6B\">ocspreq<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">send_ocsp_request<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">ocsp_uri,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">certid,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">resp<\/span><span style=\"color: #89DDFF\">)))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">certid<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">OCSP_cert_to_id<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">EVP_sha1<\/span><span style=\"color: #89DDFF\">()<\/span><span style=\"color: #BABED8\">, subject_cert, issuer_cert<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!(<\/span><span style=\"color: #FFCB6B\">ocspreq<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">send_ocsp_request<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">ocsp_uri,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">certid,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">resp<\/span><span style=\"color: #89DDFF\">))<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">resp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">resp-&gt;body<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix OCSP verification of first intermediate certificate<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/53a8a88e8479fca04fb17f923b0f40781ee6a253\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/53a8a88e8479fca04fb17f923b0f40781ee6a253<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ if (config.ocsp &amp;&amp; it > nvalid) {\n\/\/ \u30aa\u30d5\u30d0\u30a4\u30ef\u30f3\u30a8\u30e9\u30fc\u306e\u4fee\u6b63\n\t\tif (config.ocsp &amp;&amp; it > = nvalid) {\n\t\t\tchar fingerprint&#91;64 * 2 +1&#93;;\n\t\t\tint revoked;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">if<\/span><span style=\"color: #BABED8\"> (config.ocsp <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">it<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">nvalid<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u30aa\u30d5\u30d0\u30a4\u30ef\u30f3\u30a8\u30e9\u30fc\u306e\u4fee\u6b63<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">config.ocsp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">it<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">nvalid<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #FFCB6B\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fingerprint&#91;<\/span><span style=\"color: #F78C6C\">64<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+1&#93;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #FFCB6B\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">revoked<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>OCSP\u95a2\u9023\u3092\u307e\u3068\u3081\u307e\u3059\u3068<br>\u30fb\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u660e\u793a\u7684\u306aOCSP\u304c\u7121\u52b9\u306b\u306a\u3063\u305f<br>\u30fbOCSP\u30ec\u30b9\u30dd\u30f3\u30b9\u6b20\u843d\u6642\u306e\u30af\u30e9\u30c3\u30b7\u30e5\u3092\u4fee\u6b63<br>\u30fbOCSP\u306e\u4e2d\u9593\u8a3c\u660e\u66f8\u306e\u691c\u8a3c\u30d7\u30ed\u30bb\u30b9\u3092\u6539\u5584<br>\u3068\u3044\u3046\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Disable TCP Fast Open by default<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7a945d31aeb34fc73cf86a494673ae97e069d84d\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7a945d31aeb34fc73cf86a494673ae97e069d84d<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\t.max_redirect = 20,\n\t.max_threads = 5,\n\t.dns_caching = 1,\n\t\/\/ .tcp_fastopen = 1, \u30c7\u30d5\u30a9\u30eb\u30c8\u30671\u304b\u30890\u306b\u5909\u66f4\n\t\/\/ we use 'Wget' here for compatibility, see https:\/\/github.com\/rockdaboot\/wget2\/issues\/314\n\t.user_agent = \"Wget\/\"PACKAGE_VERSION,\n\t.verbose = 1,<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.max_redirect<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">20<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.max_threads<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">5<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.dns_caching<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">.tcp_fastopen<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u30c7\u30d5\u30a9\u30eb\u30c8\u30671\u304b\u30890\u306b\u5909\u66f4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">we<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">use<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">Wget<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">here<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">for<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">compatibility,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">see<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">https:\/\/github.com\/rockdaboot\/wget2\/issues\/314<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.user_agent<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Wget\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">PACKAGE_VERSION,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">.verbose<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #C3E88D\">,<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>TCP Fast Open(TFO)\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7121\u52b9\u306b\u306a\u308a\u307e\u3057\u305f\u3002TFO\u306f<strong>\u7b2c\u4e09\u8005\u304b\u3089\u8ffd\u8de1\u306b\u5229\u7528\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u3063\u305f<\/strong>\u3053\u3068\u3001<strong>TFO\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044\u30df\u30c9\u30eb\u30dc\u30c3\u30af\u30b9\u3068\u306e\u554f\u984c<\/strong>\u304b\u3089\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u3068\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u3092\u8003\u616e\u3057\u305f\u7d50\u679c\u3001\u7121\u52b9\u306b\u306a\u3063\u305f\u307f\u305f\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Allow option &#8211;no-tcp-fastopen to work on Linux kernels &gt;= 4.11<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7929bf887c69ffdcbdfb525825bffba4c9e5d6e8\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7929bf887c69ffdcbdfb525825bffba4c9e5d6e8<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><code>--no-tcp-fastopen<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3092Linux\u30ab\u30fc\u30cd\u30eb4.11\u4ee5\u964d\u3067\u3082\u6a5f\u80fd\u3059\u308b\u3088\u3046\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f\u3002\u30e6\u30fc\u30b6\u30fc\u306b\u9078\u629e\u306e\u4f59\u5730\u3092\u6b8b\u3057\u3066\u3044\u308b\u611f\u3058\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Limit cases where methods are redirected to GET(<\/strong><a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/329d1282caa9ae58105a6b6832138050c492dc28\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/329d1282caa9ae58105a6b6832138050c492dc28<\/a><strong>)<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u6642\u306e\u30e1\u30bd\u30c3\u30c9\u5909\u66f4\u306b\u95a2\u3059\u308b\u53b3\u5bc6\u306a\u5236\u5fa1\u304c\u884c\u308f\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002301,302,303\u306b\u95a2\u3057\u3066\u306fHTTP\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306e\u81ea\u52d5\u5909\u66f4\u3092\u5236\u9650\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u4e0d\u9069\u5207\u306a\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306b\u3088\u308b\u30e1\u30bd\u30c3\u30c9\u5909\u66f4\u304c\u9632\u3050\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\tif (resp->code \/ 100  == 3 &amp;&amp; resp->code != 307) job->redirect_get = 1; \/\/\u5909\u66f4\u524d\n\t\n\t\/\/ \u5909\u66f4\u5f8c\n\tif (!wget_strcasecmp_ascii(resp->req->method, \"POST\"))\n\t\t{\n\t\t\tif (resp->code == 301 || resp->code == 302 || resp->code == 303)\n\t\t\t\tjob->redirect_get = 1;\n\t\t}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">resp-&gt;code<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">100<\/span><span style=\"color: #BABED8\">  <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">resp-&gt;code<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">!=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">307<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> job-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">redirect_get = 1<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strcasecmp_ascii(resp-&gt;req-&gt;method,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">POST<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">resp-&gt;code<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">301<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">resp-&gt;code<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">302<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">resp-&gt;code<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">303<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t<\/span><span style=\"color: #FFCB6B\">job-&gt;redirect_get<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u30d0\u30b0\u306e\u4fee\u6b63<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Don&#8217;t truncate file when -c and -O are combined<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1cb578e3e9e86b32f9a5157a598d8ff0de44bd3c\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1cb578e3e9e86b32f9a5157a598d8ff0de44bd3c<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">-c(\u7d9a\u304d\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9)\u3068-O\uff08\u30d5\u30a1\u30a4\u30eb\u540d\u6307\u5b9a\uff09\u30b3\u30de\u30f3\u30c9\u3092\u5408\u308f\u305b\u3066\u4f7f\u3063\u305f\u6642\u306b\u30d5\u30a1\u30a4\u30eb\u304c\u5207\u308a\u8a70\u3081\u3089\u308c\u308b\u554f\u984c\u304c\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u6307\u5b9a\u306e\u969b\u306b\u3001\u9014\u4e2d\u518d\u958b\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ \u5909\u66f4\u524d\n\t\t} else {\n\/\/ \u5909\u66f4\u5f8c\n\/\/ \u7d99\u7d9a\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u306a\u3044\u5834\u5408\u306f\u5207\u308a\u6368\u3066\u308b\u3088\u3046\u306b\u5909\u66f4\n\t\t} else if (!config.continue_download) {\n\t\t\tint fd = open(config.output_document, O_WRONLY | O_TRUNC | O_BINARY);\n\n\t\t\tif (fd ! = -1)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t} <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u7d99\u7d9a\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u306a\u3044\u5834\u5408\u306f\u5207\u308a\u6368\u3066\u308b\u3088\u3046\u306b\u5909\u66f4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">config.continue_download<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #FFCB6B\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fd<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">open<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">config.output_document,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">O_WRONLY<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">|<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">O_TRUNC<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">|<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">O_BINARY<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">fd<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">!<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-1<\/span><span style=\"color: #89DDFF\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix downloading multiple files via HTTP\/2<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ec27488feadd44b5e126592bc18ff2441f8cae5a\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ec27488feadd44b5e126592bc18ff2441f8cae5a<\/a>)<\/p>\n\n\n\n<p>HTTP\/2\u3067\u306e\u8907\u6570\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306e\u4fee\u6b63\u3068\u3044\u3046\u76f4\u8a33\u3067\u3059\u304c\u3001\u5f93\u6765\u307e\u3067\u306f\u5358\u4e00\u306eTCP\u63a5\u7d9a\u3067\u30b9\u30c8\u30ea\u30fc\u30e0\u306e\u72b6\u614b\u7ba1\u7406\u304c\u4e0d\u9069\u5207\u3067\u3042\u308b\u3053\u3068\u304c\u539f\u56e0\u3067\u3001\u5207\u65ad\u3084\u6df7\u7dda\u304c\u8d77\u304d\u3066\u3044\u307e\u3057\u305f\u3002\u30b3\u30df\u30c3\u30c8\u5c65\u6b74\u3092\u307f\u307e\u3059\u3068\u3001\u4ee5\u4e0b\u306e\u90e8\u5206\u3067\u305d\u308c\u304c\u6539\u5584\u3055\u308c\u3066\u3044\u308b\u306e\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>struct http2_stream_context {\n    wget_http_connection *conn;\n    wget_http_response *resp;\n    wget_decompressor *decompressor;\n    };<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">struct<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">http2_stream_context<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">wget_http_connection<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">conn<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">wget_http_response<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">resp<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">wget_decompressor<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">decompressor<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    }<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong><code>*conn<\/code>\u2192 HTTP\/2\u63a5\u7d9a\u306e\u53c2\u7167\u3092\u4fdd\u6301\u3057\u3001\u5404\u30b9\u30c8\u30ea\u30fc\u30e0\u304c\u3069\u306e\u63a5\u7d9a\u306b\u5c5e\u3057\u3066\u3044\u308b\u304b\u3092\u8ffd\u8de1 <br><code>*resp<\/code>\u2192\u30b9\u30c8\u30ea\u30fc\u30e0\u3054\u3068\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u30c7\u30fc\u30bf\u3092\u500b\u5225\u306b\u7ba1\u7406 <br><code>*decompressor<\/code>\u2192\u5727\u7e2e\u3055\u308c\u305f\u30ec\u30b9\u30dd\u30f3\u30b9\u30c7\u30fc\u30bf\u306e\u89e3\u51cd\u72b6\u614b\u3092\u5404\u30b9\u30c8\u30ea\u30fc\u30e0\u3067\u72ec\u7acb\u3057\u3066\u7ba1\u7406<\/strong><br>\u3053\u308c\u306b\u3088\u3063\u3066\u5404\u30b9\u30c8\u30ea\u30fc\u30e0\u3054\u3068\u306e\u9069\u5207\u306a\u7ba1\u7406\u304c\u53ef\u80fd\u3068\u306a\u308a\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u51e6\u7406\u306b\u95a2\u3057\u3066\u9069\u5207\u306a\u8ffd\u8de1\u304c\u51fa\u6765\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix redirections with &#8211;no-parent<\/strong>\uff08<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/55a4c145c80325b2fb0b1fb3768f31094154e5d3\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/55a4c145c80325b2fb0b1fb3768f31094154e5d3<\/a>\uff09<\/p>\n\n\n\n<p>&#8211;no-parent\u3092\u3064\u3051\u305f\u3068\u304d\u306b\u89aaURL\u306e\u30c1\u30a7\u30c3\u30af\u304c\u7518\u304f\u3066\u6709\u52b9\u306aURL\u3082\u30b9\u30ad\u30c3\u30d7\u3055\u308c\u3066\u3044\u305f\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u304c\u3001\u4eca\u56de\u4fee\u6b63\u3055\u308c\u305f\u3068\u306e\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>if (config.recursive &amp;&amp; !config.parent &amp;&amp; !(flags &amp; URL_FLG_REQUISITE)) {\n    \/\/ \u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u306e\u79fb\u52d5\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5236\u9650\n    bool ok = false;\n\n    \/\/ \u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u4e00\u81f4\u3059\u308b\u304b\u30c1\u30a7\u30c3\u30af\n    for (int it = 0; it &lt; wget_vector_size(parents); it++) {\n        wget_iri *parent = wget_vector_get(parents, it);\n\n        if (!wget_strcmp(parent->host, iri->host)) {\n            if (!parent->dirlen || !wget_strncmp(parent->path, iri->path, parent->dirlen)) {\n                ok = true;\n                break;\n            }\n        }\n    }\n\n    if (!ok) {\n        info_printf(_(\"URL '%s' not followed (parent ascending not allowed)\\n\"), url);\n        goto out;\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">config.recursive<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">config.parent<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!(<\/span><span style=\"color: #FFCB6B\">flags<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">URL_FLG_REQUISITE<\/span><span style=\"color: #89DDFF\">))<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u306e\u79fb\u52d5\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5236\u9650<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">bool<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">ok<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">false<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u4e00\u81f4\u3059\u308b\u304b\u30c1\u30a7\u30c3\u30af<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">it<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">it<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_vector_size<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">parents<\/span><span style=\"color: #89DDFF\">);<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">it++<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">wget_iri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">parent<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_vector_get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">parents,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">it<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strcmp(parent-&gt;host,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">iri<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">host<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">parent-&gt;dirlen<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">wget_strncmp(parent-&gt;path,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">iri<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">path,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">parent<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">dirlen<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">                <\/span><span style=\"color: #FFCB6B\">ok<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">                <\/span><span style=\"color: #89DDFF; font-style: italic\">break<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">            <\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">ok<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">info_printf(_(<\/span><span style=\"color: #FFCB6B\">&quot;URL &#39;%s&#39; not followed (parent ascending not allowed)\\n&quot;<\/span><span style=\"color: #BABED8\">), url)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">goto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix &#8211;no-parent for denormalized paths(<\/strong><a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/9aeab55d09f9df833bca4467b0a209cea2901ede\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/9aeab55d09f9df833bca4467b0a209cea2901ede<\/a><strong>)<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><code>wget_iri_parse()<\/code> \u95a2\u6570\u5185\u3067\u3001<code>normalize_path()<\/code> \u95a2\u6570\u3092\u547c\u3073\u51fa\u3057\u3066IRI\u306e\u30d1\u30b9\u90e8\u5206\u3092\u6b63\u898f\u5316\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\t\tc = *s;\n\t\tif (c) *s++ = 0;\n\t\twget_iri_unescape_inline((char *)iri->path);\n\t\tnormalize_path((char *)iri->path);\u3000\/\/ \u8ffd\u52a0\n\t}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">c<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">s<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">c<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">s++ = 0<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">wget_iri_unescape_inline((char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\">)iri-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">path)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">normalize_path((char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\">)iri-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">path)<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #FFCB6B\">\u3000\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u8ffd\u52a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix status 8 for failed redirection of robots.txt<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/2b1f266ca639b7712a973c1512a2611d5fce7930\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/2b1f266ca639b7712a973c1512a2611d5fce7930<\/a>)<\/p>\n\n\n\n<p>robots.txt\u306e\u30a8\u30e9\u30fc\u304c302\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3067\u3001\u305d\u306e\u5f8c\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u304c404\u30a8\u30e9\u30fc\u3092\u8fd4\u3059\u72b6\u6cc1\u3067\u3001wget2\u304c\u4e0d\u9069\u5207\u306b\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c98\u3067\u7d42\u4e86\u3057\u3066\u3044\u305f\u3068\u3044\u3046\u554f\u984c\u3067\u3059\u3002\u672c\u6765\u3001robots.txt\u306e404\u30a8\u30e9\u30fc\u306f\u7121\u8996\u3055\u308c\u308b\u3079\u304d\u52d5\u4f5c\u3067\u3057\u305f\u304c\u3001\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u306b\u9069\u5207\u306b\u51e6\u7406\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002\u65b0\u3057\u304f\u4ee5\u4e0b\u306e\u884c\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>new_job->robotstxt = job->robotstxt;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">new_job-&gt;robotstxt<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">job<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">robotstxt<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u3063\u3066\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u6642\u306b\u5143\u306e\u30b8\u30e7\u30d6\u304b\u3089\u65b0\u3057\u3044\u30b8\u30e7\u30d6\u306b<code>robotstxt<\/code>\u30d5\u30e9\u30b0\u3092\u30b3\u30d4\u30fc\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u305f\u30ea\u30af\u30a8\u30b9\u30c8\u3082robots.txt\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u3001404\u30a8\u30e9\u30fc\u3082\u9069\u5207\u306b\u51e6\u7406\u304c\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong> Fix IPv6 address representation<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ff881ed20182950accf77cf70bcaf51ec75d1a87\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ff881ed20182950accf77cf70bcaf51ec75d1a87<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>if (sscanf(buf, \"%63&#91;0-9.:&#93; %255&#91;a-zA-Z0-9.-&#93;\", ip, name) != 2) \/\/ \u5909\u66f4\u524d\nif (sscanf(buf, \"%63s %255s\", ip, name) != 2) \/\/ \u5909\u66f4\u5f8c<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">sscanf(buf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">%63&#91;0-9.:&#93; %255&#91;a-zA-Z0-9.-&#93;<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">ip,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">name<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #BABED8\">= <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">) \/\/ \u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">sscanf(buf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">%63s %255s<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">ip,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">name<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #BABED8\">= <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">) \/\/ \u5909\u66f4\u5f8c<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u6587\u5b57\u30af\u30e9\u30b9 <code>[0-9.:]<\/code>\u3092\u524d\u56de\u307e\u3067\u4f7f\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001IPv6 \u30a2\u30c9\u30ec\u30b9\u306e\u4e00\u90e8\u306e\u6709\u52b9\u306a\u6587\u5b57\uff0816\u9032\u6570\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3084\u3001[]\u306a\u3069\uff09\u306f\u53d7\u3051\u4ed8\u3051\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u203b\u5165\u529b63\u6587\u5b57\u3001\u30db\u30b9\u30c8\u540d255\u6587\u5b57\u3068\u3044\u3046\u5236\u9650\u306f\u5f15\u304d\u7d9a\u304d\u7d99\u7d9a\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix &#8211;dns-cache-preload for IPv6<\/strong> (<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ff881ed20182950accf77cf70bcaf51ec75d1a87\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ff881ed20182950accf77cf70bcaf51ec75d1a87<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u4e0a\u8a18\u3068\u540c\u69d8\u306e\u4fee\u6b63\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix &#8211;restrict-file-names to be backwards compatible with wget 1.x<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/284954553613f75e57ef107ceaa06ae4d9dd8c59\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/284954553613f75e57ef107ceaa06ae4d9dd8c59<\/a>)<\/p>\n\n\n\n<p>&#8211;restrict-file-names\u304cwget1.x\u3068\u540c\u69d8\u306e\u51e6\u7406\u3092\u884c\u3048\u308b\u3088\u3046\u306b\u6539\u5584\u3057\u305f\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>--restrict-file-names=windows,ascii,lowercase \/\/ \u8907\u6570\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u30b5\u30dd\u30fc\u30c8\u304c\u53ef\u80fd\u306b<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">--restrict-file-names<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #C3E88D\">windows,ascii,lowercase<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u8907\u6570\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u30b5\u30dd\u30fc\u30c8\u304c\u53ef\u80fd\u306b<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Several improvements to the WolfSSL code(<\/strong><a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1d6632a31c5fbec2145762c5fffcf31af313e47a\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1d6632a31c5fbec2145762c5fffcf31af313e47a<\/a><strong>)<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u30bb\u30df\u30b3\u30ed\u30f3\u306e\u8ffd\u52a0\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/\u5909\u66f4\u524d\n\tXFREE(subject, 0, DYNAMIC_TYPE_OPENSSL)\u3000\n\tXFREE(issuer, 0, DYNAMIC_TYPE_OPENSSL)\n\/\/\u5909\u66f4\u5f8c\n\tXFREE(subject, 0, DYNAMIC_TYPE_OPENSSL);\n\tXFREE(issuer, 0, DYNAMIC_TYPE_OPENSSL);\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">\/\/\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">XFREE(subject,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">DYNAMIC_TYPE_OPENSSL<\/span><span style=\"color: #BABED8\">)\u3000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">XFREE(issuer,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">DYNAMIC_TYPE_OPENSSL<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">XFREE(subject,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">DYNAMIC_TYPE_OPENSSL<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">XFREE(issuer,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">DYNAMIC_TYPE_OPENSSL<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u6a5f\u80fd\u8ffd\u52a0<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Support connecting with HTTP\/1.0 proxies<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/f5344eb415a8b221e1b887d02b31090c6459bfd8\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/f5344eb415a8b221e1b887d02b31090c6459bfd8<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u5f93\u6765\u307e\u3067\u306fHTTP\/1.1\u306e\u307f\u3092\u8a31\u53ef\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u304b\u3089HTTP\/1.0\u3082\u8a31\u53ef\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u3055\u307e\u3056\u307e\u306a\u30d7\u30ed\u30ad\u30b7\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u4e92\u63db\u6027\u304c\u5411\u4e0a\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\tif (wget_strncasecmp_ascii(sbuf, \"HTTP\/1.1 200\", 12)) {\u3000\/\/ \u5909\u66f4\u524d\n\tif (wget_strncasecmp_ascii(sbuf, \"HTTP\/1.1 200\", 12) &amp;&amp; wget_strncasecmp_ascii(sbuf, \"HTTP\/1.0 200\", 12)) { \/\/ \u5909\u66f4\u5f8c<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(sbuf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">HTTP\/1.1 200<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">12<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FFCB6B\">\u3000\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(sbuf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">HTTP\/1.1 200<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">12<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(sbuf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">HTTP\/1.0 200<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">12<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Ignore 1xx HTTP responses for HTTP\/1.1<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/fa638f597c3eefa3cc87493debe4cf075aed3c55\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/fa638f597c3eefa3cc87493debe4cf075aed3c55<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">1xx \u5fdc\u7b54\u3092\u52b9\u679c\u7684\u306b\u7121\u8996\u3057\u3001\u6b21\u306e\u5fdc\u7b54\u3092\u5f85\u3064\u51e6\u7406\u304c\u5b9f\u88c5\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>skip_1xx: \nif (nread &lt; 4) \n    continue;\n\nif (nread - nbytes &lt;= 4) \n\nif (H_10X(resp->code)) { \n    wget_http_free_response(&amp;resp); \n    p += 4; \n    \/\/ \u73fe\u5728\u307e\u3067\u8aad\u3093\u3060\u30d0\u30a4\u30c8\u6570\u3092\u8a08\u7b97\n    nbytes = nread -= (p - buf); \n    \/\/ \u6b8b\u308a\u306e\u30c7\u30fc\u30bf\u3092\u30d0\u30c3\u30d5\u30a1\u306e\u5148\u982d\u306b\u79fb\u52d5\n    memmove(buf, p, nread + 1); \n    goto skip_1xx; \/\/ \u4e2d\u9593\u5fdc\u7b54\u3092\u7121\u8996\u3001\u30dc\u30c7\u30a3\u306f\u60f3\u5b9a\u3057\u306a\u3044\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">skip_1xx:<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">nread<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">continue<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">nread<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">nbytes<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">H_10X(resp-&gt;code<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">wget_http_free_response(<\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">resp<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">p<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u73fe\u5728\u307e\u3067\u8aad\u3093\u3060\u30d0\u30a4\u30c8\u6570\u3092\u8a08\u7b97<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">nbytes<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">nread<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-=<\/span><span style=\"color: #BABED8\"> (p <\/span><span style=\"color: #C3E88D\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">buf<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u6b8b\u308a\u306e\u30c7\u30fc\u30bf\u3092\u30d0\u30c3\u30d5\u30a1\u306e\u5148\u982d\u306b\u79fb\u52d5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">memmove(buf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">p,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">nread<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">goto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">skip_1xx<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u4e2d\u9593\u5fdc\u7b54\u3092\u7121\u8996\u3001\u30dc\u30c7\u30a3\u306f\u60f3\u5b9a\u3057\u306a\u3044<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix ignoring connect timeout (regression)<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/21f41932af46faa9a144b7025d99270353021a61\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/21f41932af46faa9a144b7025d99270353021a61<\/a>)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\tstruct timeval tv = { \n\t\/\/ \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u79d2\u3068\u30de\u30a4\u30af\u30ed\u306b\u5206\u5272\n\t                      .tv_sec = tcp->connect_timeout\/1000,\n\t                      .tv_usec = tcp->connect_timeout % 1000 * 1000 \n\t                      };\n\t\/\/ \u30bd\u30b1\u30c3\u30c8\u30aa\u30d7\u30b7\u30e7\u30f3\uff08SO_SNDTIMEO\uff09\u306e\u8ffd\u52a0\n\tif (setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &amp;tv, sizeof(tv)) == -1)\n\t\terror_printf(_(\"Failed to set socket option SO_SNDTIMEO\\n\"));\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">struct<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">timeval<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tv<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u79d2\u3068\u30de\u30a4\u30af\u30ed\u306b\u5206\u5272<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t                      <\/span><span style=\"color: #FFCB6B\">.tv_sec<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">connect_timeout\/1000,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t                      <\/span><span style=\"color: #FFCB6B\">.tv_usec<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">connect_timeout<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">%<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1000<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1000<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t                      }<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u30bd\u30b1\u30c3\u30c8\u30aa\u30d7\u30b7\u30e7\u30f3\uff08SO_SNDTIMEO\uff09\u306e\u8ffd\u52a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">setsockopt(fd,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">SOL_SOCKET,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">SO_SNDTIMEO,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">tv,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">sizeof<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">tv<\/span><span style=\"color: #89DDFF\">))<\/span><span style=\"color: #BABED8\"> == -1)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">error_printf(_(<\/span><span style=\"color: #FFCB6B\">&quot;Failed to set socket option SO_SNDTIMEO\\n&quot;<\/span><span style=\"color: #BABED8\">))<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-medium-font-size\">\u4fee\u6b63\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u9001\u4fe1\u64cd\u4f5c\u6642\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u304c\u65b0\u3057\u304f\u308f\u304b\u308a\u3084\u3059\u3044\u3088\u3046\u306b\u8ffd\u52a0\u3055\u308c\u305f\u3068\u3044\u3046\u611f\u3058\u3067\u3059\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u63a5\u7d9a\u304c\u9577\u6642\u9593\u30d6\u30ed\u30c3\u30af\u3055\u308c\u308b\u3053\u3068\u3092\u9632\u6b62\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Accept &#8211;progress=dot:&#8230; for backwards compatibility<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/e8f1e99c96a8303421e66b0feda1651a11c8b250\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/e8f1e99c96a8303421e66b0feda1651a11c8b250<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">&#8211;progress\u30aa\u30d7\u30b7\u30e7\u30f3\uff08\u9032\u6357\u8868\u793a\uff09\u306e\u6539\u5584\u304c\u3055\u308c\u307e\u3057\u305f\u3002<code>wget_strncasecmp_ascii<\/code>\u3092\u4f7f\u7528\u3057\u3066\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u524d\u65b9\u4e00\u81f4\u30c1\u30a7\u30c3\u30af\u3092\u884c\u3063\u305f\u308a\u3001<code>val[3] == ':' || val[3] == 0<\/code>\u306b\u3088\u308a\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u5f8c\u306b\u30b3\u30ed\u30f3\u3084\u7d42\u7aef\u6587\u5b57\u304c\u3042\u308b\u5834\u5408\u3082\u8a31\u5bb9\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<br>\u203b<code>dot<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u73fe\u6642\u70b9\u3067\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u60c5\u5831\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u3060\u3051\u3067\u3059\u3002<br>\u307e\u305f\u3001<code>config.force_progress<\/code>\u30d5\u30e9\u30b0\u3092\u8a2d\u5b9a\u3059\u308b\u30ed\u30b8\u30c3\u30af\u3082\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\tif (!wget_strcasecmp_ascii(val, \"none\"))\n\t\t*((char *)opt->var) = PROGRESS_TYPE_NONE;\n\t\t\n\t\/\/ else if (!wget_strncasecmp_ascii(val, \"bar\", 3)) { \/\/ \u5909\u66f4\u524d\n\telse if (!wget_strncasecmp_ascii(val, \"bar\", 3) &amp;&amp; (val&#91;3&#93; == ':' || val&#91;3&#93; == 0)) { \/\/ \u5909\u66f4\u5f8c\n\t\t\n\t\t*((char *)opt->var) = PROGRESS_TYPE_BAR;\n\t\t\n\t\/\/ if (!wget_strncasecmp_ascii(val+3, \":force\", 6) || !wget_strncasecmp_ascii(val+3, \":noscroll:force\", 15)) { \/\/ \u5909\u66f4\u524d\n\t\tif (!wget_strncasecmp_ascii(val+4, \"force\", 5) || !wget_strncasecmp_ascii(val+4, \"noscroll:force\", 14)) { \/\/ \u5909\u66f4\u5f8c\n\t\t\tconfig.force_progress = true;\n\t\t}\n\/\/\t} else if (!wget_strcasecmp_ascii(val, \"dot\")) { \/\/ \u5909\u66f4\u524d\n\t} else if (!wget_strncasecmp_ascii(val, \"dot\", 3) &amp;&amp; (val&#91;3&#93; == ':' || val&#91;3&#93; == 0)) {\u3000\/\/ \u5909\u66f4\u5f8c\n\t\t\/\/ Wget compatibility, whether want to support 'dot' depends on user feedback.\n\t\tinfo_printf(_(\"Progress type '%s' ignored. It is not implemented yet\\n\"), val);\n\t} else {\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strcasecmp_ascii(val,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">none<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">*((char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\">)opt-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">var) = PROGRESS_TYPE_NONE<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">if<\/span><span style=\"color: #BABED8\"> (!wget_strncasecmp_ascii(val, <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">bar<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(val,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">bar<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">val&#91;3&#93;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">:<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">val&#91;3&#93;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">*((char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #BABED8\">)opt-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">var) = PROGRESS_TYPE_BAR<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">if<\/span><span style=\"color: #BABED8\"> (!wget_strncasecmp_ascii(val+3, <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">:force<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">6<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(val+3,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">:noscroll:force<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">15<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(val+4,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">force<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">5<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(val+4,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">noscroll:force<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">14<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #FFCB6B\">config.force_progress<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C3E88D\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">if<\/span><span style=\"color: #BABED8\"> (!wget_strcasecmp_ascii(val, <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">dot<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(val,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">dot<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">val&#91;3&#93;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">:<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">val&#91;3&#93;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FFCB6B\">\u3000\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">Wget<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">compatibility,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">whether<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">want<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">support<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">dot<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">depends<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">user<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">feedback.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">info_printf(_(<\/span><span style=\"color: #FFCB6B\">&quot;Progress type &#39;%s&#39; ignored. It is not implemented yet\\n&quot;<\/span><span style=\"color: #BABED8\">), val)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u3063\u3066\u7570\u306a\u308b\u5f62\u5f0f\u306e\u9032\u6357\u8868\u793a\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u5bfe\u5fdc\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix possible deadlock when combining &#8211;no-clobber and &#8211;no-parent(<\/strong><a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/8ebd0a25f068c34209dd42c6fea4db6e3b381626\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/8ebd0a25f068c34209dd42c6fea4db6e3b381626<\/a><strong>)<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u74b0\u5883\u3067\u306eURL\u306e\u91cd\u8907\u30c1\u30a7\u30c3\u30af\u3068\u30ed\u30c3\u30af\u51e6\u7406\u3001\u518d\u5e30\u7684\u306a\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306e\u6761\u4ef6\u304c\u6539\u5584\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>if (wget_hashmap_put(known_urls, wget_strmemdup(buf.data, buf.length), NULL) == 0) {\u3000\/\/ \u5909\u66f4\u524d\n\n\/\/ \u5909\u66f4\u5f8c\nwget_thread_mutex_lock(known_urls_mutex);\nint rc = wget_hashmap_put(known_urls, wget_strmemdup(buf.data, buf.length), NULL);\nwget_thread_mutex_unlock(known_urls_mutex);\n\nif (rc == 0) {<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">wget_hashmap_put(known_urls,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_strmemdup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">buf.data,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">buf.length<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">NULL<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> == 0) <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FFCB6B\">\u3000\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">wget_thread_mutex_lock(known_urls_mutex<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">rc<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_hashmap_put<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">known_urls,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_strmemdup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">buf.data,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">buf.length<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">NULL<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">wget_thread_mutex_unlock(known_urls_mutex<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">rc<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>if (config.recursive &amp;&amp; (!config.level || (job &amp;&amp; job->level &lt; config.level + config.page_requisites))){ \/\/ \u5909\u66f4\u524d\nif (config.recursive &amp;&amp; (!config.level || !job || (job &amp;&amp; job->level &lt; config.level + config.page_requisites))) { \/\/ \u5909\u66f4\u5f8c<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">config.recursive<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">config.level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">job<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">job-&gt;level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">config.level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">config.page_requisites<\/span><span style=\"color: #89DDFF\">)))<\/span><span style=\"color: #BABED8\">{ <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">config.recursive<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">config.level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">job<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">job<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">job-&gt;level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">config.level<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">config.page_requisites<\/span><span style=\"color: #89DDFF\">)))<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u306e\u5909\u66f4\u306b\u3088\u3063\u3066\u6f5c\u5728\u7684\u306a\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u72b6\u614b\u306e\u30ea\u30b9\u30af\u3092\u8efd\u6e1b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix xattr reading of user.mime_type<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ac9c84b3bab60a0cd1100ac6f189fc526694e95c\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ac9c84b3bab60a0cd1100ac6f189fc526694e95c<\/a>)<\/p>\n\n\n\n<p class=\"has-medium-font-size\">MIME \u30bf\u30a4\u30d7\u8aad\u307f\u53d6\u308a\u306e\u30ed\u30b8\u30c3\u30af\u304c\u7c21\u7565\u5316\u3055\u308c\u3001&#8221;user.mime_type&#8221; \u5c5e\u6027\u306b\u7126\u70b9\u3092\u5f53\u3066\u308b\u5f62\u306b\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\t\tif (read_xattr_metadata(\"user.mimetype\", _mimetype, sizeof(_mimetype), fd) &lt; 0) \/\/ \u5909\u66f4\u524d\n\t\tif (read_xattr_metadata(\"user.mime_type\", _mimetype, sizeof(_mimetype), fd) &lt; 0)\u3000\/\/ \u5909\u66f4\u5f8c<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">read_xattr_metadata(<\/span><span style=\"color: #FFCB6B\">&quot;user.mimetype&quot;<\/span><span style=\"color: #FFCB6B\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">_mimetype,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">sizeof<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">_mimetype<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fd<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> 0) \/\/ \u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">read_xattr_metadata(<\/span><span style=\"color: #FFCB6B\">&quot;user.mime_type&quot;<\/span><span style=\"color: #FFCB6B\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">_mimetype,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">sizeof<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">_mimetype<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fd<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> 0)\u3000\/\/ \u5909\u66f4\u5f8c<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fix robots.txt parser<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/07b15e71f4d72c53fb10fdeb28a188b94b6c35ac\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/07b15e71f4d72c53fb10fdeb28a188b94b6c35ac<\/a>)<\/p>\n\n\n\n<p>robots.txt\u306e\u30ed\u30b8\u30c3\u30af\u304c\u5927\u5e45\u306b\u6539\u5584\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u69d8\u3005\u306a\u5f62\u5f0f\u306e robots.txt \u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u5fdc\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>static bool parse_record_field(const char **data, const char *field, size_t field_length)\n{\n\tadvance_ws(data);\n\n\tif (wget_strncasecmp_ascii(*data, field, field_length))\n\t\treturn false;\n\n\t*data += field_length;\n\tadvance_ws(data);\n\n\tif (**data ! = ':')\n\t\treturn false;\n\n\t*data += 1;\n\tadvance_ws(data);\n\n\treturn true;\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">static<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">bool<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">parse_record_field<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">const<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">**<\/span><span style=\"color: #C3E88D\">data,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">const<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">field,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">size_t<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">field_length<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">advance_ws(data<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">wget_strncasecmp_ascii(*data,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">field,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">field_length<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">false<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">*data<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">field_length<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">advance_ws(data<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(**<\/span><span style=\"color: #BABED8\">data <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #BABED8\"> = <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">:<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">false<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">*data<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">+=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">advance_ws(data<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Add fetchmail compatibility for user\/password in .netrc<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ae24f83fd06d8834188957830eeb043c5b7d5cc9\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/ae24f83fd06d8834188957830eeb043c5b7d5cc9<\/a>)<\/p>\n\n\n\n<p>.netrc \u30d5\u30a1\u30a4\u30eb\u306e\u4e92\u63db\u6027\u3092\u5411\u4e0a\u3059\u308b\u3088\u3046\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ \u5909\u66f4\u524d\nelse if (!strcmp(key, \"login\")) {\n}\nelse if (!strcmp(key, \"password\")) {\n}\n\n\/\/ \u5909\u66f4\u5f8c\nelse if (!strcmp(key, \"login\") || !strcmp(key, \"user\")) {\n    \/\/ \"user\" is for fetchmail compatibility\n    if (!netrc.login)\n        netrc.login = wget_strmemdup(p, linep - p);\n}\nelse if (!strcmp(key, \"password\") || !strcmp(key, \"passwd\")) {\n    \/\/ \"passwd\" is for fetchmail compatibility\n    if (!netrc.password) {\n        if (!escaped)\n            netrc.password = wget_strmemdup(p, linep - p);\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u524d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">password<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\u5909\u66f4\u5f8c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">user<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">user<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">is<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">for<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fetchmail<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">compatibility<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">netrc.login<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">netrc.login<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_strmemdup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">p,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">linep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">p<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">password<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">||<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #FFCB6B\">strcmp(key,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">passwd<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">)) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #FFCB6B\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">passwd<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">is<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">for<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fetchmail<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">compatibility<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">netrc.password<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #FFCB6B\">escaped<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">            <\/span><span style=\"color: #FFCB6B\">netrc.password<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_strmemdup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">p,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">linep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">p<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u30ed\u30b0\u30a4\u30f3\u60c5\u5831\u3084\u30d1\u30b9\u30ef\u30fc\u30c9\u60c5\u5831\u306e\u8aad\u307f\u53d6\u308a\u3092\u62e1\u5f35\u3057\u305f\u5f62\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Improve suport for non-standard cookie timestamps<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7bf93ff6c64520e2931b1c79663851b188ee2016\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/7bf93ff6c64520e2931b1c79663851b188ee2016<\/a>)<\/p>\n\n\n\n<p>\u5f93\u6765\u307e\u3067\u306f\u975e\u6a19\u6e96\u3060\u3063\u305f\u65e5\u4ed8\u5f62\u5f0f\u306b\u5bfe\u5fdc\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<br>\u5177\u4f53\u7684\u306b\u306f\u3001<strong>Sun Nov 26 2023 21:24:47 <\/strong>\u3068\u3044\u3046\u5f62\u5f0f\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>else if (sscanf(s, \" %*s %3s %2d %4d %2d:%2d:%2d\", \/\/ non-standard: Sun Nov 26 2023 21:24:47\n                mname, &amp;day, &amp;year, &amp;hour, &amp;min, &amp;sec) == 6) {\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">sscanf(s,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\"> %*s %3s %2d %4d %2d:%2d:%2d<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/\/<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">non-standard:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">Sun<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">Nov<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">26<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">2023<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">21<\/span><span style=\"color: #C3E88D\">:24:47<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">                <\/span><span style=\"color: #FFCB6B\">mname,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">day,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">year,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">hour,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">min,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">sec<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> == 6) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Add libproxy support<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1a886595e69f54247c70a1e553676407fc8028c7\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/1a886595e69f54247c70a1e553676407fc8028c7<\/a>)<\/p>\n\n\n\n<p>libproxy \u30b5\u30dd\u30fc\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\uff08\u76f4\u8a33\u3067\u3059\u307f\u307e\u305b\u3093\uff09\u3002<br>\u5177\u4f53\u7684\u306b\u306f\u3001<br>configure.ac\u306b&#8211;enable-libproxy\u3092\u8ffd\u52a0<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># libproxy support\nwith_libproxy=no\nAC_ARG_ENABLE(libproxy,\n  &#91;  --enable-libproxy       libproxy support for system wide proxy configuration&#93;)\nAS_IF(&#91;test \"${enable_libproxy}\" = \"yes\"&#93;, [\n  with_libproxy=yes\n  PKG_CHECK_MODULES(&#91;LIBPROXY&#93;, &#91;libproxy-1.0&#93;, [\n    LIBS=\"$LIBPROXY_LIBS $LIBS\"\n    CFLAGS=\"$LIBPROXY_CFLAGS $CFLAGS\"\n    AC_DEFINE(&#91;HAVE_LIBPROXY&#93;, &#91;1&#93;, &#91;Define if using libproxy.&#93;)\n  ])\n])\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># libproxy support<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">with_libproxy<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #C3E88D\">no<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">AC_ARG_ENABLE(libproxy,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">&#91;<\/span><span style=\"color: #BABED8\">  --enable-libproxy       libproxy support <\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #BABED8\"> system wide proxy configuration<\/span><span style=\"color: #89DDFF\">&#93;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">AS_IF(&#91;test<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;${<\/span><span style=\"color: #BABED8\">enable_libproxy<\/span><span style=\"color: #89DDFF\">}&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">yes<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">&#93;,<\/span><span style=\"color: #BABED8\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  with_libproxy<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #C3E88D\">yes<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">PKG_CHECK_MODULES(&#91;LIBPROXY&#93;,<\/span><span style=\"color: #BABED8\"> &#91;libproxy-1.0&#93;, <\/span><span style=\"color: #89DDFF\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    LIBS<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">$LIBPROXY_LIBS<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #BABED8\">$LIBS<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    CFLAGS<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">$LIBPROXY_CFLAGS<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #BABED8\">$CFLAGS<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    AC_DEFINE(<\/span><span style=\"color: #89DDFF\">&#91;<\/span><span style=\"color: #BABED8\">HAVE_LIBPROXY<\/span><span style=\"color: #89DDFF\">&#93;<\/span><span style=\"color: #BABED8\">, <\/span><span style=\"color: #89DDFF\">&#91;<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">&#93;<\/span><span style=\"color: #BABED8\">, <\/span><span style=\"color: #89DDFF\">&#91;<\/span><span style=\"color: #BABED8\">Define <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> using libproxy.<\/span><span style=\"color: #89DDFF\">&#93;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #89DDFF\">]<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">])<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>libget\/http.c\u306b\u30b7\u30b9\u30c6\u30e0\u5168\u4f53\u306e\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\u3092\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n\tpxProxyFactory *pf = px_proxy_factory_new();\n\tif (pf) {\n\t\tchar **proxies = px_proxy_factory_get_proxies(pf, iri->uri);\n\n\t\tif (proxies) {\n\t\t\tif (proxies&#91;0&#93;) {\n\t\t\t\tif (strcmp (proxies&#91;0&#93;, \"direct:\/\/\") != 0) {\n\t\t\t\t\twget_iri *proxy_iri = wget_iri_parse(proxies&#91;0&#93;, \"utf-8\");\n\t\t\t\t\thost = strdup(proxy_iri->host);\n\t\t\t\t\tport = proxy_iri->port;\n\n\t\t\t\t\tif (proxy_iri->scheme == WGET_IRI_SCHEME_HTTP) {\n\t\t\t\t\t\tssl = false;\n\t\t\t\t\t\tconn->proxied = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tssl = true;\n\t\t\t\t\t\tneed_connect = true;\n\t\t\t\t\t}\n\t\t\t\t\twget_iri_free(&amp;proxy_iri);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpx_proxy_factory_free_proxies(proxies);\n\t\t}\n\n\t\tpx_proxy_factory_free (pf);\n\t}\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">pxProxyFactory<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">pf<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">px_proxy_factory_new<\/span><span style=\"color: #89DDFF\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">pf<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">**<\/span><span style=\"color: #C3E88D\">proxies<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">px_proxy_factory_get_proxies<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">pf,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">iri<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">uri<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">proxies<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">proxies&#91;0&#93;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">strcmp<\/span><span style=\"color: #BABED8\"> (proxies&#91;0&#93;, <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">direct:\/\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">!<\/span><span style=\"color: #BABED8\">= <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #BABED8\">) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">wget_iri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8\">*<\/span><span style=\"color: #C3E88D\">proxy_iri<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">wget_iri_parse<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">proxies&#91;0&#93;,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">utf-8<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">host<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">strdup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">proxy_iri-&gt;host<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proxy_iri<\/span><span style=\"color: #BABED8\">-<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">proxy_iri-&gt;scheme<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">WGET_IRI_SCHEME_HTTP<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">ssl<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">false<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">conn-&gt;proxied<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">ssl<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">need_connect<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t\t<\/span><span style=\"color: #FFCB6B\">wget_iri_free(<\/span><span style=\"color: #89DDFF\">&amp;<\/span><span style=\"color: #FFCB6B\">proxy_iri<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #FFCB6B\">px_proxy_factory_free_proxies(proxies<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t<\/span><span style=\"color: #FFCB6B\">px_proxy_factory_free<\/span><span style=\"color: #BABED8\"> (pf)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u3063\u3066libproxy \u3092\u4f7f\u7528\u3057\u3066\u3001\u63a5\u7d9a\u5148\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u30d7\u30ed\u30ad\u30b7\u3092\u81ea\u52d5\u7684\u306b\u9078\u629e\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u305d\u306e\u4ed6<\/strong><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Add instruction on how to cross-build wget2.exe via docke<\/strong>(<a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/045976cf8f046477efea081d4ea9e336cb5ce15b\">https:\/\/gitlab.com\/gnuwget\/wget2\/-\/commit\/045976cf8f046477efea081d4ea9e336cb5ce15b<\/a>)<\/p>\n\n\n\n<p>windows\u306e\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30eb\u7528\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u624b\u9806\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002<br>\u8a73\u7d30\u306f\u30ea\u30f3\u30af\u3092\u53c2\u7167\u3057\u3066\u3082\u3089\u3046\u3068\u52a9\u304b\u308a\u307e\u3059\u3002<br>\u8981\u7d04\u3059\u308b\u3068\u3001<br>1\uff0eDockerfile\u3092\u4f7f\u7528\u3057\u3066\u30af\u30ed\u30b9\u30b3\u30f3\u30d1\u30a4\u30eb\u74b0\u5883\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<br>2.   Windows\u7528\u306e\u9759\u7684\u30d0\u30a4\u30ca\u30ea (<code>wget2.exe<\/code>) \u3092\u30d3\u30eb\u30c9<br>3.   \u751f\u6210\u3055\u308c\u305f\u30d0\u30a4\u30ca\u30ea\u3092\u30db\u30b9\u30c8\u30de\u30b7\u30f3\u306b\u30b3\u30d4\u30fc<br>\u203b\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u30c7\u30d0\u30c3\u30b0\u30b7\u30f3\u30dc\u30eb\u3092\u524a\u9664\u3057\u305f\u308a\u3001\u5b9f\u884c\u53ef\u80fd\u30d5\u30a1\u30a4\u30eb\u3092\u5727\u7e2e\u3057\u305f\u308a\u3059\u308b\u30b9\u30c6\u30c3\u30d7\u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b<br>\u3068\u3044\u3046\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Don&#8217;t request preferred mime type for single file downloads<br>Slightly improved compatibility with LibreSSL<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u3053\u306e2\u9805\u76ee\u306b\u3064\u3044\u3066\u306f\u3001\u30b3\u30df\u30c3\u30c8\u3092\u63a2\u3057\u307e\u3057\u305f\u304c\u305d\u308c\u3089\u3057\u304d\u3082\u306e\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4eca\u5f8c\u66f4\u65b0\u4e88\u5b9a\u304b\u3082\u3057\u308c\u307e\u305b\u3093<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u307e\u3068\u3081<\/strong><\/p>\n\n\n\n<p>\u4eca\u56de\u306e\u30ea\u30ea\u30fc\u30b9\u306f\u6280\u8853\u6539\u5584\u4ee5\u4e0a\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316\u3068\u3057\u3066\u3001\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u4fdd\u8b77\u3001OCSP\u306e\u5236\u5fa1\u3001\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u3092\u8003\u616e\u3057\u305fTCP\u8a2d\u5b9a\u3001\u305d\u3057\u3066\u3088\u308a\u5b89\u5168\u306a\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u51e6\u7406\u304c\u8ffd\u52a0\u30fb\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002<br>URI\u306e\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u30ed\u30b0\u306b\u8a18\u9332\u3057\u306a\u3044\u3053\u3068\u3067\u8a8d\u8a3c\u60c5\u5831\u306e\u6f0f\u6d29\u30ea\u30b9\u30af\u3092\u4f4e\u6e1b\u3057\u3001TCP Fast Open\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7121\u52b9\u5316\u3059\u308b\u3053\u3068\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u306e\u53ef\u80fd\u6027\u3092\u6291\u5236\u3057\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001HTTP\/2\u3067\u306e\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u6642\u306e\u5b89\u5b9a\u6027\u5411\u4e0a\u3084\u3001robots.txt\u306e\u89e3\u6790\u6539\u5584\u306a\u3069\u3001\u5b9f\u8df5\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u4fe1\u983c\u6027\u306e\u5f37\u5316\u306b\u7126\u70b9\u3092\u5f53\u3066\u3066\u3044\u308b\u3088\u3046\u306b\u611f\u3058\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u304a\u308f\u308a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Viewing wget 2.20 Through Code. 11\u670824\u65e5(\u73fe\u5730\u6642\u9593)\u306bwget 2.20\u304c\u516c\u958b\u3055\u308c\u307e\u3057\u305f\u3002\u4eca\u56de\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u30b3\u30a2\u3068\u306a\u308b\u6a5f\u80fd\u3067\u5927\u5e45\u306a\u6539\u5584\u304c\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u7d39\u4ecb\u3057\u3066\u3044\u3051\u305f\u3089\u3068\u601d\u3044\u307e\u3059\u3002 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[153,78],"tags":[67,86,87],"class_list":["post-1144","post","type-post","status-publish","format-standard","hentry","category-linux","category-updates","tag-linux","tag-wget","tag-wget2"],"_links":{"self":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/comments?post=1144"}],"version-history":[{"count":21,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1144\/revisions"}],"predecessor-version":[{"id":2004,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1144\/revisions\/2004"}],"wp:attachment":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/media?parent=1144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/categories?post=1144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/tags?post=1144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}