The branch, master has been updated
       via  ad9050a... s4/drsuapi: Add another set of predefined ATTIDs
       via  799eb53... s4/metadata: fix whitespaces
       via  242b41a... s4/selftest: fix passwords in selftest-vars script
      from  6a90307... Fix our NTLMSSP implementation against the Microsoft 
torture tester.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ad9050a6ff57d847ba7d95f2cb33353d369dc42b
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed May 19 02:29:20 2010 +0300

    s4/drsuapi: Add another set of predefined ATTIDs
    
    Very useful for debugging/dumping purposes

commit 799eb535a907ba6b6bad92d85d1ca7ac9f857dea
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed May 19 02:28:09 2010 +0300

    s4/metadata: fix whitespaces

commit 242b41a3d8dfb5fd1cc1923e117f6d33bd145c55
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed May 19 02:18:17 2010 +0300

    s4/selftest: fix passwords in selftest-vars script

-----------------------------------------------------------------------

Summary of changes:
 librpc/idl/drsuapi.idl                          |    6 +-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |  142 +++++++++++-----------
 source4/scripting/devel/selftest-vars.sh        |    4 +-
 3 files changed, 78 insertions(+), 74 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index ef6ffef..cd99038 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -384,6 +384,7 @@ interface drsuapi
        typedef [flag(NDR_PAHEX),v1_enum,public] enum {
                DRSUAPI_ATTRIBUTE_objectClass                   = 0x00000000,
                DRSUAPI_ATTRIBUTE_cn                            = 0x00000003,
+               DRSUAPI_ATTRIBUTE_ou                            = 0x0000000b,
                DRSUAPI_ATTRIBUTE_description                   = 0x0000000d,
                DRSUAPI_ATTRIBUTE_member                        = 0x0000001f,
                DRSUAPI_ATTRIBUTE_instanceType                  = 0x00020001,
@@ -401,6 +402,7 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_rangeLower                    = 0x00020022,
                DRSUAPI_ATTRIBUTE_rangeUpper                    = 0x00020023,
                DRSUAPI_ATTRIBUTE_dMDLocation                   = 0x00020024,
+               DRSUAPI_ATTRIBUTE_isDeleted                     = 0x00020030,
                DRSUAPI_ATTRIBUTE_objectVersion                 = 0x0002004c,
                DRSUAPI_ATTRIBUTE_invocationId                  = 0x00020073,
                DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly        = 0x000200a9,
@@ -449,13 +451,15 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_userPrincipalName             = 0x00090290,
                DRSUAPI_ATTRIBUTE_groupType                     = 0x000902ee,
                DRSUAPI_ATTRIBUTE_servicePrincipalName          = 0x00090303,
+               DRSUAPI_ATTRIBUTE_lastKnownParent               = 0x0009030d,
                DRSUAPI_ATTRIBUTE_objectCategory                = 0x0009030e,
                DRSUAPI_ATTRIBUTE_gPLink                        = 0x0009037b,
                DRSUAPI_ATTRIBUTE_transportAddressAttribute     = 0x0009037f,
                DRSUAPI_ATTRIBUTE_msDS_Behavior_Version         = 0x000905b3,
                DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber         = 0x000906f6,
                DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs             = 0x0009071c,
-               DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs             = 0x0009072c,   
        
+               DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs             = 0x0009072c,
+               DRSUAPI_ATTRIBUTE_isRecycled                    = 0x0009080a,
                DRSUAPI_ATTRIBUTE_NONE                          = 0xFFFFFFFF
        } drsuapi_DsAttributeId;
 
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c 
b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 72ffd0e..db2415b 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -1,4 +1,4 @@
-/* 
+/*
    ldb database library
 
    Copyright (C) Simo Sorce  2004-2008
@@ -10,12 +10,12 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -349,7 +349,7 @@ static int replmd_add_backlink(struct ldb_module *module, 
const struct dsdb_sche
 
 /*
  * Callback for most write operations in this module:
- * 
+ *
  * notify the repl task that a object has changed. The notifies are
  * gathered up in the replmd_private structure then written to the
  * @REPLCHANGED object in each partition during the prepare_commit
@@ -357,9 +357,9 @@ static int replmd_add_backlink(struct ldb_module *module, 
const struct dsdb_sche
 static int replmd_op_callback(struct ldb_request *req, struct ldb_reply *ares)
 {
        int ret;
-       struct replmd_replicated_request *ac = 
+       struct replmd_replicated_request *ac =
                talloc_get_type_abort(req->context, struct 
replmd_replicated_request);
-       struct replmd_private *replmd_private = 
+       struct replmd_private *replmd_private =
                talloc_get_type_abort(ldb_module_get_private(ac->module), 
struct replmd_private);
        struct nc_entry *modified_partition;
        struct ldb_control *partition_ctrl;
@@ -391,15 +391,15 @@ static int replmd_op_callback(struct ldb_request *req, 
struct ldb_reply *ares)
 
        partition = talloc_get_type_abort(partition_ctrl->data,
                                    struct dsdb_control_current_partition);
-       
+
        if (ac->seq_num > 0) {
-               for (modified_partition = replmd_private->ncs; 
modified_partition; 
+               for (modified_partition = replmd_private->ncs; 
modified_partition;
                     modified_partition = modified_partition->next) {
                        if (ldb_dn_compare(modified_partition->dn, 
partition->dn) == 0) {
                                break;
                        }
                }
-               
+
                if (modified_partition == NULL) {
                        modified_partition = talloc_zero(replmd_private, struct 
nc_entry);
                        if (!modified_partition) {
@@ -427,7 +427,7 @@ static int replmd_op_callback(struct ldb_request *req, 
struct ldb_reply *ares)
        if (ac->apply_mode) {
                talloc_free(ares);
                ac->index_current++;
-               
+
                ret = replmd_replicated_apply_next(ac);
                if (ret != LDB_SUCCESS) {
                        return ldb_module_done(ac->req, NULL, NULL, ret);
@@ -438,7 +438,7 @@ static int replmd_op_callback(struct ldb_request *req, 
struct ldb_reply *ares)
                 * common path.  Other cases will have it cleaned up
                 * eventually with the ares */
                talloc_free(partition_ctrl);
-               return ldb_module_done(ac->req, 
+               return ldb_module_done(ac->req,
                                       controls_except_specified(controls, 
ares, partition_ctrl),
                                       ares->response, LDB_SUCCESS);
        }
@@ -602,10 +602,10 @@ static int replmd_replPropertyMetaDataCtr1_sort(struct 
replPropertyMetaDataCtr1
        rdn_sa = dsdb_attribute_by_lDAPDisplayName(schema, rdn_name);
        if (rdn_sa == NULL) {
                DEBUG(0,(__location__ ": No sa found for rDN %s for %s\n", 
rdn_name, ldb_dn_get_linearized(dn)));
-               return LDB_ERR_OPERATIONS_ERROR;                
+               return LDB_ERR_OPERATIONS_ERROR;
        }
 
-       DEBUG(6,("Sorting rpmd with attid exception %u rDN=%s DN=%s\n", 
+       DEBUG(6,("Sorting rpmd with attid exception %u rDN=%s DN=%s\n",
                 rdn_sa->attributeID_id, rdn_name, ldb_dn_get_linearized(dn)));
 
        LDB_TYPESAFE_QSORT(ctr1->array, ctr1->count, &rdn_sa->attributeID_id, 
replmd_replPropertyMetaData1_attid_sort);
@@ -620,7 +620,7 @@ static int replmd_ldb_message_element_attid_sort(const 
struct ldb_message_elemen
        const struct dsdb_attribute *a1;
        const struct dsdb_attribute *a2;
 
-       /* 
+       /*
         * TODO: make this faster by caching the dsdb_attribute pointer
         *       on the ldb_messag_element
         */
@@ -775,7 +775,7 @@ static int replmd_add(struct ldb_module *module, struct 
ldb_request *req)
                                talloc_free(ac);
                                return LDB_ERR_UNWILLING_TO_PERFORM;
                        }
-                       /* we remove this attribute as it can be a string and 
will not be treated 
+                       /* we remove this attribute as it can be a string and 
will not be treated
                        correctly and then we will readd it latter on in the 
good format*/
                        remove_current_guid = true;
                }
@@ -820,7 +820,7 @@ static int replmd_add(struct ldb_module *module, struct 
ldb_request *req)
                ldb_msg_remove_attr(msg,"objectGUID");
        }
 
-       /* 
+       /*
         * remove autogenerated attributes
         */
        ldb_msg_remove_attr(msg, "whenCreated");
@@ -910,7 +910,7 @@ static int replmd_add(struct ldb_module *module, struct 
ldb_request *req)
        }
 
        /* generated NDR encoded values */
-       ndr_err = ndr_push_struct_blob(&nmd_value, msg, 
+       ndr_err = ndr_push_struct_blob(&nmd_value, msg,
                                       &nmd,
                                       
(ndr_push_flags_fn_t)ndr_push_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1036,7 +1036,7 @@ static int replmd_update_rpmd_element(struct ldb_context 
*ldb,
 
        if (i == omd->ctr.ctr1.count) {
                /* we need to add a new one */
-               omd->ctr.ctr1.array = talloc_realloc(msg, omd->ctr.ctr1.array, 
+               omd->ctr.ctr1.array = talloc_realloc(msg, omd->ctr.ctr1.array,
                                                     struct 
replPropertyMetaData1, omd->ctr.ctr1.count+1);
                if (omd->ctr.ctr1.array == NULL) {
                        ldb_oom(ldb);
@@ -1048,7 +1048,7 @@ static int replmd_update_rpmd_element(struct ldb_context 
*ldb,
 
        /* Get a new sequence number from the backend. We only do this
         * if we have a change that requires a new
-        * replPropertyMetaData element 
+        * replPropertyMetaData element
         */
        if (*seq_num == 0) {
                int ret = ldb_sequence_number(ldb, LDB_SEQ_NEXT, seq_num);
@@ -1064,17 +1064,17 @@ static int replmd_update_rpmd_element(struct 
ldb_context *ldb,
        md1->originating_invocation_id = *our_invocation_id;
        md1->originating_usn           = *seq_num;
        md1->local_usn                 = *seq_num;
-       
+
        return LDB_SUCCESS;
 }
 
 /*
  * update the replPropertyMetaData object each time we modify an
  * object. This is needed for DRS replication, as the merge on the
- * client is based on this object 
+ * client is based on this object
  */
-static int replmd_update_rpmd(struct ldb_module *module, 
-                             const struct dsdb_schema *schema, 
+static int replmd_update_rpmd(struct ldb_module *module,
+                             const struct dsdb_schema *schema,
                              struct ldb_request *req,
                              struct ldb_message *msg, uint64_t *seq_num,
                              time_t t,
@@ -1224,7 +1224,7 @@ static int replmd_update_rpmd(struct ldb_module *module,
                el->values = md_value;
        }
 
-       return LDB_SUCCESS;     
+       return LDB_SUCCESS;
 }
 
 struct parsed_dn {
@@ -1588,7 +1588,7 @@ static int replmd_modify_la_add(struct ldb_module *module,
                talloc_free(tmp_ctx);
                return LDB_ERR_OPERATIONS_ERROR;
        }
-       
+
        ret = replmd_check_upgrade_links(old_dns, old_num_values, old_el, 
invocation_id);
        if (ret != LDB_SUCCESS) {
                talloc_free(tmp_ctx);
@@ -2247,7 +2247,7 @@ static int replmd_rename_callback(struct ldb_request 
*req, struct ldb_reply *are
                talloc_free(ac);
                return ret;
        }
-       
+
        if (add_uint64_element(msg, "uSNChanged", ac->seq_num) != LDB_SUCCESS) {
                talloc_free(ac);
                return ret;
@@ -2380,7 +2380,7 @@ static int replmd_delete(struct ldb_module *module, 
struct ldb_request *req)
                ldb_oom(ldb);
                return LDB_ERR_OPERATIONS_ERROR;
        }
-       
+
        schema = dsdb_get_schema(ldb, tmp_ctx);
        if (!schema) {
                return LDB_ERR_OPERATIONS_ERROR;
@@ -2590,7 +2590,7 @@ static int replmd_delete(struct ldb_module *module, 
struct ldb_request *req)
                                continue;
                        }
                        if (sa->linkID && sa->linkID & 1) {
-                       ret = replmd_delete_remove_link(module, schema, old_dn, 
el, sa);
+                               ret = replmd_delete_remove_link(module, schema, 
old_dn, el, sa);
                                if (ret != LDB_SUCCESS) {
                                        talloc_free(tmp_ctx);
                                        return LDB_ERR_OPERATIONS_ERROR;
@@ -2738,7 +2738,7 @@ static int replmd_replicated_apply_add(struct 
replmd_replicated_request *ar)
                        continue;
                }
        }
-       
+
        /*
         * the meta data array is already sorted by the caller
         */
@@ -3242,7 +3242,7 @@ static int replmd_replicated_uptodate_modify(struct 
replmd_replicated_request *a
                        if (ruv->cursors[i].highest_usn > 
nuv.ctr.ctr2.cursors[j].highest_usn) {
                                nuv.ctr.ctr2.cursors[j].highest_usn = 
ruv->cursors[i].highest_usn;
                        }
-                       break;                  
+                       break;
                }
 
                if (found) continue;
@@ -3357,7 +3357,7 @@ static int replmd_replicated_uptodate_modify(struct 
replmd_replicated_request *a
                        /*
                         * we compare the source dsa objectGUID not the 
invocation_id
                         * because we want only one repsFrom value per source 
dsa
-                        * and when the invocation_id of the source dsa has 
changed we don't need 
+                        * and when the invocation_id of the source dsa has 
changed we don't need
                         * the old repsFrom with the old invocation_id
                         */
                        if (!GUID_equal(&trf->ctr.ctr1.source_dsa_obj_guid,
@@ -3393,7 +3393,7 @@ static int replmd_replicated_uptodate_modify(struct 
replmd_replicated_request *a
        }
 
        /* we now fill the value which is already attached to ldb_message */
-       ndr_err = ndr_push_struct_blob(nrf_value, msg, 
+       ndr_err = ndr_push_struct_blob(nrf_value, msg,
                                       &nrf,
                                       
(ndr_push_flags_fn_t)ndr_push_repsFromToBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -3401,7 +3401,7 @@ static int replmd_replicated_uptodate_modify(struct 
replmd_replicated_request *a
                return replmd_replicated_request_werror(ar, 
ntstatus_to_werror(nt_status));
        }
 
-       /* 
+       /*
         * the ldb_message_element for the attribute, has all the old values 
and the new one
         * so we'll replace the whole attribute with all values
         */
@@ -3509,7 +3509,7 @@ static int replmd_extended_replicated_objects(struct 
ldb_module *module, struct
        struct ldb_control **ctrls;
        int ret;
        uint32_t i;
-       struct replmd_private *replmd_private = 
+       struct replmd_private *replmd_private =
                talloc_get_type(ldb_module_get_private(module), struct 
replmd_private);
 
        ldb = ldb_module_get_ctx(module);
@@ -3598,7 +3598,7 @@ static int replmd_extended_replicated_objects(struct 
ldb_module *module, struct
  */
 static int replmd_process_linked_attribute(struct ldb_module *module,
                                           struct la_entry *la_entry)
-{                                         
+{
        struct drsuapi_DsReplicaLinkedAttribute *la = la_entry->la;
        struct ldb_context *ldb = ldb_module_get_ctx(module);
        struct ldb_message *msg;
@@ -3620,40 +3620,40 @@ static int replmd_process_linked_attribute(struct 
ldb_module *module,
        const struct GUID *our_invocation_id;
 
 /*
-linked_attributes[0]:                                                     
-     &objs->linked_attributes[i]: struct drsuapi_DsReplicaLinkedAttribute 
-        identifier               : *                                      
-            identifier: struct drsuapi_DsReplicaObjectIdentifier          
-                __ndr_size               : 0x0000003a (58)                
-                __ndr_size_sid           : 0x00000000 (0)                 
+linked_attributes[0]:
+     &objs->linked_attributes[i]: struct drsuapi_DsReplicaLinkedAttribute
+        identifier               : *
+            identifier: struct drsuapi_DsReplicaObjectIdentifier
+                __ndr_size               : 0x0000003a (58)
+                __ndr_size_sid           : 0x00000000 (0)
                 guid                     : 8e95b6a9-13dd-4158-89db-3220a5be5cc7
-                sid                      : S-0-0                               
-                __ndr_size_dn            : 0x00000000 (0)                      
-                dn                       : ''                                  
-        attid                    : DRSUAPI_ATTRIBUTE_member (0x1F)             
-        value: struct drsuapi_DsAttributeValue                                 
-            __ndr_size               : 0x0000007e (126)                        
-            blob                     : *                                       
-                blob                     : DATA_BLOB length=126                
-        flags                    : 0x00000001 (1)                              
-               1: DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE                      
-        originating_add_time     : Wed Sep  2 22:20:01 2009 EST                
-        meta_data: struct drsuapi_DsReplicaMetaData                            
-            version                  : 0x00000015 (21)                         
-            originating_change_time  : Wed Sep  2 23:39:07 2009 EST            
-            originating_invocation_id: 794640f3-18cf-40ee-a211-a93992b67a64    
-            originating_usn          : 0x000000000001e19c (123292)             
+                sid                      : S-0-0
+                __ndr_size_dn            : 0x00000000 (0)
+                dn                       : ''
+        attid                    : DRSUAPI_ATTRIBUTE_member (0x1F)
+        value: struct drsuapi_DsAttributeValue
+            __ndr_size               : 0x0000007e (126)
+            blob                     : *
+                blob                     : DATA_BLOB length=126
+        flags                    : 0x00000001 (1)
+               1: DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE
+        originating_add_time     : Wed Sep  2 22:20:01 2009 EST
+        meta_data: struct drsuapi_DsReplicaMetaData
+            version                  : 0x00000015 (21)
+            originating_change_time  : Wed Sep  2 23:39:07 2009 EST
+            originating_invocation_id: 794640f3-18cf-40ee-a211-a93992b67a64
+            originating_usn          : 0x000000000001e19c (123292)
 
 (for cases where the link is to a normal DN)
-     &target: struct drsuapi_DsReplicaObjectIdentifier3                        
-        __ndr_size               : 0x0000007e (126)                            
-        __ndr_size_sid           : 0x0000001c (28)                             
-        guid                     : 7639e594-db75-4086-b0d4-67890ae46031        
+     &target: struct drsuapi_DsReplicaObjectIdentifier3
+        __ndr_size               : 0x0000007e (126)
+        __ndr_size_sid           : 0x0000001c (28)
+        guid                     : 7639e594-db75-4086-b0d4-67890ae46031
         sid                      : 
S-1-5-21-2848215498-2472035911-1947525656-19924
-        __ndr_size_dn            : 0x00000022 (34)                             
   
-        dn                       : 'CN=UOne,OU=TestOU,DC=vsofs8,DC=com'        
   
+        __ndr_size_dn            : 0x00000022 (34)
+        dn                       : 'CN=UOne,OU=TestOU,DC=vsofs8,DC=com'
  */
-       
+
        /* find the attribute being modified */
        attr = dsdb_attribute_by_attributeID_id(schema, la->attid);
        if (attr == NULL) {
@@ -3868,10 +3868,10 @@ linked_attributes[0]:
                talloc_free(tmp_ctx);
                return ret;
        }
-       
+
        talloc_free(tmp_ctx);
 
-       return ret;     
+       return ret;
 }
 
 static int replmd_extended(struct ldb_module *module, struct ldb_request *req)
@@ -3885,7 +3885,7 @@ static int replmd_extended(struct ldb_module *module, 
struct ldb_request *req)
 
 
 /*
-  we hook into the transaction operations to allow us to 
+  we hook into the transaction operations to allow us to
   perform the linked attribute updates at the end of the whole
   transaction. This allows a forward linked attribute to be created
   before the object is created. During a vampire, w2k8 sends us linked
@@ -3911,11 +3911,11 @@ static int replmd_start_transaction(struct ldb_module 
*module)
 
 /*
   on prepare commit we loop over our queued la_context structures and
-  apply each of them  
+  apply each of them
  */
 static int replmd_prepare_commit(struct ldb_module *module)
 {
-       struct replmd_private *replmd_private = 
+       struct replmd_private *replmd_private =
                talloc_get_type(ldb_module_get_private(module), struct 
replmd_private);
        struct la_entry *la, *prev;
        struct la_backlink *bl;
@@ -3951,13 +3951,13 @@ static int replmd_prepare_commit(struct ldb_module 
*module)
        if (ret != LDB_SUCCESS) {
                return ret;
        }
-       
+
        return ldb_next_prepare_commit(module);
 }
 
 static int replmd_del_transaction(struct ldb_module *module)
 {
-       struct replmd_private *replmd_private = 
+       struct replmd_private *replmd_private =
                talloc_get_type(ldb_module_get_private(module), struct 
replmd_private);
        replmd_txn_cleanup(replmd_private);
 
diff --git a/source4/scripting/devel/selftest-vars.sh 
b/source4/scripting/devel/selftest-vars.sh
index f275cea..0932b62 100644
--- a/source4/scripting/devel/selftest-vars.sh
+++ b/source4/scripting/devel/selftest-vars.sh
@@ -39,9 +39,9 @@ export TLS_ENABLED=yes
 export DC_NETBIOSALIAS=localdc
 export DC_NETBIOSNAME=localdc1
 export DC_SERVER=localdc1
-export DC_PASSWORD=localdcpass
+export DC_PASSWORD=locDCpass0
 export PYTHONPATH=$PWD/bin/python
-export PASSWORD=localdcpass
+export PASSWORD=locDCpass0
 export LDB_MODULES_PATH=$PWD/bin/modules/ldb
 export NETBIOSALIAS=localdc
 export SMB_CONF_PATH=$PWD/st/dc/etc/smb.conf


-- 
Samba Shared Repository

Reply via email to