Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2102558/?format=api
{ "id": 2102558, "url": "http://patchwork.ozlabs.org/api/patches/2102558/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20250625132108.3292932-6-jerome.forissier@linaro.org/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20250625132108.3292932-6-jerome.forissier@linaro.org>", "list_archive_url": null, "date": "2025-06-25T13:19:13", "name": "[v4,05/13] lwip: split net/lwip/wget.c", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "ab5608da062169b8f32ae65d57bc274b73b2feb5", "submitter": { "id": 69192, "url": "http://patchwork.ozlabs.org/api/people/69192/?format=api", "name": "Jerome Forissier", "email": "jerome.forissier@linaro.org" }, "delegate": { "id": 157425, "url": "http://patchwork.ozlabs.org/api/users/157425/?format=api", "username": "jforissier", "first_name": "Jerome", "last_name": "Forissier", "email": "jerome.forissier@linaro.org" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20250625132108.3292932-6-jerome.forissier@linaro.org/mbox/", "series": [ { "id": 462405, "url": "http://patchwork.ozlabs.org/api/series/462405/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=462405", "date": "2025-06-25T13:19:11", "name": "sntp for NET_LWIP", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/462405/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2102558/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2102558/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=mK59m9Vp;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.b=\"mK59m9Vp\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org", "phobos.denx.de;\n spf=pass smtp.mailfrom=jerome.forissier@linaro.org" ], "Received": [ "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature ECDSA (secp384r1))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4bS2ZJ40Yrz1ydW\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Jun 2025 23:23:20 +1000 (AEST)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id B511582E08;\n\tWed, 25 Jun 2025 15:21:49 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id C6F6A82D83; Wed, 25 Jun 2025 15:21:42 +0200 (CEST)", "from mail-wr1-x434.google.com (mail-wr1-x434.google.com\n [IPv6:2a00:1450:4864:20::434])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 6E1F082E40\n for <u-boot@lists.denx.de>; Wed, 25 Jun 2025 15:21:32 +0200 (CEST)", "by mail-wr1-x434.google.com with SMTP id\n ffacd0b85a97d-3a6d1369d4eso1099968f8f.2\n for <u-boot@lists.denx.de>; Wed, 25 Jun 2025 06:21:32 -0700 (PDT)", "from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-3a6e8068fd0sm4760042f8f.38.2025.06.25.06.21.30\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 25 Jun 2025 06:21:31 -0700 (PDT)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1750857692; x=1751462492; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=p+m7C3uVBIMXLlK/DLH6/183foU3i6sc+JArGralzAU=;\n b=mK59m9Vp6B8a5Wf7NXb6772dmdAjpjHRNiPwzn2RFY3lBeZBLsAmnHMNa+7szwtR3f\n UhvU4bLf+ZgHRmGZ6DMWCLJevSwxn28zza3TLUdfYiHpcu6OFjAaOhFkbM3Ds7Dgbti2\n NSV5/klSZc9Tg1cYROS3CX+iM0yGar+9MUzodeEEW1N4HzJgk9jQc8gTIiTqfu17eZcC\n UMNzK2irGNnCh8BQnM3gr/hOAmDRkYH1zm9FJMErSBJ9IfjOYC4CJG03hpPrzb440zmY\n nIL0+OA3tF4cyVRirQvSF2aLnDVFdVyh4ivVRXWlRVScDnQj7IFqlAN711uC2seSXxHW\n NnAQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1750857692; x=1751462492;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=p+m7C3uVBIMXLlK/DLH6/183foU3i6sc+JArGralzAU=;\n b=Dzzh9GoAyvsGlVVqiaqug8aysasdi1izEzx18b3JQxwJf+JdJi9mbI9KXjUr42pzvP\n kvvJ/0Y51N1pj96+8Rs/LXtJyYldyEgcz6btCVQqh3ODenHNOO8PmViSju2/yLSmmUhf\n 1lJADBQxBubZ7a2YXM/fV4PVzIxVPvEeNXwgVUfWofTf5aTAreZY2HT3PloMcSTkD6ir\n Zy3UOYodk9F2fomPN2dsOZU5r6jTfzYEfao2qbvqkl+l1sa9mIF4P4fKNAjkbCGonPYe\n 5sV8KPN27CzP0UWj3Zt4DNfdK6CGej7McXmgk4BAGph4Mpw4nAfkhKo2G4Il+MsbY7gj\n rlfQ==", "X-Gm-Message-State": "AOJu0Yx8pTj+V5hA2vQACIUoLASBWOLshfa/qvKogn8mDUpoSKRLMomJ\n d4BCfPklHr3BCoVBtb81U7L6r47HtIBS2aKi6q3ASD57+DLzXkeKhXpKrUrndEGG/VKUxfhW0NJ\n BAg82xp8=", "X-Gm-Gg": "ASbGncvIm0rQeMRA/oGpPlzYCIi0QB+SAU1gRzxN4jNf4Lhxrfa6ryu6YAK8o7WmioO\n ++HT9dFpCvsn9nohditT8qvF5xGRE2pxOnRue/MincmuiEgVqYDpMjTOOM/HjWdP2FsoDQQi7gZ\n ZoLLYz6OvXQPxS8cah12C7r3XfJjdHuYPuqGHzPOOEHCSxiHz0/ASTjTiz9jVHg8C+xwxMuUmel\n tWkESdEaJAI4s9qari61Q/utlj2+5peHl0fUNNkVf/S2kcdNY90lW1Y5bQp+W+mJ+QmQbj5Kmm9\n tDzh2QosZCG4kt+4ZqonBkqw33Zm5zN5hghXQovOEmwGMctO4pvlQG4D1v/B1KGbZmJofFc=", "X-Google-Smtp-Source": "\n AGHT+IGDw4PFcKn5mxs1AXZ/ur8IJVi4QAp+1wSzewWBQHzUWMAmqhSGcib+9ymiaXLdYHYjxZgP8A==", "X-Received": "by 2002:a05:6000:650:b0:3a4:df80:7284 with SMTP id\n ffacd0b85a97d-3a6ed60c8e9mr2216793f8f.1.1750857691498;\n Wed, 25 Jun 2025 06:21:31 -0700 (PDT)", "From": "Jerome Forissier <jerome.forissier@linaro.org>", "To": "U-Boot mailing list <u-boot@lists.denx.de>", "Cc": "Jerome Forissier <jerome.forissier@linaro.org>,\n Adriano Cordova <adrianox@gmail.com>,\n Heinrich Schuchardt <xypron.glpk@gmx.de>,\n Ilias Apalodimas <ilias.apalodimas@linaro.org>,\n Joe Hershberger <joe.hershberger@ni.com>,\n Michael Walle <mwalle@kernel.org>, Ramon Fried <rfried.dev@gmail.com>,\n Simon Glass <sjg@chromium.org>, Tom Rini <trini@konsulko.com>", "Subject": "[PATCH v4 05/13] lwip: split net/lwip/wget.c", "Date": "Wed, 25 Jun 2025 15:19:13 +0200", "Message-ID": "<20250625132108.3292932-6-jerome.forissier@linaro.org>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20250625132108.3292932-1-jerome.forissier@linaro.org>", "References": "<20250625132108.3292932-1-jerome.forissier@linaro.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "Split net/lwip/wget.c in two: one part which implements CONFIG_WGET\nstays in net/ while the part that implements CONFIG_CMD_WGET is moved\ninto cmd/.\n\nSigned-off-by: Jerome Forissier <jerome.forissier@linaro.org>\n---\n\n(no changes since v3)\n\nChanges in v3:\n- Remove WGET_CACERT guard around the auth_mode enum and the extern\n variables in include/net-lwip.h\n- Fix build with WGET_CACERT=n and WGET_CACERT_BUILTIN=y\n\nChanges in v2:\n- New patch\n\n cmd/lwip/wget.c | 195 +++++++++++++++++++++++++++++++++++++++++++\n include/net-lwip.h | 14 ++++\n net/lwip/wget.c | 202 +--------------------------------------------\n 3 files changed, 211 insertions(+), 200 deletions(-)", "diff": "diff --git a/cmd/lwip/wget.c b/cmd/lwip/wget.c\nindex 3f5b9952c93..902d155727b 100644\n--- a/cmd/lwip/wget.c\n+++ b/cmd/lwip/wget.c\n@@ -2,7 +2,9 @@\n /* Copyright (C) 2024-2025 Linaro Ltd. */\n \n #include <command.h>\n+#include <image.h>\n #include <net.h>\n+#include <lwip/altcp_tls.h>\n \n U_BOOT_CMD(wget, 4, 1, do_wget,\n \t \"boot image via network using HTTP/HTTPS protocol\"\n@@ -24,3 +26,196 @@ U_BOOT_CMD(wget, 4, 1, do_wget,\n #endif\n #endif\n );\n+\n+#if CONFIG_IS_ENABLED(WGET_CACERT) || CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n+char *cacert;\n+size_t cacert_size;\n+enum auth_mode cacert_auth_mode = AUTH_OPTIONAL;\n+\n+#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n+extern const char builtin_cacert[];\n+extern const size_t builtin_cacert_size;\n+bool cacert_initialized;\n+#endif\n+\n+static int _set_cacert(const void *addr, size_t sz)\n+{\n+\tmbedtls_x509_crt crt;\n+\tvoid *p;\n+\tint ret;\n+\n+\tif (cacert)\n+\t\tfree(cacert);\n+\n+\tif (!addr) {\n+\t\tcacert = NULL;\n+\t\tcacert_size = 0;\n+\t\treturn CMD_RET_SUCCESS;\n+\t}\n+\n+\tp = malloc(sz);\n+\tif (!p)\n+\t\treturn CMD_RET_FAILURE;\n+\tcacert = p;\n+\tcacert_size = sz;\n+\n+\tmemcpy(cacert, (void *)addr, sz);\n+\n+\tmbedtls_x509_crt_init(&crt);\n+\tret = mbedtls_x509_crt_parse(&crt, cacert, cacert_size);\n+\tif (ret) {\n+\t\tif (!wget_info->silent)\n+\t\t\tprintf(\"Could not parse certificates (%d)\\n\", ret);\n+\t\tfree(cacert);\n+\t\tcacert = NULL;\n+\t\tcacert_size = 0;\n+\t\treturn CMD_RET_FAILURE;\n+\t}\n+\n+#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n+\tcacert_initialized = true;\n+#endif\n+\treturn CMD_RET_SUCCESS;\n+}\n+\n+#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n+int set_cacert_builtin(void)\n+{\n+\tcacert_auth_mode = AUTH_REQUIRED;\n+\treturn _set_cacert(builtin_cacert, builtin_cacert_size);\n+}\n+#endif\n+#endif /* CONFIG_WGET_CACERT || CONFIG_WGET_BUILTIN_CACERT */\n+\n+#if CONFIG_IS_ENABLED(WGET_CACERT)\n+static int set_auth(enum auth_mode auth)\n+{\n+\tcacert_auth_mode = auth;\n+\n+\treturn CMD_RET_SUCCESS;\n+}\n+\n+static int set_cacert(char * const saddr, char * const ssz)\n+{\n+\tulong addr, sz;\n+\n+\taddr = hextoul(saddr, NULL);\n+\tsz = hextoul(ssz, NULL);\n+\n+\treturn _set_cacert((void *)addr, sz);\n+}\n+#endif\n+\n+/*\n+ * Legacy syntax support\n+ * Convert [<server_name_or_ip>:]filename into a URL if needed\n+ */\n+static int parse_legacy_arg(char *arg, char *nurl, size_t rem)\n+{\n+\tchar *p = nurl;\n+\tsize_t n;\n+\tchar *col = strchr(arg, ':');\n+\tchar *env;\n+\tchar *server;\n+\tchar *path;\n+\n+\tif (strstr(arg, \"http\") == arg) {\n+\t\tn = snprintf(nurl, rem, \"%s\", arg);\n+\t\tif (n < 0 || n > rem)\n+\t\t\treturn -1;\n+\t\treturn 0;\n+\t}\n+\n+\tn = snprintf(p, rem, \"%s\", \"http://\");\n+\tif (n < 0 || n > rem)\n+\t\treturn -1;\n+\tp += n;\n+\trem -= n;\n+\n+\tif (col) {\n+\t\tn = col - arg;\n+\t\tserver = arg;\n+\t\tpath = col + 1;\n+\t} else {\n+\t\tenv = env_get(\"httpserverip\");\n+\t\tif (!env)\n+\t\t\tenv = env_get(\"serverip\");\n+\t\tif (!env) {\n+\t\t\tlog_err(\"error: httpserver/serverip has to be set\\n\");\n+\t\t\treturn -1;\n+\t\t}\n+\t\tn = strlen(env);\n+\t\tserver = env;\n+\t\tpath = arg;\n+\t}\n+\n+\tif (rem < n)\n+\t\treturn -1;\n+\tstrncpy(p, server, n);\n+\tp += n;\n+\trem -= n;\n+\tif (rem < 1)\n+\t\treturn -1;\n+\t*p = '/';\n+\tp++;\n+\trem--;\n+\tn = strlen(path);\n+\tif (rem < n)\n+\t\treturn -1;\n+\tstrncpy(p, path, n);\n+\tp += n;\n+\trem -= n;\n+\tif (rem < 1)\n+\t\treturn -1;\n+\t*p = '\\0';\n+\n+\treturn 0;\n+}\n+\n+int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])\n+{\n+\tchar *end;\n+\tchar *url;\n+\tulong dst_addr;\n+\tchar nurl[1024];\n+\n+#if CONFIG_IS_ENABLED(WGET_CACERT)\n+\tif (argc == 4 && !strncmp(argv[1], \"cacert\", strlen(\"cacert\")))\n+\t\treturn set_cacert(argv[2], argv[3]);\n+\tif (argc == 3 && !strncmp(argv[1], \"cacert\", strlen(\"cacert\"))) {\n+#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n+\t\tif (!strncmp(argv[2], \"builtin\", strlen(\"builtin\")))\n+\t\t\treturn set_cacert_builtin();\n+#endif\n+\t\tif (!strncmp(argv[2], \"none\", strlen(\"none\")))\n+\t\t\treturn set_auth(AUTH_NONE);\n+\t\tif (!strncmp(argv[2], \"optional\", strlen(\"optional\")))\n+\t\t\treturn set_auth(AUTH_OPTIONAL);\n+\t\tif (!strncmp(argv[2], \"required\", strlen(\"required\")))\n+\t\t\treturn set_auth(AUTH_REQUIRED);\n+\t\treturn CMD_RET_USAGE;\n+\t}\n+#endif\n+\n+\tif (argc < 2 || argc > 3)\n+\t\treturn CMD_RET_USAGE;\n+\n+\tdst_addr = hextoul(argv[1], &end);\n+\tif (end == (argv[1] + strlen(argv[1]))) {\n+\t\tif (argc < 3)\n+\t\t\treturn CMD_RET_USAGE;\n+\t\turl = argv[2];\n+\t} else {\n+\t\tdst_addr = image_load_addr;\n+\t\turl = argv[1];\n+\t}\n+\n+\tif (parse_legacy_arg(url, nurl, sizeof(nurl)))\n+\t\treturn CMD_RET_FAILURE;\n+\n+\twget_info = &default_wget_info;\n+\tif (wget_do_request(dst_addr, nurl))\n+\t\treturn CMD_RET_FAILURE;\n+\n+\treturn CMD_RET_SUCCESS;\n+}\ndiff --git a/include/net-lwip.h b/include/net-lwip.h\nindex b762956e8fd..9c1167482e9 100644\n--- a/include/net-lwip.h\n+++ b/include/net-lwip.h\n@@ -6,6 +6,20 @@\n #include <lwip/ip4.h>\n #include <lwip/netif.h>\n \n+/* HTTPS authentication mode */\n+enum auth_mode {\n+\tAUTH_NONE,\n+\tAUTH_OPTIONAL,\n+\tAUTH_REQUIRED,\n+};\n+\n+extern char *cacert;\n+extern size_t cacert_size;\n+extern enum auth_mode cacert_auth_mode;\n+extern bool cacert_initialized;\n+\n+int set_cacert_builtin(void);\n+\n enum proto_t {\n \tTFTPGET\n };\ndiff --git a/net/lwip/wget.c b/net/lwip/wget.c\nindex ea1113e18b1..539812b68e9 100644\n--- a/net/lwip/wget.c\n+++ b/net/lwip/wget.c\n@@ -5,7 +5,6 @@\n #include <console.h>\n #include <display_options.h>\n #include <efi_loader.h>\n-#include <image.h>\n #include <linux/kconfig.h>\n #include <lwip/apps/http_client.h>\n #include \"lwip/altcp_tls.h\"\n@@ -137,72 +136,6 @@ static int parse_url(char *url, char *host, u16 *port, char **path,\n \treturn 0;\n }\n \n-/*\n- * Legacy syntax support\n- * Convert [<server_name_or_ip>:]filename into a URL if needed\n- */\n-static int parse_legacy_arg(char *arg, char *nurl, size_t rem)\n-{\n-\tchar *p = nurl;\n-\tsize_t n;\n-\tchar *col = strchr(arg, ':');\n-\tchar *env;\n-\tchar *server;\n-\tchar *path;\n-\n-\tif (strstr(arg, \"http\") == arg) {\n-\t\tn = snprintf(nurl, rem, \"%s\", arg);\n-\t\tif (n < 0 || n > rem)\n-\t\t\treturn -1;\n-\t\treturn 0;\n-\t}\n-\n-\tn = snprintf(p, rem, \"%s\", \"http://\");\n-\tif (n < 0 || n > rem)\n-\t\treturn -1;\n-\tp += n;\n-\trem -= n;\n-\n-\tif (col) {\n-\t\tn = col - arg;\n-\t\tserver = arg;\n-\t\tpath = col + 1;\n-\t} else {\n-\t\tenv = env_get(\"httpserverip\");\n-\t\tif (!env)\n-\t\t\tenv = env_get(\"serverip\");\n-\t\tif (!env) {\n-\t\t\tlog_err(\"error: httpserver/serverip has to be set\\n\");\n-\t\t\treturn -1;\n-\t\t}\n-\t\tn = strlen(env);\n-\t\tserver = env;\n-\t\tpath = arg;\n-\t}\n-\n-\tif (rem < n)\n-\t\treturn -1;\n-\tstrncpy(p, server, n);\n-\tp += n;\n-\trem -= n;\n-\tif (rem < 1)\n-\t\treturn -1;\n-\t*p = '/';\n-\tp++;\n-\trem--;\n-\tn = strlen(path);\n-\tif (rem < n)\n-\t\treturn -1;\n-\tstrncpy(p, path, n);\n-\tp += n;\n-\trem -= n;\n-\tif (rem < 1)\n-\t\treturn -1;\n-\t*p = '\\0';\n-\n-\treturn 0;\n-}\n-\n /**\n * store_block() - copy received data\n *\n@@ -337,93 +270,9 @@ static err_t httpc_headers_done_cb(httpc_state_t *connection, void *arg, struct\n \treturn ERR_OK;\n }\n \n-#if CONFIG_IS_ENABLED(WGET_HTTPS)\n-enum auth_mode {\n-\tAUTH_NONE,\n-\tAUTH_OPTIONAL,\n-\tAUTH_REQUIRED,\n-};\n-\n-static char *cacert;\n-static size_t cacert_size;\n-static enum auth_mode cacert_auth_mode = AUTH_OPTIONAL;\n-#endif\n-\n-#if CONFIG_IS_ENABLED(WGET_CACERT)\n-static int set_auth(enum auth_mode auth)\n-{\n-\tcacert_auth_mode = auth;\n-\n-\treturn CMD_RET_SUCCESS;\n-}\n-#endif\n-\n-#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n-extern const char builtin_cacert[];\n-extern const size_t builtin_cacert_size;\n-static bool cacert_initialized;\n-#endif\n-\n-#if CONFIG_IS_ENABLED(WGET_CACERT) || CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n-static int _set_cacert(const void *addr, size_t sz)\n-{\n-\tmbedtls_x509_crt crt;\n-\tvoid *p;\n-\tint ret;\n-\n-\tif (cacert)\n-\t\tfree(cacert);\n-\n-\tif (!addr) {\n-\t\tcacert = NULL;\n-\t\tcacert_size = 0;\n-\t\treturn CMD_RET_SUCCESS;\n-\t}\n-\n-\tp = malloc(sz);\n-\tif (!p)\n-\t\treturn CMD_RET_FAILURE;\n-\tcacert = p;\n-\tcacert_size = sz;\n-\n-\tmemcpy(cacert, (void *)addr, sz);\n-\n-\tmbedtls_x509_crt_init(&crt);\n-\tret = mbedtls_x509_crt_parse(&crt, cacert, cacert_size);\n-\tif (ret) {\n-\t\tif (!wget_info->silent)\n-\t\t\tprintf(\"Could not parse certificates (%d)\\n\", ret);\n-\t\tfree(cacert);\n-\t\tcacert = NULL;\n-\t\tcacert_size = 0;\n-\t\treturn CMD_RET_FAILURE;\n-\t}\n-\n-#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n-\tcacert_initialized = true;\n-#endif\n-\treturn CMD_RET_SUCCESS;\n-}\n-\n-#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n-static int set_cacert_builtin(void)\n-{\n-\treturn _set_cacert(builtin_cacert, builtin_cacert_size);\n-}\n-#endif\n \n #if CONFIG_IS_ENABLED(WGET_CACERT)\n-static int set_cacert(char * const saddr, char * const ssz)\n-{\n-\tulong addr, sz;\n-\n-\taddr = hextoul(saddr, NULL);\n-\tsz = hextoul(ssz, NULL);\n-\n-\treturn _set_cacert((void *)addr, sz);\n-}\n #endif\n-#endif /* CONFIG_WGET_CACERT || CONFIG_WGET_BUILTIN_CACERT */\n \n int wget_do_request(ulong dst_addr, char *uri)\n {\n@@ -466,6 +315,7 @@ int wget_do_request(ulong dst_addr, char *uri)\n \t\tchar *ca;\n \t\tsize_t ca_sz;\n \n+#if CONFIG_IS_ENABLED(WGET_CACERT) || CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n #if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n \t\tif (!cacert_initialized)\n \t\t\tset_cacert_builtin();\n@@ -492,7 +342,7 @@ int wget_do_request(ulong dst_addr, char *uri)\n \t\t\t * with no verification if not.\n \t\t\t */\n \t\t}\n-\n+#endif\n \t\tif (!ca && !wget_info->silent) {\n \t\t\tprintf(\"WARNING: no CA certificates, \");\n \t\t\tprintf(\"HTTPS connections not authenticated\\n\");\n@@ -541,54 +391,6 @@ int wget_do_request(ulong dst_addr, char *uri)\n \treturn -1;\n }\n \n-int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])\n-{\n-\tchar *end;\n-\tchar *url;\n-\tulong dst_addr;\n-\tchar nurl[1024];\n-\n-#if CONFIG_IS_ENABLED(WGET_CACERT)\n-\tif (argc == 4 && !strncmp(argv[1], \"cacert\", strlen(\"cacert\")))\n-\t\treturn set_cacert(argv[2], argv[3]);\n-\tif (argc == 3 && !strncmp(argv[1], \"cacert\", strlen(\"cacert\"))) {\n-#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT)\n-\t\tif (!strncmp(argv[2], \"builtin\", strlen(\"builtin\")))\n-\t\t\treturn set_cacert_builtin();\n-#endif\n-\t\tif (!strncmp(argv[2], \"none\", strlen(\"none\")))\n-\t\t\treturn set_auth(AUTH_NONE);\n-\t\tif (!strncmp(argv[2], \"optional\", strlen(\"optional\")))\n-\t\t\treturn set_auth(AUTH_OPTIONAL);\n-\t\tif (!strncmp(argv[2], \"required\", strlen(\"required\")))\n-\t\t\treturn set_auth(AUTH_REQUIRED);\n-\t\treturn CMD_RET_USAGE;\n-\t}\n-#endif\n-\n-\tif (argc < 2 || argc > 3)\n-\t\treturn CMD_RET_USAGE;\n-\n-\tdst_addr = hextoul(argv[1], &end);\n-\tif (end == (argv[1] + strlen(argv[1]))) {\n-\t\tif (argc < 3)\n-\t\t\treturn CMD_RET_USAGE;\n-\t\turl = argv[2];\n-\t} else {\n-\t\tdst_addr = image_load_addr;\n-\t\turl = argv[1];\n-\t}\n-\n-\tif (parse_legacy_arg(url, nurl, sizeof(nurl)))\n-\t\treturn CMD_RET_FAILURE;\n-\n-\twget_info = &default_wget_info;\n-\tif (wget_do_request(dst_addr, nurl))\n-\t\treturn CMD_RET_FAILURE;\n-\n-\treturn CMD_RET_SUCCESS;\n-}\n-\n /**\n * wget_validate_uri() - validate the uri for wget\n *\n", "prefixes": [ "v4", "05/13" ] }