1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-26 15:03:53 +01:00

nanocoap: add coap_opt_put_string_with_len()

This commit is contained in:
Benjamin Valentin 2021-01-21 15:17:28 +01:00
parent ac4bd3abf8
commit b24480538a
2 changed files with 24 additions and 6 deletions

View File

@ -1269,12 +1269,32 @@ static inline size_t coap_opt_put_block2_control(uint8_t *buf, uint16_t lastonum
* or 0 if first option
* @param[in] optnum option number to use
* @param[in] string string to encode as option
* @param[in] len length of the string
* @param[in] separator character used in @p string to separate parts
*
* @return number of bytes written to @p buf
*/
size_t coap_opt_put_string(uint8_t *buf, uint16_t lastonum, uint16_t optnum,
const char *string, char separator);
size_t coap_opt_put_string_with_len(uint8_t *buf, uint16_t lastonum, uint16_t optnum,
const char *string, size_t len, char separator);
/**
* @brief Encode the given string as multi-part option into buffer
*
* @param[out] buf buffer to write to
* @param[in] lastonum number of previous option (for delta calculation),
* or 0 if first option
* @param[in] optnum option number to use
* @param[in] string string to encode as option
* @param[in] separator character used in @p string to separate parts
*
* @return number of bytes written to @p buf
*/
static inline size_t coap_opt_put_string(uint8_t *buf, uint16_t lastonum,
uint16_t optnum,
const char *string, char separator)
{
return coap_opt_put_string_with_len(buf, lastonum, optnum,
string, strlen(string), separator);
}
/**
* @brief Convenience function for inserting LOCATION_PATH option into buffer

View File

@ -747,11 +747,9 @@ size_t coap_opt_put_block(uint8_t *buf, uint16_t lastonum, coap_block_slicer_t *
return coap_opt_put_uint(buf, lastonum, option, _slicer2blkopt(slicer, more));
}
size_t coap_opt_put_string(uint8_t *buf, uint16_t lastonum, uint16_t optnum,
const char *string, char separator)
size_t coap_opt_put_string_with_len(uint8_t *buf, uint16_t lastonum, uint16_t optnum,
const char *string, size_t len, char separator)
{
size_t len = strlen(string);
if (len == 0) {
return 0;
}