s4 winbind: Don't drop workgroup name for getpw*
authorKai Blin <kai@samba.org>
Sat, 24 Sep 2011 17:45:59 +0000 (10:45 -0700)
committerKai Blin <kai@samba.org>
Sat, 24 Sep 2011 20:49:49 +0000 (22:49 +0200)
Autobuild-User: Kai Blin <kai@samba.org>
Autobuild-Date: Sat Sep 24 22:49:50 CEST 2011 on sn-devel-104

source4/winbind/wb_cmd_getpwnam.c
source4/winbind/wb_cmd_getpwuid.c

index ac723593d2c63c95e3896ed836ea66944ecc5431..0ba4cb6bcc0f793fe9ad7debc8bdf9650640f217 100644 (file)
@@ -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, 
index f6f3cb282e77be726c697d6bf547979c62b90c87..73bbb59bc3d2fb2d21b5fe984560b52fb5efe1a0 100644 (file)
@@ -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,