summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/winbindd/winbindd_async.c39
-rw-r--r--source3/winbindd/winbindd_getsidaliases.c42
-rw-r--r--source3/winbindd/winbindd_proto.h5
3 files changed, 42 insertions, 44 deletions
diff --git a/source3/winbindd/winbindd_async.c b/source3/winbindd/winbindd_async.c
index 9a565bffd0..75dfa0e54e 100644
--- a/source3/winbindd/winbindd_async.c
+++ b/source3/winbindd/winbindd_async.c
@@ -27,45 +27,6 @@
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_WINBIND
-bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
- struct dom_sid **sids, uint32_t *num_sids)
-{
- const char *p, *q;
-
- p = sidstr;
- if (p == NULL)
- return False;
-
- while (p[0] != '\0') {
- fstring tmp;
- size_t sidlen;
- struct dom_sid sid;
- q = strchr(p, '\n');
- if (q == NULL) {
- DEBUG(0, ("Got invalid sidstr: %s\n", p));
- return False;
- }
- sidlen = PTR_DIFF(q, p);
- if (sidlen >= sizeof(tmp)-1) {
- return false;
- }
- memcpy(tmp, p, sidlen);
- tmp[sidlen] = '\0';
- q += 1;
- if (!string_to_sid(&sid, tmp)) {
- DEBUG(0, ("Could not parse sid %s\n", p));
- return False;
- }
- if (!NT_STATUS_IS_OK(add_sid_to_array(mem_ctx, &sid, sids,
- num_sids)))
- {
- return False;
- }
- p = q;
- }
- return True;
-}
-
enum winbindd_result winbindd_dual_ping(struct winbindd_domain *domain,
struct winbindd_cli_state *state)
{
diff --git a/source3/winbindd/winbindd_getsidaliases.c b/source3/winbindd/winbindd_getsidaliases.c
index f01dac9c4c..ebaaf4d2df 100644
--- a/source3/winbindd/winbindd_getsidaliases.c
+++ b/source3/winbindd/winbindd_getsidaliases.c
@@ -27,6 +27,9 @@ struct winbindd_getsidaliases_state {
uint32_t *aliases;
};
+static bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
+ struct dom_sid **sids, uint32_t *num_sids);
+
static void winbindd_getsidaliases_done(struct tevent_req *subreq);
struct tevent_req *winbindd_getsidaliases_send(TALLOC_CTX *mem_ctx,
@@ -152,3 +155,42 @@ NTSTATUS winbindd_getsidaliases_recv(struct tevent_req *req,
response->data.num_entries = state->num_aliases;
return NT_STATUS_OK;
}
+
+static bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
+ struct dom_sid **sids, uint32_t *num_sids)
+{
+ const char *p, *q;
+
+ p = sidstr;
+ if (p == NULL)
+ return False;
+
+ while (p[0] != '\0') {
+ fstring tmp;
+ size_t sidlen;
+ struct dom_sid sid;
+ q = strchr(p, '\n');
+ if (q == NULL) {
+ DEBUG(0, ("Got invalid sidstr: %s\n", p));
+ return False;
+ }
+ sidlen = PTR_DIFF(q, p);
+ if (sidlen >= sizeof(tmp)-1) {
+ return false;
+ }
+ memcpy(tmp, p, sidlen);
+ tmp[sidlen] = '\0';
+ q += 1;
+ if (!string_to_sid(&sid, tmp)) {
+ DEBUG(0, ("Could not parse sid %s\n", p));
+ return False;
+ }
+ if (!NT_STATUS_IS_OK(add_sid_to_array(mem_ctx, &sid, sids,
+ num_sids)))
+ {
+ return False;
+ }
+ p = q;
+ }
+ return True;
+}
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index dbe723bead..dc56a72152 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -55,11 +55,6 @@ NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx,
struct dom_sid **sids,
enum lsa_SidType **types);
-/* The following definitions come from winbindd/winbindd_async.c */
-
-bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
- struct dom_sid **sids, uint32_t *num_sids);
-
/* The following definitions come from winbindd/winbindd_cache.c */
struct cache_entry *centry_start(struct winbindd_domain *domain, NTSTATUS status);