Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-02-10 23:43:51 +0400
committerFelix Fietkau <nbd@openwrt.org>2013-02-10 23:43:51 +0400
commit4ab499899ce2ed884a1235ada501c39e355911e7 (patch)
tree7b06a1fc4cc7c36768a20c6e201ab6cb87402d93 /blobmsg.c
parentb786f852674769813061474366e936fe6e5bd22e (diff)
blobmsg: add blobmsg_realloc_string_buffer()
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'blobmsg.c')
-rw-r--r--blobmsg.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/blobmsg.c b/blobmsg.c
index 7257eae..8db2238 100644
--- a/blobmsg.c
+++ b/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)
{