r17350: Avoid a couple of memleaks, unnecessary code and use a more linear style
authorSimo Sorce <idra@samba.org>
Tue, 1 Aug 2006 03:22:02 +0000 (03:22 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:15:18 +0000 (14:15 -0500)
(This used to be commit 97c4d41a30a5d85145abb781cb7001b502bc7dcb)

source4/lib/ldb/include/ldb.h
source4/lib/ldb/ldb_tdb/ldb_tdb.c

index d017861b0526d557d06d1934e0f7202e1b1ecb65..08bb2dd2f6051f80ff62448936bd00b5ff26f231 100644 (file)
@@ -502,6 +502,22 @@ typedef int (*ldb_qsort_cmp_fn_t) (void *v1, void *v2, void *opaque);
 */
 #define LDB_EXTENDED_START_TLS_OID     "1.3.6.1.4.1.1466.20037"
 
+/**
+   OID for LDAP Extended Operation START_TLS.
+
+   This Extended operation is used to start a new TLS
+   channel on top of a clear text channel.
+*/
+#define LDB_EXTENDED_DYNAMIC_OID       "1.3.6.1.4.1.1466.101.119.1"
+
+/**
+   OID for LDAP Extended Operation START_TLS.
+
+   This Extended operation is used to start a new TLS
+   channel on top of a clear text channel.
+*/
+#define LDB_EXTENDED_FAST_BIND_OID     "1.2.840.113556.1.4.1781"
+
 struct ldb_paged_control {
        int size;
        int cookie_len;
index 588f73fe23b9d820446b5621f5355e134c430a9d..7ee715f561920d612d6a4980ead8b725a63d25f3 100644 (file)
@@ -270,41 +270,26 @@ static int ltdb_add_internal(struct ldb_module *module, const struct ldb_message
        }
 
        ret = ltdb_store(module, msg, TDB_INSERT);
-       switch (ret) {
-       case LDB_SUCCESS:
-       {
-               TALLOC_CTX *mem_ctx = talloc_new(module);
+
+       if (ret == LDB_ERR_ENTRY_ALREADY_EXISTS) {
                char *dn;
-               dn = ldb_dn_linearize(mem_ctx, msg->dn);
+
+               dn = ldb_dn_linearize(module, msg->dn);
                if (!dn) {
-                       break;
+                       return ret;
                }
+               ldb_set_errstring(module->ldb, talloc_asprintf(module, "Entry %s already exists", dn));
+               talloc_free(dn);
+               return ret;
+       }
+       
+       if (ret == LDB_SUCCESS) {
                ret = ltdb_modified(module, msg->dn);
                if (ret != LDB_SUCCESS) {
                        return LDB_ERR_OPERATIONS_ERROR;
                }
-               break;
-       }
-       case LDB_ERR_ENTRY_ALREADY_EXISTS:
-       {
-               TALLOC_CTX *mem_ctx = talloc_new(module);
-               char *errstring, *dn;
-               if (!mem_ctx) {
-                       break;
-               }
-               dn = ldb_dn_linearize(mem_ctx, msg->dn);
-               if (!dn) {
-                       break;
-               }
-               errstring = talloc_asprintf(mem_ctx, "Entry %s already exists",
-                                           dn);
-               ldb_set_errstring(module->ldb, errstring);
-               talloc_free(mem_ctx);
-               break;
-       }
-       default:
-               break;
        }
+
        return ret;
 }