diff options
author | Volker Lendecke <vl@samba.org> | 2011-03-08 14:23:15 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2011-04-13 14:13:24 -0700 |
commit | ef9d2b15e01d18dc2bf0379cc9a6df367812e287 (patch) | |
tree | 963b0522e3a2725ee93b9a7d811d4cae1917cde0 /source3/winbindd/winbindd_util.c | |
parent | 58e26c2589620f04684aed620054fde4cda98969 (diff) | |
download | samba-ef9d2b15e01d18dc2bf0379cc9a6df367812e287.tar.gz samba-ef9d2b15e01d18dc2bf0379cc9a6df367812e287.tar.bz2 samba-ef9d2b15e01d18dc2bf0379cc9a6df367812e287.zip |
s3: Make parse_sidlist public
Signed-off-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/winbindd/winbindd_util.c')
-rw-r--r-- | source3/winbindd/winbindd_util.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index 1a6cf8722e..b43d7b826f 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -1370,3 +1370,34 @@ bool is_domain_offline(const struct winbindd_domain *domain) } return !domain->online; } + +bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr, + struct dom_sid **sids, uint32_t *num_sids) +{ + const char *p; + + p = sidstr; + if (p == NULL) + return False; + + while (p[0] != '\0') { + struct dom_sid sid; + const char *q = NULL; + + if (!dom_sid_parse_endp(p, &sid, &q)) { + DEBUG(1, ("Could not parse sid %s\n", p)); + return false; + } + if ((q == NULL) || (q[0] != '\n')) { + DEBUG(1, ("Got invalid sidstr: %s\n", p)); + return false; + } + if (!NT_STATUS_IS_OK(add_sid_to_array(mem_ctx, &sid, sids, + num_sids))) + { + return False; + } + p = q+1; + } + return True; +} |