The branch, master has been updated
       via  8e1e6b0... s4:LogonGetDomainInfo - allow to set DNS hostname for 
the first time
       via  ee524d3... s4:"rdn_name" LDB module - fix the creation of the RDN 
attribute (try to normalise it)
       via  40ced1a... s4:setup/*.ldif - remove unneeded "cn" attributes
      from  8e069e2... s3: major overhaul of compiler and linker flags for 
HP-UX builds

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


- Log -----------------------------------------------------------------
commit 8e1e6b0112c06b8587c0823a62d2103c047f8310
Author: Matthias Dieter Wallnöfer <m...@samba.org>
Date:   Mon May 24 12:42:32 2010 +0200

    s4:LogonGetDomainInfo - allow to set DNS hostname for the first time
    
    Otherwise it obviously can never be set.

commit ee524d3182de85dff2febaad2481e37ad5a8be8f
Author: Matthias Dieter Wallnöfer <m...@samba.org>
Date:   Mon May 24 11:06:29 2010 +0200

    s4:"rdn_name" LDB module - fix the creation of the RDN attribute (try to 
normalise it)
    
    And return always the correct error codes on the failed add operations 
(should
    anyway be ERR_OPERATIONS_ERROR - therefore no behaviour change).

commit 40ced1a3be5ab04c7431ecda2c7924336a852994
Author: Matthias Dieter Wallnöfer <m...@samba.org>
Date:   Mon May 24 10:38:16 2010 +0200

    s4:setup/*.ldif - remove unneeded "cn" attributes
    
    Should be generated automatically

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

Summary of changes:
 source4/lib/ldb/modules/rdn_name.c                |   26 ++++++++++++++++-----
 source4/rpc_server/netlogon/dcerpc_netlogon.c     |   25 +++++++++++---------
 source4/setup/provision_configuration_basedn.ldif |    1 -
 source4/setup/provision_schema_basedn.ldif        |    1 -
 4 files changed, 34 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/lib/ldb/modules/rdn_name.c 
b/source4/lib/ldb/modules/rdn_name.c
index f1c167c..3a4068d 100644
--- a/source4/lib/ldb/modules/rdn_name.c
+++ b/source4/lib/ldb/modules/rdn_name.c
@@ -134,19 +134,33 @@ static int rdn_name_add(struct ldb_module *module, struct 
ldb_request *req)
                attribute->num_values = 0;
        }
 
-       if (ldb_msg_add_value(msg, "name", &rdn_val, NULL) != 0) {
+       ret = ldb_msg_add_value(msg, "name", &rdn_val, NULL);
+       if (ret != LDB_SUCCESS) {
+               return ret;
+       }
+
+       a = ldb_schema_attribute_by_name(ldb, rdn_name);
+       if (a == NULL) {
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
        attribute = rdn_name_find_attribute(msg, rdn_name);
-
        if (!attribute) {
-               if (ldb_msg_add_value(msg, rdn_name, &rdn_val, NULL) != 0) {
-                       return LDB_ERR_OPERATIONS_ERROR;
+               /* add entry with normalised RDN information if possible */
+               if (a->name != NULL) {
+                       ret = ldb_msg_add_value(msg, a->name, &rdn_val, NULL);
+               } else {
+                       ret = ldb_msg_add_value(msg, rdn_name, &rdn_val, NULL);
+               }
+               if (ret != LDB_SUCCESS) {
+                       return ret;
                }
        } else {
-               a = ldb_schema_attribute_by_name(ldb, rdn_name);
-
+               /* normalise attribute name if possible */
+               if (a->name != NULL) {
+                       attribute->name = a->name;
+               }
+               /* normalise attribute value */
                for (i = 0; i < attribute->num_values; i++) {
                        ret = a->syntax->comparison_fn(ldb, msg,
                                        &rdn_val, &attribute->values[i]);
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c 
b/source4/rpc_server/netlogon/dcerpc_netlogon.c
index 0113416..c57f414 100644
--- a/source4/rpc_server/netlogon/dcerpc_netlogon.c
+++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c
@@ -1259,17 +1259,6 @@ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct 
dcesrv_call_state *dce_cal
                }
 
                /*
-                * Updates the DNS hostname when the client wishes that the
-                * server should handle this for him
-                * ("NETR_WS_FLAG_HANDLES_SPN_UPDATE" not set).
-                * See MS-NRPC section 3.5.4.3.9
-                */
-               if ((r->in.query->workstation_info->workstation_flags
-                   & NETR_WS_FLAG_HANDLES_SPN_UPDATE) != 0) {
-                       update_dns_hostname = false;
-               }
-
-               /*
                 * Checks that the computer name parameter without possible "$"
                 * matches as prefix with the DNS hostname in the workstation
                 * info structure.
@@ -1302,6 +1291,20 @@ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct 
dcesrv_call_state *dce_cal
                old_dns_hostname = samdb_result_string(res1[0], "dNSHostName",
                        NULL);
 
+               /*
+                * Updates the DNS hostname when the client wishes that the
+                * server should handle this for him
+                * ("NETR_WS_FLAG_HANDLES_SPN_UPDATE" not set). And this is
+                * obviously only checked when we do already have a
+                * "dNSHostName".
+                * See MS-NRPC section 3.5.4.3.9
+                */
+               if ((old_dns_hostname != NULL) &&
+                   (r->in.query->workstation_info->workstation_flags
+                   & NETR_WS_FLAG_HANDLES_SPN_UPDATE) != 0) {
+                       update_dns_hostname = false;
+               }
+
                /* Gets host informations and put them in our directory */
                new_msg = ldb_msg_new(mem_ctx);
                NT_STATUS_HAVE_NO_MEMORY(new_msg);
diff --git a/source4/setup/provision_configuration_basedn.ldif 
b/source4/setup/provision_configuration_basedn.ldif
index 461aad9..710dac2 100644
--- a/source4/setup/provision_configuration_basedn.ldif
+++ b/source4/setup/provision_configuration_basedn.ldif
@@ -4,7 +4,6 @@
 dn: ${CONFIGDN}
 objectClass: top
 objectClass: configuration
-cn: Configuration
 msDS-NcType: 0
 nTSecurityDescriptor:: ${DESCRIPTOR}
 instanceType: 13
diff --git a/source4/setup/provision_schema_basedn.ldif 
b/source4/setup/provision_schema_basedn.ldif
index bc366ea..deb80dd 100644
--- a/source4/setup/provision_schema_basedn.ldif
+++ b/source4/setup/provision_schema_basedn.ldif
@@ -4,7 +4,6 @@
 dn: ${SCHEMADN}
 objectClass: top
 objectClass: dMD
-cn: Schema
 msDS-NcType: 0
 nTSecurityDescriptor:: ${DESCRIPTOR}
 instanceType: 13


-- 
Samba Shared Repository

Reply via email to