MPD: util/UriUtil.hxx File Reference

MPD 0.20.15

Data Structures | Functions
UriUtil.hxx File Reference
`#include "Compiler.h"`
`#include <string>`
Include dependency graph for UriUtil.hxx:

Go to the source code of this file.

## Data Structures
struct | UriSuffixBuffer

## Functions
gcc_pure bool | uri_has_scheme (const char *uri) noexcept
| Checks whether the specified URI has a scheme in the form "scheme://". More...
gcc_pure std::string | uri_get_scheme (const char *uri) noexcept
| Returns the scheme name of the specified URI, or an empty string. More...
gcc_pure gcc_nonnull_all const char * | uri_get_path (const char *uri) noexcept
| Returns the URI path (including the query string) or nullptr if the given URI has no path. More...
gcc_pure const char * | uri_get_suffix (const char *uri) noexcept
gcc_pure const char * | uri_get_suffix (const char *uri, UriSuffixBuffer &buffer) noexcept
| Returns the file name suffix, ignoring the query string. More...
gcc_pure bool | uri_safe_local (const char *uri) noexcept
| Returns true if this is a safe "local" URI: More...
gcc_pure std::string | uri_remove_auth (const char *uri) noexcept
| Removes HTTP username and password from the URI. More...
gcc_pure gcc_nonnull_all bool | uri_is_child (const char *parent, const char *child) noexcept
| Check whether #child specifies a resource "inside" the directory specified by #parent. More...
gcc_pure gcc_nonnull_all bool | uri_is_child_or_same (const char *parent, const char *child) noexcept
gcc_pure std::string | uri_apply_base (const std::string &uri, const std::string &base) noexcept
| Translate the given URI in the context of #base. More...

## Function Documentation

## ◆ uri_apply_base()

gcc_pure std::string uri_apply_base | ( | const std::string & | uri,
|  | const std::string & | base
| ) |  |
| noexcept

Translate the given URI in the context of #base.

For example, uri_apply_base("foo", "http://bar/a/")=="http://bar/a/foo".

## ◆ uri_get_path()

gcc_pure gcc_nonnull_all const char* uri_get_path | ( | const char * | uri | ) |
| noexcept

Returns the URI path (including the query string) or nullptr if the given URI has no path.

## ◆ uri_get_scheme()

gcc_pure std::string uri_get_scheme | ( | const char * | uri | ) |
| noexcept

Returns the scheme name of the specified URI, or an empty string.

## ◆ uri_get_suffix() [1/2]

gcc_pure const char* uri_get_suffix | ( | const char * | uri | ) |
| noexcept

## ◆ uri_get_suffix() [2/2]

gcc_pure const char* uri_get_suffix | ( | const char * | uri,
|  | UriSuffixBuffer & | buffer
| ) |  |
| noexcept

Returns the file name suffix, ignoring the query string.

## ◆ uri_has_scheme()

gcc_pure bool uri_has_scheme | ( | const char * | uri | ) |
| noexcept

Checks whether the specified URI has a scheme in the form "scheme://".

## ◆ uri_is_child()

gcc_pure gcc_nonnull_all bool uri_is_child | ( | const char * | parent,
|  | const char * | child
| ) |  |
| noexcept

Check whether #child specifies a resource "inside" the directory specified by #parent.

If the strings are equal, the function returns false.

## ◆ uri_is_child_or_same()

gcc_pure gcc_nonnull_all bool uri_is_child_or_same | ( | const char * | parent,
|  | const char * | child
| ) |  |
| noexcept

## ◆ uri_remove_auth()

gcc_pure std::string uri_remove_auth | ( | const char * | uri | ) |
| noexcept

Removes HTTP username and password from the URI.

This may be useful for displaying an URI without disclosing secrets. Returns an empty string if nothing needs to be removed, or if the URI is not recognized.

## ◆ uri_safe_local()

gcc_pure bool uri_safe_local | ( | const char * | uri | ) |
| noexcept

Returns true if this is a safe "local" URI:

- non-empty
- does not begin or end with a slash
- no double slashes
- no path component begins with a dot