diff options
-rw-r--r-- | src/util/UriUtil.cxx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/util/UriUtil.cxx b/src/util/UriUtil.cxx index 44b3e53ab..f9dba97af 100644 --- a/src/util/UriUtil.cxx +++ b/src/util/UriUtil.cxx @@ -18,6 +18,7 @@ */ #include "UriUtil.hxx" +#include "StringCompare.hxx" #include <assert.h> #include <string.h> @@ -108,15 +109,14 @@ gcc_pure static const char * SkipUriScheme(const char *uri) { - if (memcmp(uri, "http://", 7) == 0) - return uri + 7; - else if (memcmp(uri, "https://", 8) == 0) - return uri + 8; - else if (memcmp(uri, "ftp://", 6) == 0) - return uri + 6; - else - /* unrecognized URI */ - return nullptr; + const char *const schemes[] = { "http://", "https://", "ftp://" }; + for (auto scheme : schemes) { + auto result = StringAfterPrefix(uri, scheme); + if (result != nullptr) + return result; + } + + return nullptr; } std::string |