From c66b522e8dbce652d9ef3b049c95d7cf947bb015 Mon Sep 17 00:00:00 2001 From: houjiahui1 Date: Tue, 10 Jun 2025 20:08:34 +0800 Subject: [PATCH] Opt ipv6 create chain Signed-off-by: houjiahui1 --- .../native/http/http_client/http_client_task.cpp | 6 ++++++ interfaces/innerkits/http_client/BUILD.gn | 10 ++++++++++ test/fuzztest/http_fuzzer/BUILD.gn | 8 +++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/frameworks/native/http/http_client/http_client_task.cpp b/frameworks/native/http/http_client/http_client_task.cpp index 0ef3f63b2..1729c333b 100644 --- a/frameworks/native/http/http_client/http_client_task.cpp +++ b/frameworks/native/http/http_client/http_client_task.cpp @@ -32,6 +32,7 @@ #include "timing.h" #if HAS_NETMANAGER_BASE #include "http_client_network_message.h" +#include "netsys_client.h" #endif #include "netstack_hisysevent.h" @@ -310,6 +311,11 @@ bool HttpClientTask::SetIpResolve(CURL *handle) { std::string addressFamily = request_.GetAddressFamily(); if (addressFamily.empty()) { +#if HAS_NETMANAGER_BASE + if (!NetSysIsIpv6Enable(0)) { + NETSTACK_CURL_EASY_SET_OPTION(curlHandle_, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + } +#endif return true; } if (addressFamily.compare(HTTP_AF_ONLYV4) == 0) { diff --git a/interfaces/innerkits/http_client/BUILD.gn b/interfaces/innerkits/http_client/BUILD.gn index 328dc0443..cc2d3ffc4 100644 --- a/interfaces/innerkits/http_client/BUILD.gn +++ b/interfaces/innerkits/http_client/BUILD.gn @@ -51,6 +51,11 @@ config("http_client_config") { "HAS_NETSTACK_CHR", ] } + if (defined(global_parts_info) && + defined(global_parts_info.communication_netmanager_base) && + global_parts_info.communication_netmanager_base) { + defines += [ "HAS_NETMANAGER_BASE=1" ] + } } ohos_shared_library("http_client") { @@ -141,6 +146,11 @@ ohos_shared_library("http_client") { "openssl:libssl_shared", ] + if (defined(global_parts_info) && + defined(global_parts_info.communication_netmanager_base) && + global_parts_info.communication_netmanager_base) { + external_deps += [ "netmanager_base:netsys_client" ] + } innerapi_tags = [ "platformsdk" ] part_name = "netstack" subsystem_name = "communication" diff --git a/test/fuzztest/http_fuzzer/BUILD.gn b/test/fuzztest/http_fuzzer/BUILD.gn index f2365bfde..ffef0bd22 100644 --- a/test/fuzztest/http_fuzzer/BUILD.gn +++ b/test/fuzztest/http_fuzzer/BUILD.gn @@ -73,7 +73,13 @@ ohos_fuzztest("HttpFuzzTest") { ] external_deps = common_external_deps - external_deps += [ "napi:ace_napi" ] + external_deps += [ + "napi:ace_napi", + "netmanager_base:net_conn_manager_if", + "netmanager_base:net_security_config_if", + "openssl:libcrypto_shared", + "openssl:libssl_shared", + ] } ############################################################################### -- Gitee