Ada 2.9.0
Fast spec-compliant URL parser
Loading...
Searching...
No Matches
ada_c.cpp File Reference
#include "ada.h"

Go to the source code of this file.

Classes

struct  ada_string
 
struct  ada_owned_string
 
struct  ada_string_pair
 
struct  ada_url_components
 

Typedefs

typedef void * ada_url
 
typedef void * ada_url_search_params
 
typedef void * ada_strings
 
typedef void * ada_url_search_params_keys_iter
 
typedef void * ada_url_search_params_values_iter
 
typedef void * ada_url_search_params_entries_iter
 

Functions

ada::result< ada::url_aggregator > & get_instance (void *result) noexcept
 
ada_string ada_string_create (const char *data, size_t length)
 
ada_url ada_parse (const char *input, size_t length) noexcept
 
ada_url ada_parse_with_base (const char *input, size_t input_length, const char *base, size_t base_length) noexcept
 
bool ada_can_parse (const char *input, size_t length) noexcept
 
bool ada_can_parse_with_base (const char *input, size_t input_length, const char *base, size_t base_length) noexcept
 
void ada_free (ada_url result) noexcept
 
ada_url ada_copy (ada_url input) noexcept
 
bool ada_is_valid (ada_url result) noexcept
 
ada_owned_string ada_get_origin (ada_url result) noexcept
 
void ada_free_owned_string (ada_owned_string owned) noexcept
 
ada_string ada_get_href (ada_url result) noexcept
 
ada_string ada_get_username (ada_url result) noexcept
 
ada_string ada_get_password (ada_url result) noexcept
 
ada_string ada_get_port (ada_url result) noexcept
 
ada_string ada_get_hash (ada_url result) noexcept
 
ada_string ada_get_host (ada_url result) noexcept
 
ada_string ada_get_hostname (ada_url result) noexcept
 
ada_string ada_get_pathname (ada_url result) noexcept
 
ada_string ada_get_search (ada_url result) noexcept
 
ada_string ada_get_protocol (ada_url result) noexcept
 
uint8_t ada_get_host_type (ada_url result) noexcept
 
uint8_t ada_get_scheme_type (ada_url result) noexcept
 
bool ada_set_href (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_host (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_hostname (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_protocol (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_username (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_password (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_port (ada_url result, const char *input, size_t length) noexcept
 
bool ada_set_pathname (ada_url result, const char *input, size_t length) noexcept
 
void ada_set_search (ada_url result, const char *input, size_t length) noexcept
 
void ada_set_hash (ada_url result, const char *input, size_t length) noexcept
 
void ada_clear_port (ada_url result) noexcept
 
void ada_clear_hash (ada_url result) noexcept
 
void ada_clear_search (ada_url result) noexcept
 
bool ada_has_credentials (ada_url result) noexcept
 
bool ada_has_empty_hostname (ada_url result) noexcept
 
bool ada_has_hostname (ada_url result) noexcept
 
bool ada_has_non_empty_username (ada_url result) noexcept
 
bool ada_has_non_empty_password (ada_url result) noexcept
 
bool ada_has_port (ada_url result) noexcept
 
bool ada_has_password (ada_url result) noexcept
 
bool ada_has_hash (ada_url result) noexcept
 
bool ada_has_search (ada_url result) noexcept
 
const ada_url_componentsada_get_components (ada_url result) noexcept
 
ada_owned_string ada_idna_to_unicode (const char *input, size_t length)
 
ada_owned_string ada_idna_to_ascii (const char *input, size_t length)
 
ada_url_search_params ada_parse_search_params (const char *input, size_t length)
 
void ada_free_search_params (ada_url_search_params result)
 
ada_owned_string ada_search_params_to_string (ada_url_search_params result)
 
size_t ada_search_params_size (ada_url_search_params result)
 
void ada_search_params_sort (ada_url_search_params result)
 
void ada_search_params_reset (ada_url_search_params result, const char *input, size_t length)
 
void ada_search_params_append (ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
 
void ada_search_params_set (ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
 
void ada_search_params_remove (ada_url_search_params result, const char *key, size_t key_length)
 
void ada_search_params_remove_value (ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
 
bool ada_search_params_has (ada_url_search_params result, const char *key, size_t key_length)
 
bool ada_search_params_has_value (ada_url_search_params result, const char *key, size_t key_length, const char *value, size_t value_length)
 
ada_string ada_search_params_get (ada_url_search_params result, const char *key, size_t key_length)
 
ada_strings ada_search_params_get_all (ada_url_search_params result, const char *key, size_t key_length)
 
ada_url_search_params_keys_iter ada_search_params_get_keys (ada_url_search_params result)
 
ada_url_search_params_values_iter ada_search_params_get_values (ada_url_search_params result)
 
ada_url_search_params_entries_iter ada_search_params_get_entries (ada_url_search_params result)
 
void ada_free_strings (ada_strings result)
 
size_t ada_strings_size (ada_strings result)
 
ada_string ada_strings_get (ada_strings result, size_t index)
 
void ada_free_search_params_keys_iter (ada_url_search_params_keys_iter result)
 
ada_string ada_search_params_keys_iter_next (ada_url_search_params_keys_iter result)
 
bool ada_search_params_keys_iter_has_next (ada_url_search_params_keys_iter result)
 
void ada_free_search_params_values_iter (ada_url_search_params_values_iter result)
 
ada_string ada_search_params_values_iter_next (ada_url_search_params_values_iter result)
 
bool ada_search_params_values_iter_has_next (ada_url_search_params_values_iter result)
 
void ada_free_search_params_entries_iter (ada_url_search_params_entries_iter result)
 
ada_string_pair ada_search_params_entries_iter_next (ada_url_search_params_entries_iter result)
 
bool ada_search_params_entries_iter_has_next (ada_url_search_params_entries_iter result)
 

Typedef Documentation

◆ ada_strings

typedef void* ada_strings

Definition at line 10 of file ada_c.cpp.

◆ ada_url

typedef void* ada_url

Definition at line 8 of file ada_c.cpp.

◆ ada_url_search_params

typedef void* ada_url_search_params

Definition at line 9 of file ada_c.cpp.

◆ ada_url_search_params_entries_iter

Definition at line 13 of file ada_c.cpp.

◆ ada_url_search_params_keys_iter

Definition at line 11 of file ada_c.cpp.

◆ ada_url_search_params_values_iter

Definition at line 12 of file ada_c.cpp.

Function Documentation

◆ ada_can_parse()

bool ada_can_parse ( const char * input,
size_t length )
noexcept

Definition at line 85 of file ada_c.cpp.

References ada::can_parse().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_can_parse_with_base()

bool ada_can_parse_with_base ( const char * input,
size_t input_length,
const char * base,
size_t base_length )
noexcept

Definition at line 89 of file ada_c.cpp.

References ada::can_parse().

◆ ada_clear_hash()

void ada_clear_hash ( ada_url result)
noexcept

Removes the hash of the URL.

Despite ada_set_hash method, this function allows the complete removal of the hash attribute, even if it has a value of #.

Definition at line 346 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_clear_port()

void ada_clear_port ( ada_url result)
noexcept

Definition at line 333 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_clear_search()

void ada_clear_search ( ada_url result)
noexcept

Removes the search of the URL.

Despite ada_set_search method, this function allows the complete removal of the search attribute, even if it has a value of ?.

Definition at line 359 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_copy()

ada_url ada_copy ( ada_url input)
noexcept

Definition at line 100 of file ada_c.cpp.

References get_instance().

◆ ada_free()

void ada_free ( ada_url result)
noexcept

Definition at line 95 of file ada_c.cpp.

Referenced by LLVMFuzzerTestOneInput().

◆ ada_free_owned_string()

void ada_free_owned_string ( ada_owned_string owned)
noexcept

Definition at line 126 of file ada_c.cpp.

Referenced by LLVMFuzzerTestOneInput().

◆ ada_free_search_params()

void ada_free_search_params ( ada_url_search_params result)

Definition at line 472 of file ada_c.cpp.

◆ ada_free_search_params_entries_iter()

void ada_free_search_params_entries_iter ( ada_url_search_params_entries_iter result)

Definition at line 715 of file ada_c.cpp.

◆ ada_free_search_params_keys_iter()

void ada_free_search_params_keys_iter ( ada_url_search_params_keys_iter result)

Definition at line 660 of file ada_c.cpp.

◆ ada_free_search_params_values_iter()

void ada_free_search_params_values_iter ( ada_url_search_params_values_iter result)

Definition at line 687 of file ada_c.cpp.

◆ ada_free_strings()

void ada_free_strings ( ada_strings result)

Definition at line 638 of file ada_c.cpp.

◆ ada_get_components()

const ada_url_components * ada_get_components ( ada_url result)
noexcept

Definition at line 439 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_hash()

ada_string ada_get_hash ( ada_url result)
noexcept

Definition at line 166 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_host()

ada_string ada_get_host ( ada_url result)
noexcept

Definition at line 175 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_host_type()

uint8_t ada_get_host_type ( ada_url result)
noexcept

Definition at line 220 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_hostname()

ada_string ada_get_hostname ( ada_url result)
noexcept

Definition at line 184 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_href()

ada_string ada_get_href ( ada_url result)
noexcept

Definition at line 130 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_origin()

ada_owned_string ada_get_origin ( ada_url result)
noexcept

Definition at line 111 of file ada_c.cpp.

References ada_owned_string::data, and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_password()

ada_string ada_get_password ( ada_url result)
noexcept

Definition at line 148 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_pathname()

ada_string ada_get_pathname ( ada_url result)
noexcept

Definition at line 193 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_port()

ada_string ada_get_port ( ada_url result)
noexcept

Definition at line 157 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_protocol()

ada_string ada_get_protocol ( ada_url result)
noexcept

Definition at line 211 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_scheme_type()

uint8_t ada_get_scheme_type ( ada_url result)
noexcept

Definition at line 228 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_search()

ada_string ada_get_search ( ada_url result)
noexcept

Definition at line 202 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_get_username()

ada_string ada_get_username ( ada_url result)
noexcept

Definition at line 139 of file ada_c.cpp.

References ada_string_create(), and get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_credentials()

bool ada_has_credentials ( ada_url result)
noexcept

Definition at line 366 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_empty_hostname()

bool ada_has_empty_hostname ( ada_url result)
noexcept

Definition at line 374 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_hash()

bool ada_has_hash ( ada_url result)
noexcept

Definition at line 422 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_hostname()

bool ada_has_hostname ( ada_url result)
noexcept

Definition at line 382 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_non_empty_password()

bool ada_has_non_empty_password ( ada_url result)
noexcept

Definition at line 398 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_non_empty_username()

bool ada_has_non_empty_username ( ada_url result)
noexcept

Definition at line 390 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_password()

bool ada_has_password ( ada_url result)
noexcept

Definition at line 414 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_port()

bool ada_has_port ( ada_url result)
noexcept

Definition at line 406 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_has_search()

bool ada_has_search ( ada_url result)
noexcept

Definition at line 430 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_idna_to_ascii()

ada_owned_string ada_idna_to_ascii ( const char * input,
size_t length )

Definition at line 457 of file ada_c.cpp.

References ada_owned_string::length, and ada::idna::to_ascii().

◆ ada_idna_to_unicode()

ada_owned_string ada_idna_to_unicode ( const char * input,
size_t length )

Definition at line 448 of file ada_c.cpp.

References ada_owned_string::length, and ada::idna::to_unicode().

◆ ada_is_valid()

bool ada_is_valid ( ada_url result)
noexcept

Definition at line 105 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_parse()

ada_url ada_parse ( const char * input,
size_t length )
noexcept

Definition at line 67 of file ada_c.cpp.

References ada::parse().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_parse_search_params()

ada_url_search_params ada_parse_search_params ( const char * input,
size_t length )

Definition at line 466 of file ada_c.cpp.

◆ ada_parse_with_base()

ada_url ada_parse_with_base ( const char * input,
size_t input_length,
const char * base,
size_t base_length )
noexcept

Definition at line 72 of file ada_c.cpp.

References ada::parse().

◆ ada_search_params_append()

void ada_search_params_append ( ada_url_search_params result,
const char * key,
size_t key_length,
const char * value,
size_t value_length )

Definition at line 515 of file ada_c.cpp.

◆ ada_search_params_entries_iter_has_next()

bool ada_search_params_entries_iter_has_next ( ada_url_search_params_entries_iter result)

Definition at line 734 of file ada_c.cpp.

◆ ada_search_params_entries_iter_next()

ada_string_pair ada_search_params_entries_iter_next ( ada_url_search_params_entries_iter result)

Definition at line 721 of file ada_c.cpp.

References ada_string_create().

◆ ada_search_params_get()

ada_string ada_search_params_get ( ada_url_search_params result,
const char * key,
size_t key_length )

Definition at line 579 of file ada_c.cpp.

References ada_string_create().

◆ ada_search_params_get_all()

ada_strings ada_search_params_get_all ( ada_url_search_params result,
const char * key,
size_t key_length )

Definition at line 593 of file ada_c.cpp.

◆ ada_search_params_get_entries()

ada_url_search_params_entries_iter ada_search_params_get_entries ( ada_url_search_params result)

Definition at line 627 of file ada_c.cpp.

◆ ada_search_params_get_keys()

ada_url_search_params_keys_iter ada_search_params_get_keys ( ada_url_search_params result)

Definition at line 605 of file ada_c.cpp.

◆ ada_search_params_get_values()

ada_url_search_params_values_iter ada_search_params_get_values ( ada_url_search_params result)

Definition at line 616 of file ada_c.cpp.

◆ ada_search_params_has()

bool ada_search_params_has ( ada_url_search_params result,
const char * key,
size_t key_length )

Definition at line 557 of file ada_c.cpp.

◆ ada_search_params_has_value()

bool ada_search_params_has_value ( ada_url_search_params result,
const char * key,
size_t key_length,
const char * value,
size_t value_length )

Definition at line 567 of file ada_c.cpp.

◆ ada_search_params_keys_iter_has_next()

bool ada_search_params_keys_iter_has_next ( ada_url_search_params_keys_iter result)

Definition at line 678 of file ada_c.cpp.

◆ ada_search_params_keys_iter_next()

ada_string ada_search_params_keys_iter_next ( ada_url_search_params_keys_iter result)

Definition at line 665 of file ada_c.cpp.

References ada_string_create().

◆ ada_search_params_remove()

void ada_search_params_remove ( ada_url_search_params result,
const char * key,
size_t key_length )

Definition at line 537 of file ada_c.cpp.

◆ ada_search_params_remove_value()

void ada_search_params_remove_value ( ada_url_search_params result,
const char * key,
size_t key_length,
const char * value,
size_t value_length )

Definition at line 546 of file ada_c.cpp.

◆ ada_search_params_reset()

void ada_search_params_reset ( ada_url_search_params result,
const char * input,
size_t length )

Definition at line 506 of file ada_c.cpp.

◆ ada_search_params_set()

void ada_search_params_set ( ada_url_search_params result,
const char * key,
size_t key_length,
const char * value,
size_t value_length )

Definition at line 526 of file ada_c.cpp.

◆ ada_search_params_size()

size_t ada_search_params_size ( ada_url_search_params result)

Definition at line 489 of file ada_c.cpp.

◆ ada_search_params_sort()

void ada_search_params_sort ( ada_url_search_params result)

Definition at line 498 of file ada_c.cpp.

◆ ada_search_params_to_string()

ada_owned_string ada_search_params_to_string ( ada_url_search_params result)

Definition at line 477 of file ada_c.cpp.

References ada_owned_string::length.

◆ ada_search_params_values_iter_has_next()

bool ada_search_params_values_iter_has_next ( ada_url_search_params_values_iter result)

Definition at line 706 of file ada_c.cpp.

◆ ada_search_params_values_iter_next()

ada_string ada_search_params_values_iter_next ( ada_url_search_params_values_iter result)

Definition at line 693 of file ada_c.cpp.

References ada_string_create().

◆ ada_set_hash()

void ada_set_hash ( ada_url result,
const char * input,
size_t length )
noexcept

Update the hash/fragment of the URL.

If a URL has # as the hash value, passing empty string to this function does not remove the attribute. If you need to remove it, please use ada_clear_hash method.

Definition at line 326 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_host()

bool ada_set_host ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 244 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_hostname()

bool ada_set_hostname ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 252 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_href()

bool ada_set_href ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 236 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_password()

bool ada_set_password ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 279 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_pathname()

bool ada_set_pathname ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 296 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_port()

bool ada_set_port ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 288 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_protocol()

bool ada_set_protocol ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 261 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_search()

void ada_set_search ( ada_url result,
const char * input,
size_t length )
noexcept

Update the search/query of the URL.

If a URL has ? as the search value, passing empty string to this function does not remove the attribute. If you need to remove it, please use ada_clear_search method.

Definition at line 312 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_set_username()

bool ada_set_username ( ada_url result,
const char * input,
size_t length )
noexcept

Definition at line 270 of file ada_c.cpp.

References get_instance().

Referenced by LLVMFuzzerTestOneInput().

◆ ada_string_create()

◆ ada_strings_get()

ada_string ada_strings_get ( ada_strings result,
size_t index )

Definition at line 651 of file ada_c.cpp.

References ada_string_create().

◆ ada_strings_size()

size_t ada_strings_size ( ada_strings result)

Definition at line 643 of file ada_c.cpp.

◆ get_instance()