Asterisk - The Open Source Telephony Project
18.5.0
|
Go to the source code of this file.
Data Structures | |
struct | sip_route |
Structure to store route information. More... | |
Macros | |
#define | sip_route_empty(route) AST_LIST_EMPTY(&(route)->list) |
Check if route has no URI's. More... | |
Enumerations | |
enum | sip_route_type { route_loose = 0, route_strict, route_invalidated } |
Functions | |
const char * | sip_route_add (struct sip_route *route, const char *uri, size_t len, int inserthead) |
Add a new hop to the route. More... | |
void | sip_route_clear (struct sip_route *route) |
Free all routes in the list. More... | |
void | sip_route_copy (struct sip_route *dst, const struct sip_route *src) |
copy route-set More... | |
void | sip_route_dump (const struct sip_route *route) |
Verbose dump of all hops for debugging. More... | |
const char * | sip_route_first_uri (const struct sip_route *route) |
Get the URI of the route's first hop. More... | |
int | sip_route_is_strict (struct sip_route *route) |
Check if the route is strict. More... | |
struct ast_str * | sip_route_list (const struct sip_route *route, int formatcli, int skip) |
Make the comma separated list of route hops. More... | |
void | sip_route_process_header (struct sip_route *route, const char *header, int inserthead) |
Add routes from header. More... | |
#define sip_route_empty | ( | route | ) | AST_LIST_EMPTY(&(route)->list) |
Check if route has no URI's.
Definition at line 118 of file route.h.
Referenced by add_route(), build_route(), create_addr_from_peer(), handle_response_invite(), parse_register_contact(), reqprep(), sip_poke_peer(), sip_route_add(), and sip_route_dump().
enum sip_route_type |
Enumerator | |
---|---|
route_loose | The first hop contains ;lr or does not exist |
route_strict | The first hop exists and does not contain ;lr |
route_invalidated | strict/loose routing needs to be rechecked |
const char* sip_route_add | ( | struct sip_route * | route, |
const char * | uri, | ||
size_t | len, | ||
int | inserthead | ||
) |
Add a new hop to the route.
route | Route |
uri | Address of this hop |
len | Length of hop not including null terminator |
inserthead | If true then inserted the new route to the top of the list |
Pointer | to null terminated copy of URI on success |
NULL | on error |
Definition at line 47 of file route.c.
References ast_copy_string(), AST_LIST_INSERT_HEAD, AST_LIST_INSERT_TAIL, ast_malloc, sip_route_hop::list, sip_route::list, sip_route_hop::next, NULL, route_invalidated, sip_route_empty, sip_route::type, and sip_route_hop::uri.
Referenced by build_route(), sip_route_copy(), and sip_route_process_header().
void sip_route_clear | ( | struct sip_route * | route | ) |
Free all routes in the list.
Definition at line 132 of file route.c.
References ast_free, AST_LIST_REMOVE_HEAD, sip_route_hop::list, sip_route::list, route_loose, and sip_route::type.
Referenced by build_path(), build_route(), sip_destroy_peer(), sip_pvt_dtor(), and sip_route_copy().
copy route-set
non-zero | on failure |
0 | on success |
Definition at line 115 of file route.c.
References ast_debug, sip_route_add(), sip_route_clear(), sip_route_traverse, sip_route::type, and sip_route_hop::uri.
Referenced by create_addr_from_peer(), and sip_poke_peer().
void sip_route_dump | ( | const struct sip_route * | route | ) |
Verbose dump of all hops for debugging.
Definition at line 143 of file route.c.
References ast_verbose(), sip_route_empty, sip_route_traverse, and sip_route_hop::uri.
Referenced by build_path(), and build_route().
const char* sip_route_first_uri | ( | const struct sip_route * | route | ) |
Get the URI of the route's first hop.
Definition at line 199 of file route.c.
References NULL, sip_route_first, and sip_route_hop::uri.
Referenced by build_route(), create_addr_from_peer(), reqprep(), and sip_poke_peer().
int sip_route_is_strict | ( | struct sip_route * | route | ) |
Check if the route is strict.
Definition at line 183 of file route.c.
References NULL, route_invalidated, route_loose, route_strict, sip_route_first, sip_route::type, and sip_route_hop::uri.
Referenced by build_path(), build_route(), and reqprep().
Make the comma separated list of route hops.
route | Source of route list |
formatcli | Add's space after comma's, print's N/A if list is empty. |
skip | Number of hops to skip |
an | allocated struct ast_str on success |
NULL | on failure |
Definition at line 155 of file route.c.
References ast_str_append(), ast_str_create, buf, NULL, sip_route_traverse, and sip_route_hop::uri.
Referenced by _sip_show_peer(), add_route(), parse_register_contact(), sip_show_channel(), and update_peer().
void sip_route_process_header | ( | struct sip_route * | route, |
const char * | header, | ||
int | inserthead | ||
) |
Add routes from header.
Definition at line 79 of file route.c.
References ast_debug, ast_do_crash(), ast_log, get_in_brackets_const(), len(), LOG_ERROR, NULL, sip_route_add(), and sip_route_hop::uri.
Referenced by build_path(), and build_route().