Author: metze Date: 2005-11-25 10:46:38 +0000 (Fri, 25 Nov 2005) New Revision: 11900
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11900 Log: - make sure address and registered_by are replaced when they're not present - make sure we don't add active records with 0 addresses metze Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c Changeset: Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c =================================================================== --- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-11-25 10:44:03 UTC (rev 11899) +++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-11-25 10:46:38 UTC (rev 11900) @@ -513,9 +513,16 @@ struct winsdb_record *rec, TALLOC_CTX *mem_ctx) { int i, ret=0; + size_t addr_count; struct ldb_message *msg = ldb_msg_new(mem_ctx); if (msg == NULL) goto failed; + /* make sure we don't put in corrupted records */ + addr_count = winsdb_addr_list_length(rec->addresses); + if (rec->state == WREPL_STATE_ACTIVE && addr_count == 0) { + rec->state = WREPL_STATE_RELEASED; + } + msg->dn = winsdb_dn(msg, rec->name); if (msg->dn == NULL) goto failed; ret |= ldb_msg_add_fmt(msg, "type", "0x%02X", rec->name->type); @@ -534,9 +541,11 @@ ldb_timestring(msg, rec->expire_time)); ret |= ldb_msg_add_fmt(msg, "versionID", "%llu", rec->version); ret |= ldb_msg_add_string(msg, "winsOwner", rec->wins_owner); + ret |= ldb_msg_add_empty(msg, "address", 0); for (i=0;rec->addresses[i];i++) { ret |= ldb_msg_add_winsdb_addr(msg, "address", rec->addresses[i]); } + ret |= ldb_msg_add_empty(msg, "registeredBy", 0); if (rec->registered_by) { ret |= ldb_msg_add_string(msg, "registeredBy", rec->registered_by); if (ret != 0) goto failed;