summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_util.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-03-08 14:23:15 +0100
committerJeremy Allison <jra@samba.org>2011-04-13 14:13:24 -0700
commitef9d2b15e01d18dc2bf0379cc9a6df367812e287 (patch)
tree963b0522e3a2725ee93b9a7d811d4cae1917cde0 /source3/winbindd/winbindd_util.c
parent58e26c2589620f04684aed620054fde4cda98969 (diff)
downloadsamba-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.c31
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;
+}