aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjolex007 <jolex007@yandex-team.com>2025-01-30 14:03:31 +0300
committerjolex007 <jolex007@yandex-team.com>2025-01-30 14:55:41 +0300
commitf6c6b9334c10ad8d86058c390d13364d28a5b68a (patch)
tree7bab54548f80626bb023105a7f29f38aa81c134f
parent8a69ffb9c2b26b2b29217ad7a0ff3adfd47a4ad5 (diff)
downloadydb-f6c6b9334c10ad8d86058c390d13364d28a5b68a.tar.gz
Removed dependence from libidn
Выкашиваем зависимость от `libidn` из универсального фетчера (по запросу `ya-bin`) commit_hash:525ba52d2ea4b45a15e726f7d9c73081fa2812ef
-rw-r--r--library/cpp/http/simple/http_client.cpp34
-rw-r--r--library/cpp/http/simple/http_client_options.h1
-rw-r--r--library/cpp/http/simple/ya.make1
3 files changed, 9 insertions, 27 deletions
diff --git a/library/cpp/http/simple/http_client.cpp b/library/cpp/http/simple/http_client.cpp
index 1f3c388ff0..00145c804f 100644
--- a/library/cpp/http/simple/http_client.cpp
+++ b/library/cpp/http/simple/http_client.cpp
@@ -1,7 +1,6 @@
#include "http_client.h"
#include <library/cpp/string_utils/url/url.h>
-#include <library/cpp/uri/http_url.h>
#include <util/stream/output.h>
#include <util/string/cast.h>
@@ -325,32 +324,15 @@ void TRedirectableHttpClient::ProcessResponse(const TStringBuf relativeUrl, THtt
ythrow THttpRequestException(statusCode) << "Exceeds MaxRedirectCount limit, code " << statusCode << " at " << Host << relativeUrl;
}
- TVector<TString> request_url_parts, request_body_parts;
-
- size_t splitted_index = 0;
- for (auto& iter : StringSplitter(i->Value()).Split('/')) {
- if (splitted_index < 3) {
- request_url_parts.push_back(TString(iter.Token()));
- } else {
- request_body_parts.push_back(TString(iter.Token()));
- }
- ++splitted_index;
- }
-
- TString url = JoinSeq("/", request_url_parts);
- ui16 port = 443;
-
- THttpURL u;
- if (THttpURL::ParsedOK == u.Parse(url)) {
- const char* p = u.Get(THttpURL::FieldPort);
- port = u.GetPort();
- if (p) {
- url = u.PrintS(THttpURL::FlagScheme | THttpURL::FlagHost);
- }
- }
+ TStringBuf schemeHostPort = GetSchemeHostAndPort(i->Value());
+ TStringBuf scheme("http://");
+ TStringBuf host("unknown");
+ ui16 port = 80;
+ GetSchemeHostAndPort(schemeHostPort, scheme, host, port);
+ TStringBuf body = GetPathAndQuery(i->Value(), false);
auto opts = Opts;
- opts.Host(url);
+ opts.Host(TString(scheme) + TString(host));
opts.Port(port);
opts.MaxRedirectCount(opts.MaxRedirectCount() - 1);
@@ -358,7 +340,7 @@ void TRedirectableHttpClient::ProcessResponse(const TStringBuf relativeUrl, THtt
if (HttpsVerification) {
cl.EnableVerificationForHttps();
}
- cl.DoGet(TString("/") + JoinSeq("/", request_body_parts), output);
+ cl.DoGet(body, output);
return;
}
}
diff --git a/library/cpp/http/simple/http_client_options.h b/library/cpp/http/simple/http_client_options.h
index 603ca5103a..58849556a9 100644
--- a/library/cpp/http/simple/http_client_options.h
+++ b/library/cpp/http/simple/http_client_options.h
@@ -1,6 +1,7 @@
#pragma once
#include <util/datetime/base.h>
+#include <util/string/cast.h>
#include <library/cpp/string_utils/url/url.h>
class TSimpleHttpClientOptions {
diff --git a/library/cpp/http/simple/ya.make b/library/cpp/http/simple/ya.make
index 3ef55c852c..40744675e8 100644
--- a/library/cpp/http/simple/ya.make
+++ b/library/cpp/http/simple/ya.make
@@ -4,7 +4,6 @@ PEERDIR(
library/cpp/http/io
library/cpp/openssl/io
library/cpp/string_utils/url
- library/cpp/uri
)
SRCS(