The branch, master has been updated
       via  a6af1ef s4-dsdb: cope with broken exchange schema with single 
valued backlinks
       via  95e347a s4-ldb: fixed a uninitialised el->flags in ldb_tdb
       via  12a1e02 s4-dsdb: cleanups to the backupkey RPC server
       via  63d4a99 s4-dsdb: fixed problem with constrained modification of 
description attribute
       via  c2ccd24 s4-ldb: added LDB_FLAG_INTERNAL_FORCE_SINGLE_VALUE_CHECK
       via  a48328a s4-ldb: use a helper function for single valued checking
       via  a26f8b8 ldb-web: update mailing list info
       via  b3f3287 script: sign library releases with Samba Library 
Distribution Key
      from  b2e126c s4:selftest: add tests with seal and sign for backupkey

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


- Log -----------------------------------------------------------------
commit a6af1efb422e10bb66524fdceb2babaa8ca1bffe
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 13:22:27 2011 +1100

    s4-dsdb: cope with broken exchange schema with single valued backlinks
    
    Pair-Programmed-With: Andrew Bartlett <[email protected]>
    
    Autobuild-User: Andrew Tridgell <[email protected]>
    Autobuild-Date: Mon Feb 14 08:45:51 CET 2011 on sn-devel-104

commit 95e347a2d05d3b2c01655e02fd9eb0f5e4659ec1
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 13:08:44 2011 +1100

    s4-ldb: fixed a uninitialised el->flags in ldb_tdb
    
    this caused an intermittent failure in some tests
    
    Pair-Programmed-With: Andrew Bartlett <[email protected]>

commit 12a1e02002f7709c8d5a7fa9e5b6de829b9bee41
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 12:03:21 2011 +1100

    s4-dsdb: cleanups to the backupkey RPC server
    
    - fixed some warnings
    - change the debug levels to something more reasonable
    
    Pair-Programmed-With: Andrew Bartlett <[email protected]>

commit 63d4a99c1b7bb6937eca9f79dc77067468ae8333
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 10:14:15 2011 +1100

    s4-dsdb: fixed problem with constrained modification of description 
attribute
    
    This approach just asks the tdb backend to handle the single valued
    constraint for us
    
    Pair-Programmed-With: Andrew Bartlett <[email protected]>

commit c2ccd24ebf91125394e4aa369945cc689152ff5f
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 10:08:24 2011 +1100

    s4-ldb: added LDB_FLAG_INTERNAL_FORCE_SINGLE_VALUE_CHECK
    
    this allows a ldb module to force an element as single valued

commit a48328a8282d116d17515cfe681c1b41f6541d39
Author: Andrew Tridgell <[email protected]>
Date:   Mon Feb 14 10:07:21 2011 +1100

    s4-ldb: use a helper function for single valued checking
    
    this gives us a single piece of logic for single value checking in the
    tdb backend
    
    Pair-Programmed-With: Andrew Bartlett <[email protected]>

commit a26f8b8ae6e147b59747cb140dbde2eddef8c970
Author: Andrew Tridgell <[email protected]>
Date:   Fri Feb 11 16:15:17 2011 +1100

    ldb-web: update mailing list info

commit b3f32871c1d329ccbd14f58d6069a22248e30dfe
Author: Andrew Tridgell <[email protected]>
Date:   Fri Feb 11 16:05:47 2011 +1100

    script: sign library releases with Samba Library Distribution Key

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

Summary of changes:
 script/librelease.sh                            |    4 +-
 source4/dsdb/samdb/ldb_modules/repl_meta_data.c |    7 ++
 source4/dsdb/samdb/ldb_modules/samldb.c         |   57 ++++--------------
 source4/lib/ldb/include/ldb_module.h            |    3 +
 source4/lib/ldb/ldb_tdb/ldb_tdb.c               |   71 ++++++++++++++---------
 source4/lib/ldb/web/index.html                  |   10 ++--
 source4/rpc_server/backupkey/dcesrv_backupkey.c |   30 +++++-----
 7 files changed, 90 insertions(+), 92 deletions(-)


Changeset truncated at 500 lines:

diff --git a/script/librelease.sh b/script/librelease.sh
index 1c75bf1..b2bc9e7 100755
--- a/script/librelease.sh
+++ b/script/librelease.sh
@@ -1,6 +1,8 @@
 #!/bin/bash
 # make a release of a Samba library
 
+GPG_USER='Samba Library Distribution Key <[email protected]>'
+
 if [ ! -d ".git" ]; then
        echo "Run this script from the top-level directory in the"
        echo "repository"
@@ -41,7 +43,7 @@ release_lib() {
 
     echo "signing"
     rm -f "$tarname.asc"
-    gpg --detach-sign --armor $tarname || exit 1
+    gpg -u "$GPG_USER" --detach-sign --armor $tarname || exit 1
     [ -f "$tarname.asc" ] || {
        echo "Failed to create signature $tarname.asc"
        exit 1
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c 
b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
index 87327e5..53d53d9 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -247,6 +247,13 @@ static int replmd_process_backlink(struct ldb_module 
*module, struct la_backlink
        }
        msg->elements[0].flags = 
bl->active?LDB_FLAG_MOD_ADD:LDB_FLAG_MOD_DELETE;
 
+       /* a backlink should never be single valued. Unfortunately the
+          exchange schema has a attribute
+          msExchBridgeheadedLocalConnectorsDNBL which is single
+          valued and a backlink. We need to cope with that by
+          ignoring the single value flag */
+       msg->elements[0].flags |= LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK;
+
        ret = dsdb_module_modify(module, msg, DSDB_FLAG_NEXT_MODULE, parent);
        if (ret != LDB_SUCCESS) {
                ldb_asprintf_errstring(ldb, "Failed to %s backlink from %s to 
%s - %s",
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c 
b/source4/dsdb/samdb/ldb_modules/samldb.c
index ee0d66c..710ce8b 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -1572,35 +1572,26 @@ static int samldb_member_check(struct samldb_ctx *ac)
 
 /* SAM objects have special rules regarding the "description" attribute on
  * modify operations. */
-static int samldb_description_check(struct samldb_ctx *ac)
+static int samldb_description_check(struct samldb_ctx *ac, bool *modified)
 {
        struct ldb_context *ldb = ldb_module_get_ctx(ac->module);
        const char * const attrs[] = { "objectClass", "description", NULL };
-       struct ldb_message_element *el;
        struct ldb_result *res;
        unsigned int i;
        int ret;
 
        /* Fetch informations from the existing object */
-
        ret = dsdb_module_search(ac->module, ac, &res, ac->msg->dn, 
LDB_SCOPE_BASE, attrs,
-                                DSDB_FLAG_NEXT_MODULE, ac->req, NULL);
+                                DSDB_FLAG_NEXT_MODULE | 
DSDB_SEARCH_SHOW_DELETED, ac->req,
+                                
"(|(objectclass=user)(objectclass=group)(objectclass=samDomain)(objectclass=samServer))");
        if (ret != LDB_SUCCESS) {
-               return ret;
-       }
-       if (res->count != 1) {
-               return ldb_operr(ldb);
+               /* don't treat it specially ... let normal error codes
+                  happen from other places */
+               ldb_reset_err_string(ldb);
+               return LDB_SUCCESS;
        }
-
-       /* if it's not a SAM object then please skip the constraints */
-       if ((samdb_find_attribute(ldb, res->msgs[0], "objectClass",
-                                 "group") == NULL) &&
-           (samdb_find_attribute(ldb, res->msgs[0], "objectClass",
-                                 "samDomain") == NULL) &&
-           (samdb_find_attribute(ldb, res->msgs[0], "objectClass",
-                                 "samServer") == NULL) &&
-           (samdb_find_attribute(ldb, res->msgs[0], "objectClass",
-                                 "user") == NULL)) {
+       if (res->count == 0) {
+               /* we didn't match the filter */
                talloc_free(res);
                return LDB_SUCCESS;
        }
@@ -1608,31 +1599,9 @@ static int samldb_description_check(struct samldb_ctx 
*ac)
        /* We've to walk over all modification entries and consider the
         * "description" ones. */
        for (i = 0; i < ac->msg->num_elements; i++) {
-               if (ldb_attr_cmp(ac->msg->elements[i].name,
-                                "description") != 0) {
-                       continue;
-               }
-
-               el = &ac->msg->elements[i];
-
-               /* Multi-valued add or replace operations are always denied */
-               if ((LDB_FLAG_MOD_TYPE(el->flags) != LDB_FLAG_MOD_DELETE) &&
-                   (el->num_values > 1)) {
-                       ldb_asprintf_errstring(ldb,
-                                              "samldb: Description on SAM 
entry '%s' is changed using a multi-valued add or replace operation!",
-                                              
ldb_dn_get_linearized(ac->msg->dn));
-                       return LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
-               }
-
-               /* Add operations are only allowed if no value exists */
-               if (LDB_FLAG_MOD_TYPE(el->flags) == LDB_FLAG_MOD_ADD) {
-                       if (ldb_msg_find_element(res->msgs[0], "description")
-                                                               != NULL) {
-                               ldb_asprintf_errstring(ldb,
-                                                      "samldb: Description on 
SAM entry '%s' is changed using an add operation while a value already exists!",
-                                                      
ldb_dn_get_linearized(ac->msg->dn));
-                               return LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
-                       }
+               if (ldb_attr_cmp(ac->msg->elements[i].name, "description") == 
0) {
+                       ac->msg->elements[i].flags |= 
LDB_FLAG_INTERNAL_FORCE_SINGLE_VALUE_CHECK;
+                       *modified = true;
                }
        }
 
@@ -2049,7 +2018,7 @@ static int samldb_modify(struct ldb_module *module, 
struct ldb_request *req)
 
        el = ldb_msg_find_element(ac->msg, "description");
        if (el != NULL) {
-               ret = samldb_description_check(ac);
+               ret = samldb_description_check(ac, &modified);
                if (ret != LDB_SUCCESS) {
                        return ret;
                }
diff --git a/source4/lib/ldb/include/ldb_module.h 
b/source4/lib/ldb/include/ldb_module.h
index a793525..0f2a080 100644
--- a/source4/lib/ldb/include/ldb_module.h
+++ b/source4/lib/ldb/include/ldb_module.h
@@ -49,6 +49,9 @@ struct ldb_module;
 /* attribute has failed access check and must not be exposed */
 #define LDB_FLAG_INTERNAL_INACCESSIBLE_ATTRIBUTE 0x40
 
+/* force single value checking on this attribute */
+#define LDB_FLAG_INTERNAL_FORCE_SINGLE_VALUE_CHECK 0x80
+
 
 /*
    these function pointers define the operations that a ldb module can 
intercept
diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c 
b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
index b0f9bf9..2f7f222 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c
@@ -276,6 +276,34 @@ done:
 }
 
 
+/*
+  check if a attribute is a single valued, for a given element
+ */
+static bool ldb_tdb_single_valued(const struct ldb_schema_attribute *a,
+                                 struct ldb_message_element *el)
+{
+       if (!a) return false;
+       if (el != NULL) {
+               if (el->flags & LDB_FLAG_INTERNAL_FORCE_SINGLE_VALUE_CHECK) {
+                       /* override from a ldb module, for example
+                          used for the description field, which is
+                          marked multi-valued in the schema but which
+                          should not actually accept multiple
+                          values */
+                       return true;
+               }
+               if (el->flags & LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK) {
+                       /* override from a ldb module, for example used for
+                          deleted linked attribute entries */
+                       return false;
+               }
+       }
+       if (a->flags & LDB_ATTR_FLAG_SINGLE_VALUE) {
+               return true;
+       }
+       return false;
+}
+
 static int ltdb_add_internal(struct ldb_module *module,
                             const struct ldb_message *msg)
 {
@@ -292,13 +320,10 @@ static int ltdb_add_internal(struct ldb_module *module,
                                               el->name, 
ldb_dn_get_linearized(msg->dn));
                        return LDB_ERR_CONSTRAINT_VIOLATION;
                }
-               if (a && (a->flags & LDB_ATTR_FLAG_SINGLE_VALUE) &&
-                   !(el->flags & 
LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK)) {
-                       if (el->num_values > 1) {
-                               ldb_asprintf_errstring(ldb, "SINGLE-VALUE 
attribute %s on %s specified more than once",
-                                                      el->name, 
ldb_dn_get_linearized(msg->dn));
-                               return LDB_ERR_CONSTRAINT_VIOLATION;
-                       }
+               if (el->num_values > 1 && ldb_tdb_single_valued(a, el)) {
+                       ldb_asprintf_errstring(ldb, "SINGLE-VALUE attribute %s 
on %s specified more than once",
+                                              el->name, 
ldb_dn_get_linearized(msg->dn));
+                       return LDB_ERR_CONSTRAINT_VIOLATION;
                }
        }
 
@@ -680,8 +705,7 @@ int ltdb_modify_internal(struct ldb_module *module,
                                        ret = LDB_ERR_OTHER;
                                        goto done;
                                }
-                               el->name = msg->elements[i].name;
-                               el->num_values = msg->elements[i].num_values;
+                               *el = msg->elements[i];
                                el->values = talloc_array(el, struct ldb_val, 
el->num_values);
                                if (el->values == NULL) {
                                        ret = LDB_ERR_OTHER;
@@ -692,14 +716,11 @@ int ltdb_modify_internal(struct ldb_module *module,
                                }
                        }
 
-                       if (a && (a->flags & LDB_ATTR_FLAG_SINGLE_VALUE) &&
-                           !(el->flags & 
LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK)) {
-                               if (el->num_values > 1) {
-                                       ldb_asprintf_errstring(ldb, 
"SINGLE-VALUE attribute %s on %s specified more than once",
-                                                              el->name, 
ldb_dn_get_linearized(msg2->dn));
-                                       ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
-                                       goto done;
-                               }
+                       if (el->num_values > 1 && ldb_tdb_single_valued(a, el)) 
{
+                               ldb_asprintf_errstring(ldb, "SINGLE-VALUE 
attribute %s on %s specified more than once",
+                                                      el->name, 
ldb_dn_get_linearized(msg2->dn));
+                               ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
+                               goto done;
                        }
 
                        /* Checks if element already exists */
@@ -720,8 +741,7 @@ int ltdb_modify_internal(struct ldb_module *module,
 
                                /* We cannot add another value on a existing one
                                   if the attribute is single-valued */
-                               if (a && (a->flags & 
LDB_ATTR_FLAG_SINGLE_VALUE) &&
-                                   !(el->flags & 
LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK)) {
+                               if (ldb_tdb_single_valued(a, el)) {
                                        ldb_asprintf_errstring(ldb, 
"SINGLE-VALUE attribute %s on %s specified more than once",
                                                               el->name, 
ldb_dn_get_linearized(msg2->dn));
                                        ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
@@ -787,14 +807,11 @@ int ltdb_modify_internal(struct ldb_module *module,
 
                case LDB_FLAG_MOD_REPLACE:
 
-                       if (a && (a->flags & LDB_ATTR_FLAG_SINGLE_VALUE) &&
-                           !(el->flags & 
LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK)) {
-                               if (el->num_values > 1) {
-                                       ldb_asprintf_errstring(ldb, 
"SINGLE-VALUE attribute %s on %s specified more than once",
-                                                              el->name, 
ldb_dn_get_linearized(msg2->dn));
-                                       ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
-                                       goto done;
-                               }
+                       if (el->num_values > 1 && ldb_tdb_single_valued(a, el)) 
{
+                               ldb_asprintf_errstring(ldb, "SINGLE-VALUE 
attribute %s on %s specified more than once",
+                                                      el->name, 
ldb_dn_get_linearized(msg2->dn));
+                               ret = LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
+                               goto done;
                        }
 
                        /* TODO: This is O(n^2) - replace with more efficient 
check */
diff --git a/source4/lib/ldb/web/index.html b/source4/lib/ldb/web/index.html
index 3fa4cdc..7f50cdc 100644
--- a/source4/lib/ldb/web/index.html
+++ b/source4/lib/ldb/web/index.html
@@ -50,11 +50,11 @@ would be preferred.
 
 <h2>Discussion and bug reports</h2>
 
-ldb does not currently have its own mailing list or bug tracking
-system. For now, please use the <a
-href="https://lists.samba.org/mailman/listinfo/samba-technical";>samba-technical</a>
-mailing list or the <a 
href="https://lists.samba.org/mailman/listinfo/ldb";>ldb</a>
-mailing list, and the <a href="http://bugzilla.samba.org/";>Samba bugzilla</a> 
bug tracking system.
+ldb does not have its own mailing list or bug tracking system. Please
+use
+the <a 
href="https://lists.samba.org/mailman/listinfo/samba-technical";>samba-technical</a>
+mailing list, and the <a href="http://bugzilla.samba.org/";>Samba
+bugzilla</a> bug tracking system.
 
 <h2>Download</h2>
 
diff --git a/source4/rpc_server/backupkey/dcesrv_backupkey.c 
b/source4/rpc_server/backupkey/dcesrv_backupkey.c
index e499128..1cd9a9f 100644
--- a/source4/rpc_server/backupkey/dcesrv_backupkey.c
+++ b/source4/rpc_server/backupkey/dcesrv_backupkey.c
@@ -98,7 +98,7 @@ static NTSTATUS set_lsa_secret(TALLOC_CTX *mem_ctx,
                           ldb_binary_encode_string(mem_ctx, name2));
 
        if (ret != LDB_SUCCESS ||  res->count != 0 ) {
-               DEBUG(0, ("Secret %s already exists !\n", name2));
+               DEBUG(2, ("Secret %s already exists !\n", name2));
                talloc_free(msg);
                return NT_STATUS_OBJECT_NAME_COLLISION;
        }
@@ -153,7 +153,7 @@ static NTSTATUS set_lsa_secret(TALLOC_CTX *mem_ctx,
         */
        ret = dsdb_add(ldb, msg, DSDB_MODIFY_RELAX);
        if (ret != LDB_SUCCESS) {
-               DEBUG(0,("Failed to create secret record %s: %s\n",
+               DEBUG(2,("Failed to create secret record %s: %s\n",
                        ldb_dn_get_linearized(msg->dn),
                        ldb_errstring(ldb)));
                talloc_free(msg);
@@ -217,7 +217,7 @@ static NTSTATUS get_lsa_secret(TALLOC_CTX *mem_ctx,
        }
 
        if (res->count > 1) {
-               DEBUG(0, ("Secret %s collision\n", name));
+               DEBUG(2, ("Secret %s collision\n", name));
                talloc_free(tmp_mem);
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        }
@@ -301,7 +301,7 @@ static NTSTATUS get_pk_from_raw_keypair_params(TALLOC_CTX 
*ctx,
        hx509_context_init(&hctx);
        ops = 
hx509_find_private_alg(&_hx509_signature_rsa_with_var_num.algorithm);
        if (ops == NULL) {
-               DEBUG(0, ("Not supported algorithm\n"));
+               DEBUG(2, ("Not supported algorithm\n"));
                return NT_STATUS_INTERNAL_ERROR;
        }
 
@@ -476,7 +476,7 @@ static WERROR get_and_verify_access_check(TALLOC_CTX 
*sub_ctx,
                 */
 
                if (memcmp(hash, uncrypted_accesscheckv2.hash, hash_size) != 0) 
{
-                       DEBUG(0, ("Wrong hash value in the access check in 
backup key remote protocol\n"));
+                       DEBUG(2, ("Wrong hash value in the access check in 
backup key remote protocol\n"));
                        return WERR_INVALID_DATA;
                }
                *access_sid = dom_sid_dup(sub_ctx, 
&(uncrypted_accesscheckv2.sid));
@@ -515,7 +515,7 @@ static WERROR get_and_verify_access_check(TALLOC_CTX 
*sub_ctx,
                 */
 
                if (memcmp(hash, uncrypted_accesscheckv3.hash, hash_size) != 0) 
{
-                       DEBUG(0, ("Wrong hash value in the access check in 
backup key remote protocol\n"));
+                       DEBUG(2, ("Wrong hash value in the access check in 
backup key remote protocol\n"));
                        return WERR_INVALID_DATA;
                }
                *access_sid = dom_sid_dup(sub_ctx, 
&(uncrypted_accesscheckv3.sid));
@@ -605,7 +605,7 @@ static WERROR bkrp_do_uncrypt_client_wrap_key(struct 
dcesrv_call_state *dce_call
 
                ndr_err = ndr_pull_struct_blob(&secret, mem_ctx, &keypair, 
(ndr_pull_flags_fn_t)ndr_pull_bkrp_exported_RSA_key_pair);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-                       DEBUG(1, ("Unable to parse the ndr encoded cert in key 
%s\n", cert_secret_name));
+                       DEBUG(2, ("Unable to parse the ndr encoded cert in key 
%s\n", cert_secret_name));
                        return WERR_FILE_NOT_FOUND;
                }
 
@@ -987,7 +987,7 @@ static WERROR generate_bkrp_cert(TALLOC_CTX *ctx, struct 
dcesrv_call_state *dce_
        enum ndr_err_code ndr_err;
        uint32_t nb_days_validity = 365;
 
-       DEBUG(0, ("Trying to generate a certificate\n"));
+       DEBUG(6, ("Trying to generate a certificate\n"));
        hx509_context_init(&hctx);
        w_err = create_req(ctx, &hctx, &req, &pk, &rsa, dn);
        if (!W_ERROR_IS_OK(w_err)) {
@@ -1107,7 +1107,6 @@ static WERROR generate_bkrp_cert(TALLOC_CTX *ctx, struct 
dcesrv_call_state *dce_
                return WERR_INVALID_DATA;
        }
        keypair.certificate_len = keypair.cert.length;
-       DEBUG(0, ("Len of priv key: %d pub_expo: %d\n", 
keypair.private_exponent.length, keypair.public_exponent.length));
        ndr_err = ndr_push_struct_blob(&blobkeypair, ctx, &keypair, 
(ndr_push_flags_fn_t)ndr_push_bkrp_exported_RSA_key_pair);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                der_free_octet_string(&data);
@@ -1130,14 +1129,14 @@ static WERROR generate_bkrp_cert(TALLOC_CTX *ctx, 
struct dcesrv_call_state *dce_
 
        status = set_lsa_secret(ctx, ldb_ctx, secret_name, &blobkeypair);
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0, ("Failed to save the secret %s\n", secret_name));
+               DEBUG(2, ("Failed to save the secret %s\n", secret_name));
        }
        talloc_free(secret_name);
 
        GUID_to_ndr_blob(&guid, ctx, &blob);
        status = set_lsa_secret(ctx, ldb_ctx, "BCKUPKEY_PREFERRED", &blob);
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0, ("Failed to save the secret BCKUPKEY_PREFERRED\n"));
+               DEBUG(2, ("Failed to save the secret BCKUPKEY_PREFERRED\n"));
        }
 
        der_free_octet_string(&data);
@@ -1186,7 +1185,7 @@ static WERROR bkrp_do_retreive_client_wrap_key(struct 
dcesrv_call_state *dce_cal
 
                        if (!NT_STATUS_IS_OK(status)) {
                                /* Ok we really don't manage to get this certs 
...*/
-                               DEBUG(0, ("Unable to locate BCKUPKEY_PREFERRED 
after cert generation\n"));
+                               DEBUG(2, ("Unable to locate BCKUPKEY_PREFERRED 
after cert generation\n"));
                                return WERR_FILE_NOT_FOUND;
                        }
                } else {
@@ -1247,16 +1246,17 @@ static WERROR bkrp_do_retreive_client_wrap_key(struct 
dcesrv_call_state *dce_cal
        return WERR_NOT_SUPPORTED;
 }
 
-WERROR dcesrv_bkrp_BackupKey (struct dcesrv_call_state *dce_call, TALLOC_CTX 
*mem_ctx, struct bkrp_BackupKey *r)
+static WERROR dcesrv_bkrp_BackupKey(struct dcesrv_call_state *dce_call,
+                                   TALLOC_CTX *mem_ctx, struct bkrp_BackupKey 
*r)
 {
        WERROR error = WERR_INVALID_PARAM;
        struct ldb_context *ldb_ctx;
        bool is_rodc;
        const char *addr = "unknown";
        /* At which level we start to add more debug of what is done in the 
protocol */
-       int debuglevel =4;
+       const int debuglevel = 4;
 
-       if (DEBUGLEVEL >= debuglevel) {
+       if (DEBUGLVL(debuglevel)) {
                const struct tsocket_address *remote_address;
                remote_address = 
dcesrv_connection_get_remote_address(dce_call->conn);
                if (tsocket_address_is_inet(remote_address, "ip")) {


-- 
Samba Shared Repository

Reply via email to