blobmsg: add blobmsg_realloc_string_buffer()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
This commit is contained in:
parent
b786f85267
commit
4ab499899c
2 changed files with 18 additions and 0 deletions
17
blobmsg.c
17
blobmsg.c
|
@ -233,6 +233,23 @@ blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen)
|
|||
return data_dest;
|
||||
}
|
||||
|
||||
void *
|
||||
blobmsg_realloc_string_buffer(struct blob_buf *buf, int maxlen)
|
||||
{
|
||||
struct blob_attr *attr = blob_next(buf->head);
|
||||
int offset = attr_to_offset(buf, blob_next(buf->head)) + blob_pad_len(attr);
|
||||
int required = maxlen - (buf->buflen - offset);
|
||||
|
||||
if (required <= 0)
|
||||
goto out;
|
||||
|
||||
blob_buf_grow(buf, required);
|
||||
attr = blob_next(buf->head);
|
||||
|
||||
out:
|
||||
return blobmsg_data(attr);
|
||||
}
|
||||
|
||||
void
|
||||
blobmsg_add_string_buffer(struct blob_buf *buf)
|
||||
{
|
||||
|
|
|
@ -192,6 +192,7 @@ static inline char *blobmsg_get_string(struct blob_attr *attr)
|
|||
}
|
||||
|
||||
void *blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen);
|
||||
void *blobmsg_realloc_string_buffer(struct blob_buf *buf, int maxlen);
|
||||
void blobmsg_add_string_buffer(struct blob_buf *buf);
|
||||
|
||||
/* blobmsg to json formatting */
|
||||
|
|
Loading…
Reference in a new issue