From ad167a48ba978f1af7b792f702eea3025762e215 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 5 Aug 2019 12:56:28 +0300 Subject: [PATCH] Pass Slice to parse_url. GitOrigin-RevId: e6cd357042b827ca56a11bb377c8b07ccd120230 --- td/telegram/InlineQueriesManager.cpp | 2 +- td/telegram/MessageEntity.cpp | 3 +-- td/telegram/ReplyMarkup.cpp | 2 +- td/telegram/files/FileManager.cpp | 3 +-- td/telegram/misc.cpp | 2 +- td/telegram/misc.h | 2 +- tdnet/td/net/Wget.cpp | 3 +-- tdutils/td/utils/HttpUrl.cpp | 6 ++---- tdutils/td/utils/HttpUrl.h | 2 +- 9 files changed, 10 insertions(+), 15 deletions(-) diff --git a/td/telegram/InlineQueriesManager.cpp b/td/telegram/InlineQueriesManager.cpp index 24d3800c..53313759 100644 --- a/td/telegram/InlineQueriesManager.cpp +++ b/td/telegram/InlineQueriesManager.cpp @@ -1072,7 +1072,7 @@ string InlineQueriesManager::get_web_document_url(const tl_object_ptrget_id()) { case telegram_api::webDocument::ID: { auto web_document = static_cast(web_document_ptr.get()); diff --git a/td/telegram/MessageEntity.cpp b/td/telegram/MessageEntity.cpp index 8defb374..352ec39e 100644 --- a/td/telegram/MessageEntity.cpp +++ b/td/telegram/MessageEntity.cpp @@ -1872,8 +1872,7 @@ vector get_message_entities(const ContactsManager *contacts_manag break; } case telegram_api::messageEntityTextUrl::ID: { - // TODO const telegram_api::messageEntityTextUrl * - auto entity_text_url = static_cast(entity.get()); + auto entity_text_url = static_cast(entity.get()); auto r_url = check_url(entity_text_url->url_); if (r_url.is_error()) { LOG(ERROR) << "Wrong URL entity: \"" << entity_text_url->url_ << "\": " << r_url.error().message() << " from " diff --git a/td/telegram/ReplyMarkup.cpp b/td/telegram/ReplyMarkup.cpp index 670d437c..95c6576b 100644 --- a/td/telegram/ReplyMarkup.cpp +++ b/td/telegram/ReplyMarkup.cpp @@ -380,7 +380,7 @@ static Result get_inline_keyboard_button(tl_object_ptr(button->type_.get())->url_)); + TRY_RESULT(url, check_url(static_cast(button->type_.get())->url_)); current_button.data = std::move(url); if (!clean_input_string(current_button.data)) { return Status::Error(400, "Inline keyboard button url must be encoded in UTF-8"); diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index cc57c1fe..edd461f0 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -2596,8 +2596,7 @@ string FileManager::get_persistent_id(const FullRemoteFileLocation &location) { Result FileManager::from_persistent_id(CSlice persistent_id, FileType file_type) { if (persistent_id.find('.') != string::npos) { - string input_url = persistent_id.str(); // TODO do not copy persistent_id - TRY_RESULT(http_url, parse_url(input_url)); + TRY_RESULT(http_url, parse_url(persistent_id)); auto url = http_url.get_url(); if (!clean_input_string(url)) { return Status::Error(400, "URL must be in UTF-8"); diff --git a/td/telegram/misc.cpp b/td/telegram/misc.cpp index d23926bd..05b333e4 100644 --- a/td/telegram/misc.cpp +++ b/td/telegram/misc.cpp @@ -275,7 +275,7 @@ string get_emoji_fingerprint(uint64 num) { return emojis[static_cast((num & 0x7FFFFFFFFFFFFFFF) % emojis.size())].str(); } -Result check_url(MutableSlice url) { +Result check_url(Slice url) { bool is_tg = false; if (begins_with(url, "tg://")) { url.remove_prefix(5); diff --git a/td/telegram/misc.h b/td/telegram/misc.h index 87469d11..6cb4ce38 100644 --- a/td/telegram/misc.h +++ b/td/telegram/misc.h @@ -34,6 +34,6 @@ int32 get_vector_hash(const vector &numbers) TD_WARN_UNUSED_RESULT; string get_emoji_fingerprint(uint64 num); // checks whether url is a valid tg or HTTP(S) URL and returns its in a canonical form -Result check_url(MutableSlice url); +Result check_url(Slice url); } // namespace td diff --git a/tdnet/td/net/Wget.cpp b/tdnet/td/net/Wget.cpp index 9599ad5d..2965c3b4 100644 --- a/tdnet/td/net/Wget.cpp +++ b/tdnet/td/net/Wget.cpp @@ -34,8 +34,7 @@ Wget::Wget(Promise> promise, string url, std::vector