X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=blob.c;h=6d66fcdb85ce04b61363afb0742a6127faf16247;hp=c18f5a955450633e70a562f015ea65c7e15e6e6b;hb=be458596bd13f0a708d52efaa5c70bac2f8fe97d;hpb=b786f852674769813061474366e936fe6e5bd22e diff --git a/blob.c b/blob.c index c18f5a9..6d66fcd 100644 --- a/blob.c +++ b/blob.c @@ -135,6 +135,20 @@ blob_new(struct blob_buf *buf, int id, int payload) } struct blob_attr * +blob_put_raw(struct blob_buf *buf, const void *ptr, int len) +{ + struct blob_attr *attr; + + if (len < sizeof(struct blob_attr) || !ptr) + return NULL; + + attr = blob_add(buf, blob_next(buf->head), 0, len - sizeof(struct blob_attr)); + blob_set_raw_len(buf->head, blob_pad_len(buf->head) + len); + memcpy(attr, ptr, len); + return attr; +} + +struct blob_attr * blob_put(struct blob_buf *buf, int id, const void *ptr, int len) { struct blob_attr *attr;