svn commit: samba r11044 - in branches/SAMBA_4_0: . source source/include source/libcli/dgram source/libcli/nbt source/nbt_server/dgram source/nbt_server/wins source/torture/nbt

metze at samba.org metze at samba.org
Fri Oct 14 12:57:06 GMT 2005


Author: metze
Date: 2005-10-14 12:57:00 +0000 (Fri, 14 Oct 2005)
New Revision: 11044

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11044

Log:

Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/include/structs.h
   branches/SAMBA_4_0/source/libcli/dgram/libdgram.h
   branches/SAMBA_4_0/source/libcli/dgram/ntlogon.c
   branches/SAMBA_4_0/source/libcli/nbt/namerefresh.c
   branches/SAMBA_4_0/source/libcli/nbt/nameregister.c
   branches/SAMBA_4_0/source/main.mk
   branches/SAMBA_4_0/source/nbt_server/dgram/netlogon.c
   branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
   branches/SAMBA_4_0/source/torture/nbt/dgram.c


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: svk:merge
   - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/tmp/samba4-winsrepl:10362
3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba4:9495
a953eb74-4aff-0310-a63c-855d20285ebb:/local/samba4:11632
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5616
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5609
   + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/tmp/samba4-winsrepl:10417
3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba4:9495
a953eb74-4aff-0310-a63c-855d20285ebb:/local/samba4:11632
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5616
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5609

Modified: branches/SAMBA_4_0/source/include/structs.h
===================================================================

Modified: branches/SAMBA_4_0/source/libcli/dgram/libdgram.h
===================================================================

Modified: branches/SAMBA_4_0/source/libcli/dgram/ntlogon.c
===================================================================

Modified: branches/SAMBA_4_0/source/libcli/nbt/namerefresh.c
===================================================================

Modified: branches/SAMBA_4_0/source/libcli/nbt/nameregister.c
===================================================================

Modified: branches/SAMBA_4_0/source/main.mk
===================================================================

Modified: branches/SAMBA_4_0/source/nbt_server/dgram/netlogon.c
===================================================================

Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-14 12:56:42 UTC (rev 11043)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-14 12:57:00 UTC (rev 11044)
@@ -561,6 +561,58 @@
 	return status;
 }
 
+	rec = talloc(mem_ctx, struct winsdb_record);
+	if (rec == NULL) {
+		status = NT_STATUS_NO_MEMORY;
+		goto failed;
+	}
+
+	if (!name) {
+		status = winsdb_nbt_name(rec, msg->dn, &name);
+		if (!NT_STATUS_IS_OK(status)) goto failed;
+	}
+
+	/* parse it into a more convenient winsdb_record structure */
+	rec->name           = name;
+	rec->state          = ldb_msg_find_int(msg, "state", WINS_REC_RELEASED);
+	rec->nb_flags       = ldb_msg_find_int(msg, "nbFlags", 0);
+	rec->wins_owner     = ldb_msg_find_string(msg, "winsOwner", NULL);
+	rec->expire_time    = ldap_string_to_time(ldb_msg_find_string(msg, "expireTime", NULL));
+	rec->registered_by  = ldb_msg_find_string(msg, "registeredBy", NULL);
+	rec->version        = ldb_msg_find_uint64(msg, "versionID", 0);
+	talloc_steal(rec, rec->wins_owner);
+	talloc_steal(rec, rec->registered_by);
+
+	if (!rec->wins_owner) rec->wins_owner = WINSDB_OWNER_LOCAL;
+
+	el = ldb_msg_find_element(msg, "address");
+	if (el == NULL) {
+		status = NT_STATUS_INTERNAL_DB_CORRUPTION;
+		goto failed;
+	}
+
+	rec->addresses     = talloc_array(rec, struct winsdb_addr *, el->num_values+1);
+	if (rec->addresses == NULL) {
+		status = NT_STATUS_NO_MEMORY;
+		goto failed;
+	}
+
+	for (i=0;i<el->num_values;i++) {
+		status = winsdb_addr_decode(rec, &el->values[i], rec->addresses, &rec->addresses[i]);
+		if (!NT_STATUS_IS_OK(status)) goto failed;
+	}
+	rec->addresses[i] = NULL;
+
+	*_rec = rec;
+	return NT_STATUS_OK;
+failed:
+	if (NT_STATUS_EQUAL(NT_STATUS_INTERNAL_DB_CORRUPTION, status)) {
+		DEBUG(1,("winsdb_record: corrupted record: %s\n", ldb_dn_linearize(rec, msg->dn)));
+	}
+	talloc_free(rec);
+	return status;
+}
+
 /*
   form a ldb_message from a winsdb_record
 */

Modified: branches/SAMBA_4_0/source/torture/nbt/dgram.c
===================================================================



More information about the samba-cvs mailing list