summaryrefslogtreecommitdiff
path: root/source4/winbind
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2011-09-24 10:45:59 -0700
committerKai Blin <kai@samba.org>2011-09-24 22:49:49 +0200
commit649bfc474dc85c921c2739008eb2b645fd7e2baf (patch)
tree8978145a9a46519be8f3060e2ff4c8b4518c60bf /source4/winbind
parentca8c25abebb8715176f68be9916217db9a8400dd (diff)
downloadsamba-649bfc474dc85c921c2739008eb2b645fd7e2baf.tar.gz
samba-649bfc474dc85c921c2739008eb2b645fd7e2baf.tar.bz2
samba-649bfc474dc85c921c2739008eb2b645fd7e2baf.zip
s4 winbind: Don't drop workgroup name for getpw*
Autobuild-User: Kai Blin <kai@samba.org> Autobuild-Date: Sat Sep 24 22:49:50 CEST 2011 on sn-devel-104
Diffstat (limited to 'source4/winbind')
-rw-r--r--source4/winbind/wb_cmd_getpwnam.c9
-rw-r--r--source4/winbind/wb_cmd_getpwuid.c9
2 files changed, 16 insertions, 2 deletions
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,