URL struct and helper functions. More...
#include <sofia-sip/su_alloc.h>
Go to the source code of this file.
Data Structures | |
struct | url_t |
URL structure. More... | |
union | url_string_t |
Type to present either a parsed URL or string. More... | |
Defines | |
#define | URL_H |
Defined when <sofia-sip/url.h> has been included. | |
#define | URL_INIT_AS(type) |
Initializer for an url_t structure. | |
#define | URL_PORT(u) |
Return the URL port string, using default port if none present. | |
#define | URL_STRING_P(u) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure). | |
#define | URL_IS_STRING(u) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure). | |
#define | URL_STRING_MAKE(s) |
Cast a string to a url_string_t. | |
#define | URL_PRINT_FORMAT |
Format string used when printing url with printf(). | |
#define | URL_PRINT_ARGS(u) |
Argument list used when printing url with printf(). | |
#define | URL_E(buf, end, url) |
Encode a URL: use buf up to end. | |
#define | URL_DUP(buf, end, dst, src) |
Duplicate the url: use buf up to end. | |
Enumerations | |
enum | url_type_e { url_invalid, url_unknown, url_any, url_sip, url_sips, url_tel, url_fax, url_modem, url_http, url_https, url_ftp, url_file, url_rtsp, url_rtspu, url_mailto, url_im, url_pres, url_cid, url_msrp, url_msrps, url_wv } |
Recognized URL schemes (value of url_t.url_type). More... | |
enum | { URL_MAXLEN } |
Functions | |
url_t * | url_make (su_home_t *h, char const *str) |
Convert a string to a url struct. | |
url_t * | url_format (su_home_t *h, char const *fmt,...) |
Convert a string formatting result to a url struct. | |
char * | url_as_string (su_home_t *home, url_t const *url) |
Convert url_t to a string allocated from home. | |
url_t * | url_hdup (su_home_t *h, url_t const *src) |
Duplicate the url to memory allocated via home. | |
int | url_sanitize (url_t *u) |
Sanitize a URL. | |
char const * | url_scheme (enum url_type_e type) |
Get URL scheme by type. | |
int | url_cmp (url_t const *a, url_t const *b) |
Compare two URLs lazily. | |
int | url_cmp_all (url_t const *a, url_t const *b) |
Compare two URLs conservatively. | |
isize_t | url_param (char const *params, char const *tag, char value[], isize_t vlen) |
Search for a parameter. | |
int | url_has_param (url_t const *url, char const *name) |
Check for a parameter. | |
isize_t | url_have_param (char const *params, char const *tag) |
Check for a presence of a parameter in string. | |
int | url_param_add (su_home_t *h, url_t *url, char const *param) |
Add a parameter. | |
int | url_strip_transport (url_t *u) |
Strip transport-specific stuff away from URI. | |
char * | url_strip_param_string (char *params, char const *name) |
Strip parameter away from URI. | |
int | url_have_transport (url_t const *u) |
Test if url has any transport-specific stuff. | |
char * | url_query_as_header_string (su_home_t *home, char const *query) |
Convert a URL query to a header string. | |
int | url_reserved_p (char const *s) |
Test if string contains url-reserved characters. | |
char * | url_escape (char *d, char const *s, char const reserved[]) |
Escape a string. | |
isize_t | url_esclen (char const *s, char const reserved[]) |
Calculate length of string when escaped. | |
size_t | url_unescape_to (char *d, char const *s, size_t n) |
Unescape characters from string. | |
char * | url_unescape (char *d, char const *s) |
Unescape a string. | |
void | url_init (url_t *url, enum url_type_e type) |
Init a url structure as given type. | |
char const * | url_port_default (enum url_type_e url_type) |
Return default port number corresponding to the url type. | |
char const * | url_tport_default (enum url_type_e url_type) |
Return default transport name corresponding to the url type. | |
char const * | url_port (url_t const *u) |
Return the URL port string, using default port if not present. | |
int | url_string_p (url_string_t const *url) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure). | |
int | url_is_string (url_string_t const *url) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure). | |
void | url_update (struct su_md5_t *md5, url_t const *url) |
Update MD5 sum with URL contents. | |
void | url_digest (void *hash, int hsize, url_t const *, char const *key) |
Calculate a digest from URL contents. | |
int | url_d (url_t *url, char *s) |
Decode a URL. | |
isize_t | url_len (url_t const *url) |
Calculate the encoding length of URL. | |
issize_t | url_e (char buffer[], isize_t n, url_t const *url) |
Encode a URL. | |
isize_t | url_xtra (url_t const *url) |
Calculate the size of srings attached to the url. | |
issize_t | url_dup (char *, isize_t, url_t *dst, url_t const *src) |
Duplicate the url in the provided memory area. |
URL struct and helper functions.
#define URL_H |
Defined when <sofia-sip/url.h> has been included.
#define URL_INIT_AS | ( | type | ) |
Initializer for an url_t structure.
The macro URL_INIT_AS() is used to initialize a url_t structure with a known url type:
url_t urls[2] = { URL_INIT_AS(sip), URL_INIT_AS(http) };
#define URL_IS_STRING | ( | u | ) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure).
#define URL_PORT | ( | u | ) |
Return the URL port string, using default port if none present.
#define URL_STRING_P | ( | u | ) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure).
enum url_type_e |
Recognized URL schemes (value of url_t.url_type).
url_invalid |
Invalid url. |
url_unknown |
Unknown scheme. |
url_any |
"*" |
url_sip |
"sip:".
|
url_sips |
"sips:".
|
url_tel |
"tel:"
|
url_fax |
"fax:".
|
url_modem |
"modem:".
|
url_http |
"http:". |
url_https |
"https:". |
url_ftp |
"ftp:".
|
url_file |
"file:"
|
url_rtsp |
"rtsp:"
|
url_rtspu |
"rtspu:"
|
url_mailto |
"mailto:"
|
url_im |
"im:" (simple instant messaging).
|
url_pres |
"pres:" (simple presence).
|
url_cid |
"cid:" (Content-ID).
|
url_msrp |
"msrp:" (message session relay) |
url_msrps |
"msrps:" (new in 1.12.2) |
url_wv |
"wv:" (Wireless village) |
int url_d | ( | url_t * | url, | |
char * | s | |||
) |
Decode a URL.
void url_digest | ( | void * | hash, | |
int | hsize, | |||
url_t const * | , | |||
char const * | key | |||
) |
Calculate a digest from URL contents.
Duplicate the url in the provided memory area.
char* url_escape | ( | char * | d, | |
char const * | s, | |||
char const | reserved[] | |||
) |
Escape a string.
isize_t url_esclen | ( | char const * | s, | |
char const | reserved[] | |||
) |
Calculate length of string when escaped.
Convert a string formatting result to a url struct.
int url_has_param | ( | url_t const * | url, | |
char const * | name | |||
) |
Check for a parameter.
isize_t url_have_param | ( | char const * | params, | |
char const * | tag | |||
) |
Check for a presence of a parameter in string.
int url_have_transport | ( | url_t const * | u | ) |
Test if url has any transport-specific stuff.
int url_is_string | ( | url_string_t const * | url | ) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure).
Search for a parameter.
char const* url_port | ( | url_t const * | u | ) |
Return the URL port string, using default port if not present.
char const* url_port_default | ( | enum url_type_e | url_type | ) |
Return default port number corresponding to the url type.
char* url_query_as_header_string | ( | su_home_t * | home, | |
char const * | query | |||
) |
Convert a URL query to a header string.
int url_reserved_p | ( | char const * | s | ) |
Test if string contains url-reserved characters.
int url_sanitize | ( | url_t * | u | ) |
Sanitize a URL.
char const* url_scheme | ( | enum url_type_e | type | ) |
Get URL scheme by type.
int url_string_p | ( | url_string_t const * | url | ) |
Test if a pointer to url_string_t is a string (not a pointer to a url_t structure).
char* url_strip_param_string | ( | char * | params, | |
char const * | name | |||
) |
Strip parameter away from URI.
int url_strip_transport | ( | url_t * | u | ) |
Strip transport-specific stuff away from URI.