]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
New buffer_copy routine.
authorWouter Wijngaards <wouter@NLnetLabs.nl>
Thu, 21 Jun 2007 11:48:49 +0000 (11:48 +0000)
committerWouter Wijngaards <wouter@NLnetLabs.nl>
Thu, 21 Jun 2007 11:48:49 +0000 (11:48 +0000)
buffer.c
ldns/buffer.h

index 9aacf8bf38d2762c9e693cb70917344fb68ef9f7..7e51429a22d28ddf87f5d7397420cc101954c772 100644 (file)
--- a/buffer.c
+++ b/buffer.c
@@ -186,3 +186,14 @@ ldns_bgetc(ldns_buffer *buffer)
        }
        return (int)ldns_buffer_read_u8(buffer);
 }
+
+void 
+ldns_buffer_copy(ldns_buffer* result, ldns_buffer* from)
+{
+       size_t tocopy = ldns_buffer_limit(from);
+       if(tocopy > ldns_buffer_capacity(result))
+               tocopy = ldns_buffer_capacity(result);
+       ldns_buffer_clear(result);
+       ldns_buffer_write(result, ldns_buffer_begin(from), tocopy);
+       ldns_buffer_flip(result);
+}
index 64637fb8a69636d2d9f4c7dce618928184ea5f25..3249a33f469357b20c794229c1d067bd27e4a38b 100644 (file)
@@ -606,4 +606,12 @@ void ldns_buffer_free(ldns_buffer *buffer);
  */
 void *ldns_buffer_export(ldns_buffer *buffer);
 
+/**
+ * Copy contents of the other buffer to this buffer. Silently truncated
+ * if this buffer is too small.
+ * @param[result] resulting buffer which is copied to.
+ * @param[from] what to copy to result.
+ */
+void ldns_buffer_copy(ldns_buffer* result, ldns_buffer* from);
+
 #endif /* LDNS_BUFFER_H */