diff options
| author | Christian Hopps <chopps@labn.net> | 2024-06-04 10:28:48 -0400 |
|---|---|---|
| committer | Christian Hopps <chopps@labn.net> | 2024-06-06 22:39:47 -0400 |
| commit | 33b73f8e3aa13679ba3aad82be2a88d7cb69f426 (patch) | |
| tree | 3248dbe0ea5b884ccec2f4ff7769dce10d162abe /lib/mgmt_msg_native.c | |
| parent | 22eccbfab916b2c6b64037e872a5c5a870d1a4d6 (diff) | |
lib: native msg add array of strings support
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'lib/mgmt_msg_native.c')
| -rw-r--r-- | lib/mgmt_msg_native.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/mgmt_msg_native.c b/lib/mgmt_msg_native.c index 39ce9abae6..d0a0b72189 100644 --- a/lib/mgmt_msg_native.c +++ b/lib/mgmt_msg_native.c @@ -6,6 +6,7 @@ * */ #include <zebra.h> +#include "darr.h" #include "mgmt_msg_native.h" DEFINE_MGROUP(MSG_NATIVE, "Native message allocations"); @@ -50,3 +51,20 @@ int vmgmt_msg_native_send_error(struct msg_conn *conn, uint64_t sess_or_txn_id, mgmt_msg_native_free_msg(msg); return ret; } + +const char **_mgmt_msg_native_strings_decode(const void *_sdata, int sdlen) +{ + const char *sdata = _sdata; + const char **strings = NULL; + int len; + + if (sdata[sdlen - 1] != 0) + return NULL; + + for (; sdlen; sdata += len, sdlen -= len) { + *darr_append(strings) = darr_strdup(sdata); + len = 1 + darr_strlen(strings[darr_lasti(strings)]); + } + + return strings; +} |
