2 Allow setting unicodePwd with NTHash vlue over LDAP
4 --- samba-4.0.7/source4/libcli/ldap/ldap_controls.c~ 2013-07-02 20:19:37.554868793 +0200
5 +++ samba-4.0.7/source4/libcli/ldap/ldap_controls.c 2013-07-02 21:00:47.595973713 +0200
7 { LDB_CONTROL_REVEAL_INTERNALS, NULL, NULL },
8 { LDB_CONTROL_AS_SYSTEM_OID, NULL, NULL },
9 { DSDB_CONTROL_PASSWORD_CHANGE_STATUS_OID, NULL, NULL },
10 - { DSDB_CONTROL_PASSWORD_HASH_VALUES_OID, NULL, NULL },
11 + { DSDB_CONTROL_PASSWORD_HASH_VALUES_OID, decode_flag_request, encode_flag_request },
12 { DSDB_CONTROL_PASSWORD_CHANGE_OID, NULL, NULL },
13 { DSDB_CONTROL_APPLY_LINKS, NULL, NULL },
14 { LDB_CONTROL_BYPASS_OPERATIONAL_OID, NULL, NULL },
15 --- samba-4.0.7/source4/dsdb/samdb/ldb_modules/password_hash.c~ 2013-07-02 20:01:42.731518064 +0200
16 +++ samba-4.0.7/source4/dsdb/samdb/ldb_modules/password_hash.c 2013-07-02 20:39:24.909757777 +0200
17 @@ -3386,10 +3386,29 @@
18 return ldb_next_request(ac->module, mod_req);
21 +static int password_hash_init(struct ldb_module *module)
23 + struct ldb_context *ldb;
26 + ldb = ldb_module_get_ctx(module);
28 + ret = ldb_mod_register_control(module, DSDB_CONTROL_PASSWORD_HASH_VALUES_OID);
29 + if (ret != LDB_SUCCESS) {
30 + ldb_debug(ldb, LDB_DEBUG_ERROR,
31 + "password_hash: Unable to register control (%s) with rootdse!\n",
32 + DSDB_CONTROL_PASSWORD_HASH_VALUES_OID);
33 + return ldb_operr(ldb);
36 + return ldb_next_init(module);
39 static const struct ldb_module_ops ldb_password_hash_module_ops = {
40 .name = "password_hash",
41 .add = password_hash_add,
42 - .modify = password_hash_modify
43 + .modify = password_hash_modify,
44 + .init_context = password_hash_init
47 int ldb_password_hash_module_init(const char *version)