blobmsg: add blobmsg_realloc_string_buffer()

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
This commit is contained in:
Felix Fietkau 2013-02-10 20:43:51 +01:00
parent b786f85267
commit 4ab499899c
2 changed files with 18 additions and 0 deletions

View file

@ -233,6 +233,23 @@ blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen)
return data_dest; 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 void
blobmsg_add_string_buffer(struct blob_buf *buf) blobmsg_add_string_buffer(struct blob_buf *buf)
{ {

View file

@ -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_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); void blobmsg_add_string_buffer(struct blob_buf *buf);
/* blobmsg to json formatting */ /* blobmsg to json formatting */