MPD  0.20.18
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

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".

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.

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

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

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.

gcc_pure bool uri_has_scheme ( const char *  uri)
noexcept

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

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.

gcc_pure gcc_nonnull_all bool uri_is_child_or_same ( const char *  parent,
const char *  child 
)
noexcept
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.

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