r12779: allow static tomstones
authorStefan Metzmacher <metze@samba.org>
Sun, 8 Jan 2006 20:57:26 +0000 (20:57 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:49:54 +0000 (13:49 -0500)
metze

source/nbt_server/wins/winsdb.c

index 72dbd779595008f0bb43306de53caa65571130e2..0608575db2a25115d95e803cd6f3a71b7eac8929 100644 (file)
@@ -562,12 +562,7 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
        }
        rec->addresses[i] = NULL;
 
-       if (rec->is_static) {
-               if (num_values < 1) {
-                       status = NT_STATUS_INTERNAL_DB_CORRUPTION;
-                       goto failed;
-               }
-               rec->state = WREPL_STATE_ACTIVE;
+       if (rec->is_static && rec->state == WREPL_STATE_ACTIVE) {
                rec->expire_time = get_time_t_max();
                for (i=0;rec->addresses[i];i++) {
                        rec->addresses[i]->expire_time = rec->expire_time;
@@ -594,10 +589,9 @@ struct ldb_message *winsdb_message(struct ldb_context *ldb,
        size_t addr_count;
        const char *expire_time;
        struct ldb_message *msg = ldb_msg_new(mem_ctx);
-       if (msg == NULL) goto failed;   
+       if (msg == NULL) goto failed;
 
-       if (rec->is_static) {
-               rec->state = WREPL_STATE_ACTIVE;
+       if (rec->is_static && rec->state == WREPL_STATE_ACTIVE) {
                rec->expire_time = get_time_t_max();
                for (i=0;rec->addresses[i];i++) {
                        rec->addresses[i]->expire_time = rec->expire_time;