|
libcoap 4.3.5-develop-13abce9
|
API for parsing URIs. More...
Collaboration diagram for URI Parsing Functions:Functions | |
| int | coap_split_uri (const uint8_t *str_var, size_t len, coap_uri_t *uri) |
| Parses a given string into URI components. | |
| int | coap_split_proxy_uri (const uint8_t *str_var, size_t len, coap_uri_t *uri) |
| Parses a given string into URI components. | |
| int | coap_uri_into_options (const coap_uri_t *uri, const coap_address_t *dst, coap_optlist_t **optlist_chain, int create_port_host_opt, uint8_t *buf, size_t buflen) |
Takes a coap_uri_t and then adds CoAP options into the optlist_chain. | |
| int | coap_uri_into_optlist (const coap_uri_t *uri, const coap_address_t *dst, coap_optlist_t **optlist_chain, int create_port_host_opt) |
Takes a coap_uri_t and then adds CoAP options into the optlist_chain. | |
| int | coap_split_path (const uint8_t *path, size_t length, unsigned char *buf, size_t *buflen) |
| Splits the given URI path into segments. | |
| int | coap_path_into_optlist (const uint8_t *path, size_t length, coap_option_num_t optnum, coap_optlist_t **optlist_chain) |
Splits the given URI path into '/' separate segments, and then adds the Uri-Path / Location-Path option for each segment to the optlist_chain. | |
| int | coap_split_query (const uint8_t *query, size_t length, unsigned char *buf, size_t *buflen) |
| Splits the given URI query into segments. | |
| int | coap_query_into_optlist (const uint8_t *query, size_t length, coap_option_num_t optnum, coap_optlist_t **optlist_chain) |
Splits the given URI query into '&' separate segments, and then adds the Uri-Query / Location-Query option for each segment to the optlist_chain. | |
| coap_string_t * | coap_get_query (const coap_pdu_t *request) |
| Extract query string from request PDU according to escape rules in 6.5.8. | |
| coap_string_t * | coap_get_uri_path (const coap_pdu_t *request) |
| Extract uri_path string from request PDU. | |
API for parsing URIs.
CoAP PDUs contain normalized URIs with their path and query split into multiple segments. The functions in this module help splitting strings.
| coap_string_t * coap_get_query | ( | const coap_pdu_t * | request | ) |
Extract query string from request PDU according to escape rules in 6.5.8.
| request | Request PDU. |
NULL if no query was contained in request. The coap_string_t object returned by this function must be released with coap_delete_string. Definition at line 957 of file coap_uri.c.
Here is the call graph for this function:| coap_string_t * coap_get_uri_path | ( | const coap_pdu_t * | request | ) |
Extract uri_path string from request PDU.
| request | Request PDU. |
NULL if no Uri-Path was contained in request. The coap_string_t object returned by this function must be released with coap_delete_string. Definition at line 1008 of file coap_uri.c.
Here is the call graph for this function:| int coap_path_into_optlist | ( | const uint8_t * | path, |
| size_t | length, | ||
| coap_option_num_t | optnum, | ||
| coap_optlist_t ** | optlist_chain | ||
| ) |
Splits the given URI path into '/' separate segments, and then adds the Uri-Path / Location-Path option for each segment to the optlist_chain.
Note: any segments that are just '.' or '..' are stripped out.
| path | The path string to split. |
| length | The actual length of path. |
| optnum | The CoAP option (COAP_OPTION_URI_PATH or COAP_OPTION_LOCATION_PATH) |
| optlist_chain | The chain of optlists to add to. optlist_chain parent is to be NULL or a previous set of optlists. |
1 on success else 0 if error. Definition at line 755 of file coap_uri.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int coap_query_into_optlist | ( | const uint8_t * | query, |
| size_t | length, | ||
| coap_option_num_t | optnum, | ||
| coap_optlist_t ** | optlist_chain | ||
| ) |
Splits the given URI query into '&' separate segments, and then adds the Uri-Query / Location-Query option for each segment to the optlist_chain.
| query | The query string to split. |
| length | The actual length of query. |
| optnum | The CoAP option (COAP_OPTION_URI_QUERY or COAP_OPTION_LOCATION_QUERY) |
| optlist_chain | The chain of optlists to add to. optlist_chain parent is to be NULL or a previous set of optlists. |
1 on success else 0 if error. Definition at line 845 of file coap_uri.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int coap_split_path | ( | const uint8_t * | path, |
| size_t | length, | ||
| unsigned char * | buf, | ||
| size_t * | buflen | ||
| ) |
Splits the given URI path into segments.
Each segment is preceded by an option pseudo-header with delta-value 0 and the actual length of the respective segment after percent-decoding.
| path | The path string to split. |
| length | The actual length of path. |
| buf | Result buffer for parsed segments. |
| buflen | Maximum length of buf. Will be set to the actual number of bytes written into buf on success. This needs to be at least length, but 2 bytes should be added for each segment to handle large segments. |
-1 on error. Definition at line 703 of file coap_uri.c.
Here is the call graph for this function:| int coap_split_proxy_uri | ( | const uint8_t * | str_var, |
| size_t | len, | ||
| coap_uri_t * | uri | ||
| ) |
Parses a given string into URI components.
The identified syntactic components are stored in the result parameter uri. Optional URI components that are not specified will be set to { 0, 0 }, except for the port which is set to default port for the protocol. This function returns 0 if parsing succeeded, a value less than zero otherwise. Note: This function enforces that the given string is in Proxy-Uri format as well as supports different schema such as http and https.
| str_var | The string to split up. |
| len | The actual length of str_var |
| uri | The coap_uri_t object to store the result. |
0 on success, or < 0 on error. Definition at line 299 of file coap_uri.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int coap_split_query | ( | const uint8_t * | query, |
| size_t | length, | ||
| unsigned char * | buf, | ||
| size_t * | buflen | ||
| ) |
Splits the given URI query into segments.
Each segment is preceded by an option pseudo-header with delta-value 0 and the actual length of the respective query segment.
| query | The query string to split. |
| length | The actual length of query |
| buf | Result buffer for parsed segments. |
| buflen | Maximum length of buf. Will be set to the actual number of bytes written into buf on success. This needs to be at least length, but 2 bytes should be added for each segment to handle large segments. |
-1 on error. Definition at line 821 of file coap_uri.c.
Here is the call graph for this function:| int coap_split_uri | ( | const uint8_t * | str_var, |
| size_t | len, | ||
| coap_uri_t * | uri | ||
| ) |
Parses a given string into URI components.
The identified syntactic components are stored in the result parameter uri. Optional URI components that are not specified will be set to { 0, 0 }, except for the port which is set to the default port for the protocol. This function returns 0 if parsing succeeded, a value less than zero otherwise.
| str_var | The string to split up. |
| len | The actual length of str_var |
| uri | The coap_uri_t object to store the result. |
0 on success, or < 0 on error. Definition at line 294 of file coap_uri.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int coap_uri_into_options | ( | const coap_uri_t * | uri, |
| const coap_address_t * | dst, | ||
| coap_optlist_t ** | optlist_chain, | ||
| int | create_port_host_opt, | ||
| uint8_t * | buf, | ||
| size_t | buflen | ||
| ) |
Takes a coap_uri_t and then adds CoAP options into the optlist_chain.
If the port is not the default port and create_port_host_opt is not 0, then the Uri-Port option is added to the optlist_chain. If the dst defines an address that does not match the host in uri->host and is not 0, then the Uri-Host option is added to the optlist_chain. Any path or query are broken down into the individual segment Uri-Path or Uri-Query options and added to the optlist_chain.
Note: coap_uri_into_optlist(3) is an alternative function (but has a different return value).
| uri | The coap_uri_t object. |
| dst | The destination, or NULL if URI_HOST not to be added. |
| optlist_chain | Where to store the chain of options. |
| create_port_host_opt | 1 if port/host option to be added (if non-default) else 0 |
| buf | Parameter ignored. Can be NULL. |
| buflen | Parameter ignored. |
0 on success, or < 0 on error. | int coap_uri_into_optlist | ( | const coap_uri_t * | uri, |
| const coap_address_t * | dst, | ||
| coap_optlist_t ** | optlist_chain, | ||
| int | create_port_host_opt | ||
| ) |
Takes a coap_uri_t and then adds CoAP options into the optlist_chain.
If the port is not the default port and create_port_host_opt is not 0, then the Uri-Port option is added to the optlist_chain. If the dst defines an address that does not match the host in uri->host and is not 0, then the Uri-Host option is added to the optlist_chain. Any path or query are broken down into the individual segment Uri-Path or Uri-Query options and added to the optlist_chain.
| uri | The coap_uri_t object. |
| dst | The destination, or NULL if URI_HOST not to be added. |
| optlist_chain | Where to store the chain of options. |
| create_port_host_opt | 1 if port/host option to be added (if non-default) else 0. |
1 on success, 0 if error. Definition at line 322 of file coap_uri.c.
Here is the call graph for this function:
Here is the caller graph for this function: