svn commit: samba r11900 - in branches/SAMBA_4_0/source/nbt_server/wins: .

metze at samba.org metze at samba.org
Fri Nov 25 10:46:39 GMT 2005


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;



More information about the samba-cvs mailing list