s3: Pass "code_page" through samr
authorVolker Lendecke <vl@samba.org>
Tue, 15 Feb 2011 18:13:52 +0000 (19:13 +0100)
committerVolker Lendecke <vl@samba.org>
Tue, 15 Feb 2011 20:12:22 +0000 (21:12 +0100)
source3/rpc_server/samr/srv_samr_nt.c
source3/rpc_server/samr/srv_samr_util.c

index 7432e01601582810c8b206958f78f9b6ec6cf2df..7a0764359738fcf4d78f7c635dca7a43ee80a866 100644 (file)
@@ -2489,7 +2489,7 @@ static NTSTATUS get_user_info_2(TALLOC_CTX *mem_ctx,
        r->comment.string               = talloc_strdup(mem_ctx, pdb_get_comment(pw));
        r->reserved.string              = NULL;
        r->country_code                 = pdb_get_country_code(pw);
-       r->code_page                    = 0;
+       r->code_page                    = pdb_get_code_page(pw);
 
        return NT_STATUS_OK;
 }
@@ -2975,7 +2975,7 @@ static NTSTATUS get_user_info_21(TALLOC_CTX *mem_ctx,
        r->password_expired             = (pdb_get_pass_must_change_time(pw) == 0) ?
                                                PASS_MUST_CHANGE_AT_NEXT_LOGON : 0;
        r->country_code                 = pdb_get_country_code(pw);
-       r->code_page                    = 0;
+       r->code_page                    = pdb_get_code_page(pw);
        r->lm_password_set              = 0;
        r->nt_password_set              = 0;
 
index 77d40e0251c2e100950a237b5f29de86060df713..0bab1271f25d82716dda2da2712ee99547a4ce45 100644 (file)
@@ -649,6 +649,15 @@ void copy_id21_to_sam_passwd(const char *log_prefix,
                                from->country_code, PDB_CHANGED);
                }
        }
+
+       if (from->fields_present & SAMR_FIELD_CODE_PAGE) {
+               DEBUG(10,("%s SAMR_FIELD_CODE_PAGE: %08X -> %08X\n", l,
+                       pdb_get_code_page(to), from->code_page));
+               if (from->code_page != pdb_get_code_page(to)) {
+                       pdb_set_code_page(to,
+                               from->code_page, PDB_CHANGED);
+               }
+       }
 }