From 649bfc474dc85c921c2739008eb2b645fd7e2baf Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Sat, 24 Sep 2011 10:45:59 -0700 Subject: s4 winbind: Don't drop workgroup name for getpw* Autobuild-User: Kai Blin Autobuild-Date: Sat Sep 24 22:49:50 CEST 2011 on sn-devel-104 --- source4/winbind/wb_cmd_getpwnam.c | 9 ++++++++- source4/winbind/wb_cmd_getpwuid.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'source4/winbind') diff --git a/source4/winbind/wb_cmd_getpwnam.c b/source4/winbind/wb_cmd_getpwnam.c index ac723593d2..0ba4cb6bcc 100644 --- a/source4/winbind/wb_cmd_getpwnam.c +++ b/source4/winbind/wb_cmd_getpwnam.c @@ -108,6 +108,7 @@ static void cmd_getpwnam_recv_user_info(struct composite_context *ctx) ctx->async.private_data, struct cmd_getpwnam_state); struct libnet_UserInfo *user_info; struct winbindd_pw *pw; + char *username_with_domain; DEBUG(5, ("cmd_getpwnam_recv_user_info called\n")); @@ -120,7 +121,13 @@ static void cmd_getpwnam_recv_user_info(struct composite_context *ctx) state->ctx->status = libnet_UserInfo_recv(ctx, state, user_info); if(!composite_is_ok(state->ctx)) return; - WBSRV_SAMBA3_SET_STRING(pw->pw_name, user_info->out.account_name); + username_with_domain = talloc_asprintf(pw, "%s%s%s", + state->workgroup_name, + lpcfg_winbind_separator(state->service->task->lp_ctx), + user_info->out.account_name); + if(composite_nomem(username_with_domain, state->ctx)) return; + + WBSRV_SAMBA3_SET_STRING(pw->pw_name, username_with_domain); WBSRV_SAMBA3_SET_STRING(pw->pw_passwd, "*"); WBSRV_SAMBA3_SET_STRING(pw->pw_gecos, user_info->out.full_name); WBSRV_SAMBA3_SET_STRING(pw->pw_dir, diff --git a/source4/winbind/wb_cmd_getpwuid.c b/source4/winbind/wb_cmd_getpwuid.c index f6f3cb282e..73bbb59bc3 100644 --- a/source4/winbind/wb_cmd_getpwuid.c +++ b/source4/winbind/wb_cmd_getpwuid.c @@ -129,6 +129,7 @@ static void cmd_getpwuid_recv_user_info(struct composite_context *ctx) struct cmd_getpwuid_state); struct libnet_UserInfo *user_info; struct winbindd_pw *pw; + char *username_with_domain; DEBUG(5, ("cmd_getpwuid_recv_user_info called\n")); @@ -141,7 +142,13 @@ static void cmd_getpwuid_recv_user_info(struct composite_context *ctx) state->ctx->status = libnet_UserInfo_recv(ctx, state, user_info); if (!composite_is_ok(state->ctx)) return; - WBSRV_SAMBA3_SET_STRING(pw->pw_name, user_info->out.account_name); + username_with_domain = talloc_asprintf(pw, "%s%s%s", + state->workgroup, + lpcfg_winbind_separator(state->service->task->lp_ctx), + user_info->out.account_name); + if(composite_nomem(username_with_domain, state->ctx)) return; + + WBSRV_SAMBA3_SET_STRING(pw->pw_name, username_with_domain); WBSRV_SAMBA3_SET_STRING(pw->pw_passwd, "*"); WBSRV_SAMBA3_SET_STRING(pw->pw_gecos, user_info->out.full_name); WBSRV_SAMBA3_SET_STRING(pw->pw_dir, -- cgit