diff options
author | Gerald Carter <jerry@samba.org> | 2007-01-24 01:48:08 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:23 -0500 |
commit | b9b26be1744b792a54f0a77af140237b4dc5a870 (patch) | |
tree | 96501a60f415248f226902f790420dec7758a540 /source3/nsswitch/winbindd_async.c | |
parent | 78f5f4b260d877ce615dbbdc2bccbb0cd251f08a (diff) | |
download | samba-b9b26be1744b792a54f0a77af140237b4dc5a870.tar.gz samba-b9b26be1744b792a54f0a77af140237b4dc5a870.tar.bz2 samba-b9b26be1744b792a54f0a77af140237b4dc5a870.zip |
r20986: Commit the prototype of the nss_info plugin interface.
This allows a provider to supply the homedirectory, etc...
attributes for a user without requiring support in core
winbindd code. The idmap_ad.c module has been modified
to provide the idmap 'ad' library as well as the rfc2307 and sfu
"winbind nss info" support.
The SID/id mapping is working in idmap_ad but the nss_info
still has a few quirks that I'm in the process of resolving.
(This used to be commit aaec0115e2c96935499052d9a637a20c6445986e)
Diffstat (limited to 'source3/nsswitch/winbindd_async.c')
-rw-r--r-- | source3/nsswitch/winbindd_async.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source3/nsswitch/winbindd_async.c b/source3/nsswitch/winbindd_async.c index d70d6a0806..ee81b14f2f 100644 --- a/source3/nsswitch/winbindd_async.c +++ b/source3/nsswitch/winbindd_async.c @@ -764,7 +764,9 @@ enum winbindd_result winbindd_dual_lookupsid(struct winbindd_domain *domain, } fstrcpy(state->response.data.name.dom_name, dom_name); + TALLOC_FREE(dom_name); fstrcpy(state->response.data.name.name, name); + TALLOC_FREE(name); state->response.data.name.type = type; TALLOC_FREE(dom_name); @@ -1397,13 +1399,13 @@ static void query_user_recv(TALLOC_CTX *mem_ctx, BOOL success, { void (*cont)(void *priv, BOOL succ, const char *acct_name, const char *full_name, const char *homedir, - const char *shell, uint32 group_rid) = + const char *shell, uint32 gid, uint32 group_rid) = (void (*)(void *, BOOL, const char *, const char *, - const char *, const char *, uint32))c; + const char *, const char *, uint32, uint32))c; if (!success) { DEBUG(5, ("Could not trigger query_user\n")); - cont(private_data, False, NULL, NULL, NULL, NULL, -1); + cont(private_data, False, NULL, NULL, NULL, NULL, -1, -1); return; } @@ -1411,6 +1413,7 @@ static void query_user_recv(TALLOC_CTX *mem_ctx, BOOL success, response->data.user_info.full_name, response->data.user_info.homedir, response->data.user_info.shell, + response->data.user_info.primary_gid, response->data.user_info.group_rid); } @@ -1421,6 +1424,7 @@ void query_user_async(TALLOC_CTX *mem_ctx, struct winbindd_domain *domain, const char *full_name, const char *homedir, const char *shell, + gid_t gid, uint32 group_rid), void *private_data) { |