diff options
author | Günther Deschner <gd@samba.org> | 2009-02-02 16:41:44 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-02-03 15:42:29 +0100 |
commit | 35f1e02ca4c31214e85b7c25d8f695eb035871d7 (patch) | |
tree | d1ca9275dadff2f383d3876c097b68cc7eebcecf /source3/librpc | |
parent | 329b8775f56c8a89f02646e11ba27a33080f48b1 (diff) | |
download | samba-35f1e02ca4c31214e85b7c25d8f695eb035871d7.tar.gz samba-35f1e02ca4c31214e85b7c25d8f695eb035871d7.tar.bz2 samba-35f1e02ca4c31214e85b7c25d8f695eb035871d7.zip |
librpc: add ndr_size_string_array().
Guenther
Diffstat (limited to 'source3/librpc')
-rw-r--r-- | source3/librpc/ndr/ndr_string.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source3/librpc/ndr/ndr_string.c b/source3/librpc/ndr/ndr_string.c index 86d7b26586..985d0f4daa 100644 --- a/source3/librpc/ndr/ndr_string.c +++ b/source3/librpc/ndr/ndr_string.c @@ -595,6 +595,29 @@ _PUBLIC_ void ndr_print_string_array(struct ndr_print *ndr, const char *name, co ndr->depth--; } +_PUBLIC_ size_t ndr_size_string_array(const char **a, uint32_t count, int flags) +{ + uint32_t i; + size_t size = 0; + + switch (flags & LIBNDR_STRING_FLAGS) { + case LIBNDR_FLAG_STR_NULLTERM: + for (i = 0; i < count; i++) { + size += strlen_m_term(a[i]); + } + break; + case LIBNDR_FLAG_STR_NOTERM: + for (i = 0; i < count; i++) { + size += strlen_m(a[i]); + } + break; + default: + return 0; + } + + return size; +} + /** * Return number of elements in a string including the last (zeroed) element */ |