s4:repl_meta_data LDB module - set "isRecycled" time correctly
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 4 Jan 2012 15:17:24 +0000 (16:17 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 4 Jan 2012 19:33:43 +0000 (20:33 +0100)
"unix_to_nt_time()" which is based on "time_t" behaves differently for
literals > 32 bit on 32 and 64 bit platforms.

source4/dsdb/samdb/ldb_modules/repl_meta_data.c

index daca5da5bbbde43af6e81bc277ed3d8228ead293..cda9b99c7bc5a436ecb082be1d9029918eb0de18 100644 (file)
 #include "lib/util/binsearch.h"
 #include "lib/util/tsort.h"
 
-static const uint64_t DELETED_OBJECT_CONTAINER_CHANGE_TIME = 253402127999L;
+/*
+ * It's 29/12/9999 at 23:59:59 UTC as specified in MS-ADTS 7.1.1.4.2
+ * Deleted Objects Container
+ */
+static const NTTIME DELETED_OBJECT_CONTAINER_CHANGE_TIME = 2650466015990000000ULL;
+
 struct replmd_private {
        TALLOC_CTX *la_ctx;
        struct la_entry *la_list;
@@ -934,10 +939,7 @@ static int replmd_add(struct ldb_module *module, struct ldb_request *req)
                                 * Set the originating_change_time to 29/12/9999 at 23:59:59
                                 * as specified in MS-ADTS 7.1.1.4.2 Deleted Objects Container
                                 */
-                               NTTIME deleted_obj_ts;
-
-                               unix_to_nt_time(&deleted_obj_ts, DELETED_OBJECT_CONTAINER_CHANGE_TIME);
-                               m->originating_change_time      = deleted_obj_ts;
+                               m->originating_change_time      = DELETED_OBJECT_CONTAINER_CHANGE_TIME;
                        } else {
                                m->originating_change_time      = now;
                        }
@@ -1165,10 +1167,7 @@ static int replmd_update_rpmd_element(struct ldb_context *ldb,
                         * Set the originating_change_time to 29/12/9999 at 23:59:59
                         * as specified in MS-ADTS 7.1.1.4.2 Deleted Objects Container
                         */
-                       NTTIME deleted_obj_ts;
-
-                       unix_to_nt_time(&deleted_obj_ts, DELETED_OBJECT_CONTAINER_CHANGE_TIME);
-                       md1->originating_change_time    = deleted_obj_ts;
+                       md1->originating_change_time    = DELETED_OBJECT_CONTAINER_CHANGE_TIME;
                } else {
                        md1->originating_change_time    = now;
                }