From 361485505b04f294652612f15e0dc5e5e2ea9751 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 17 Jan 2025 10:23:27 +0100 Subject: [PATCH] uri/RedirectHttps: return std::string_view --- src/uri/RedirectHttps.cxx | 14 +++++++------- src/uri/RedirectHttps.hxx | 5 +++-- test/uri/TestRedirectHttps.cxx | 28 ++++++++++++++-------------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/uri/RedirectHttps.cxx b/src/uri/RedirectHttps.cxx index 5202365d0..3f44251ab 100644 --- a/src/uri/RedirectHttps.cxx +++ b/src/uri/RedirectHttps.cxx @@ -7,7 +7,7 @@ #include "net/HostParser.hxx" #include "AllocatorPtr.hxx" -const char * +std::string_view MakeHttpsRedirect(AllocatorPtr alloc, const char *_host, uint16_t port, const char *uri) noexcept { @@ -27,10 +27,10 @@ MakeHttpsRedirect(AllocatorPtr alloc, const char *_host, uint16_t port, std::find(eh.host.begin(), eh.host.end(), ':') != eh.host.end(); const size_t need_brackets = is_ipv6 && !port_sv.empty(); - return alloc.Concat("https://", - std::string_view{&a, need_brackets}, - host, - std::string_view{&b, need_brackets}, - port_sv, - uri); + return alloc.ConcatView("https://", + std::string_view{&a, need_brackets}, + host, + std::string_view{&b, need_brackets}, + port_sv, + uri); } diff --git a/src/uri/RedirectHttps.hxx b/src/uri/RedirectHttps.hxx index 5750d7345..72707c3dc 100644 --- a/src/uri/RedirectHttps.hxx +++ b/src/uri/RedirectHttps.hxx @@ -4,7 +4,8 @@ #pragma once -#include +#include +#include class AllocatorPtr; @@ -15,6 +16,6 @@ class AllocatorPtr; * @param port the new port; 0 means default * @param uri the request URI */ -const char * +std::string_view MakeHttpsRedirect(AllocatorPtr alloc, const char *host, uint16_t port, const char *uri) noexcept; diff --git a/test/uri/TestRedirectHttps.cxx b/test/uri/TestRedirectHttps.cxx index e0895bd22..d5837876b 100644 --- a/test/uri/TestRedirectHttps.cxx +++ b/test/uri/TestRedirectHttps.cxx @@ -15,17 +15,17 @@ TEST(TestRedirectHttps, Basic) TestPool pool; const AllocatorPtr alloc(pool); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "localhost", 0, "/foo"), - "https://localhost/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "localhost", 0, "/foo"), + "https://localhost/foo"); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "localhost:80", 0, "/foo"), - "https://localhost/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "localhost:80", 0, "/foo"), + "https://localhost/foo"); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "localhost:80", 443, "/foo"), - "https://localhost/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "localhost:80", 443, "/foo"), + "https://localhost/foo"); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "localhost:80", 444, "/foo"), - "https://localhost:444/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "localhost:80", 444, "/foo"), + "https://localhost:444/foo"); } TEST(TestRedirectHttps, IPv6) @@ -33,12 +33,12 @@ TEST(TestRedirectHttps, IPv6) TestPool pool; const AllocatorPtr alloc(pool); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "::", 0, "/foo"), - "https://::/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "::", 0, "/foo"), + "https://::/foo"); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "[::]:80", 0, "/foo"), - "https://::/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "[::]:80", 0, "/foo"), + "https://::/foo"); - ASSERT_STREQ(MakeHttpsRedirect(alloc, "::", 444, "/foo"), - "https://[::]:444/foo"); + ASSERT_EQ(MakeHttpsRedirect(alloc, "::", 444, "/foo"), + "https://[::]:444/foo"); }