schema: Remove unnecessary schema reload code
authorGarming Sam <garming@catalyst.net.nz>
Wed, 6 Jul 2016 04:57:26 +0000 (16:57 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 8 Jul 2016 08:01:20 +0000 (10:01 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/dsdb/samdb/ldb_modules/schema_load.c
source4/dsdb/samdb/samdb.h
source4/ldap_server/ldap_backend.c

index 3f5cd2c62c255948f87d30fad4d84d232a802ae8..34700672a39a576fdd1abfc21c1bc6fc7cf5ae24 100644 (file)
@@ -496,20 +496,13 @@ static int schema_load_del_transaction(struct ldb_module *module)
 
 static int schema_load_extended(struct ldb_module *module, struct ldb_request *req)
 {
-       time_t *lastts;
        struct ldb_context *ldb = ldb_module_get_ctx(module);
 
        if (strcmp(req->op.extended.oid, DSDB_EXTENDED_SCHEMA_UPDATE_NOW_OID) != 0) {
                return ldb_next_request(module, req);
        }
-       lastts = (time_t *)ldb_get_opaque(ldb, DSDB_OPAQUE_LAST_SCHEMA_UPDATE_MSG_OPAQUE_NAME);
-       if (!lastts) {
-               lastts = talloc(ldb, time_t);
-       }
        /* Force a refresh */
        dsdb_get_schema(ldb, NULL);
-       *lastts = 0;
-       ldb_set_opaque(ldb, DSDB_OPAQUE_LAST_SCHEMA_UPDATE_MSG_OPAQUE_NAME, lastts);
 
        /* Pass to next module, the partition one should finish the chain */
        return ldb_next_request(module, req);
index 8c5e1779b535239dafe4171c252c5ebd4483dac3..0970948e27044b040e21f8b3ae9d95d4646e878f 100644 (file)
@@ -269,7 +269,6 @@ struct dsdb_extended_dn_store_format {
        bool store_extended_dn_in_ldb;
 };
 
-#define DSDB_OPAQUE_LAST_SCHEMA_UPDATE_MSG_OPAQUE_NAME "DSDB_OPAQUE_LAST_SCHEMA_UPDATE"
 #define DSDB_OPAQUE_PARTITION_MODULE_MSG_OPAQUE_NAME "DSDB_OPAQUE_PARTITION_MODULE_MSG"
 
 /* this takes a struct dsdb_fsmo_extended_op */
index 6a8a0cf5494ae9b1cac8555ff6e90fd62d8a3ad7..dc6a44c8237931dd003f425ce1818d35a731ed94 100644 (file)
@@ -1226,10 +1226,7 @@ NTSTATUS ldapsrv_do_call(struct ldapsrv_call *call)
 {
        unsigned int i;
        struct ldap_message *msg = call->request;
-       struct ldb_context *samdb = call->conn->ldb;
        NTSTATUS status;
-       time_t *lastts;
-       bool recheck_schema = false;
 
        /* Check for undecoded critical extensions */
        for (i=0; msg->controls && msg->controls[i]; i++) {
@@ -1249,11 +1246,9 @@ NTSTATUS ldapsrv_do_call(struct ldapsrv_call *call)
        case LDAP_TAG_SearchRequest:
                return ldapsrv_SearchRequest(call);
        case LDAP_TAG_ModifyRequest:
-               recheck_schema = true;
                status = ldapsrv_ModifyRequest(call);
                break;
        case LDAP_TAG_AddRequest:
-               recheck_schema = true;
                status = ldapsrv_AddRequest(call);
                break;
        case LDAP_TAG_DelRequest:
@@ -1273,23 +1268,6 @@ NTSTATUS ldapsrv_do_call(struct ldapsrv_call *call)
                return ldapsrv_unwilling(call, LDAP_PROTOCOL_ERROR);
        }
 
-       if (NT_STATUS_IS_OK(status) && recheck_schema) {
-               lastts = (time_t *)ldb_get_opaque(samdb, DSDB_OPAQUE_LAST_SCHEMA_UPDATE_MSG_OPAQUE_NAME);
-               if (lastts && !*lastts) {
-                       DEBUG(10, ("Schema update now was requested, "
-                               "fullfilling the request ts = %d\n",
-                               (int)*lastts));
-                       /*
-                       * Just requesting the schema will do the trick
-                       * as the delay for reload is experied, we will have a reload
-                       * from the schema as expected as we are not yet in a transaction!
-                       */
-                       dsdb_get_schema(samdb, NULL);
-                       *lastts = time(NULL);
-                       ldb_set_opaque(samdb, DSDB_OPAQUE_LAST_SCHEMA_UPDATE_MSG_OPAQUE_NAME, lastts);
-               }
-       }
-
        if (NT_STATUS_IS_OK(status)) {
                ldapsrv_notification_retry_setup(call->conn->service, true);
        }