summaryrefslogtreecommitdiffstats
path: root/usr.bin/dig/lib/isc/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/dig/lib/isc/buffer.c')
-rw-r--r--usr.bin/dig/lib/isc/buffer.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/usr.bin/dig/lib/isc/buffer.c b/usr.bin/dig/lib/isc/buffer.c
index 9dce1033ec8..421b7abe1d8 100644
--- a/usr.bin/dig/lib/isc/buffer.c
+++ b/usr.bin/dig/lib/isc/buffer.c
@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: buffer.c,v 1.7 2020/02/26 18:47:25 florian Exp $ */
+/* $Id: buffer.c,v 1.8 2020/02/26 18:47:59 florian Exp $ */
/*! \file */
@@ -364,3 +364,20 @@ isc_mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
+
+/* this used to be str_totext() in rdata.c etc. */
+isc_result_t
+isc_str_tobuffer(const char *source, isc_buffer_t *target) {
+ unsigned int l;
+ isc_region_t region;
+
+ isc_buffer_availableregion(target, &region);
+ l = strlen(source);
+
+ if (l > region.length)
+ return (ISC_R_NOSPACE);
+
+ memmove(region.base, source, l);
+ isc_buffer_add(target, l);
+ return (ISC_R_SUCCESS);
+}