svn commit: samba r11047 - in branches/SAMBA_4_0: . source source/include 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 13:00:37 GMT 2005


Author: metze
Date: 2005-10-14 13:00:36 +0000 (Fri, 14 Oct 2005)
New Revision: 11047

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

Log:

Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/include/structs.h
   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:10473
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:10501
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/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:57:54 UTC (rev 11046)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-14 13:00:36 UTC (rev 11047)
@@ -149,14 +149,79 @@
  "172.31.1.1;winsOwner:172.31.9.202;expireTime:20050923032330.0Z;"
  are valid records
 */
-static BOOL winsdb_remove_version(struct wins_server *winssrv, uint64_t version)
+static NTSTATUS winsdb_addr_decode(struct winsdb_record *rec, struct ldb_val *val,
+				   TALLOC_CTX *mem_ctx, struct winsdb_addr **_addr)
 {
-	if (version == winssrv->min_version) {
-		winssrv->min_version++;
-		return winsdb_save_version(winssrv);
+	NTSTATUS status;
+	struct winsdb_addr *addr;
+	char *address;
+	char *wins_owner;
+	char *expire_time;
+	char *p;
+
+	addr = talloc(mem_ctx, struct winsdb_addr);
+	if (!addr) {
+		status = NT_STATUS_NO_MEMORY;
+		goto failed;
 	}
 
-	return True;
+	address = (char *)val->data;
+
+	p = strchr(address, ';');
+	if (!p) {
+		/* support old entries, with only the address */
+		addr->address		= talloc_steal(addr, val->data);
+		addr->wins_owner	= rec->wins_owner;
+		addr->expire_time	= rec->expire_time;
+		*_addr = addr;
+		return NT_STATUS_OK;
+	}
+
+	*p = '\0';p++;
+	addr->address = talloc_strdup(addr, address);
+	if (!addr->address) {
+		status = NT_STATUS_NO_MEMORY;
+		goto failed;
+	}
+
+	if (strncmp("winsOwner:", p, 10) != 0) {
+		status = NT_STATUS_INTERNAL_DB_CORRUPTION;
+		goto failed;
+	}
+	wins_owner = p + 10;
+	p = strchr(wins_owner, ';');
+	if (!p) {
+		status = NT_STATUS_INTERNAL_DB_CORRUPTION;
+		goto failed;
+	}
+
+	*p = '\0';p++;
+	addr->wins_owner = talloc_strdup(addr, wins_owner);
+	if (!addr->wins_owner) {
+		status = NT_STATUS_NO_MEMORY;
+		goto failed;
+	}
+
+	if (strncmp("expireTime:", p, 11) != 0) {
+		status = NT_STATUS_INTERNAL_DB_CORRUPTION;
+		goto failed;
+	}
+
+	expire_time = p + 11;
+	p = strchr(expire_time, ';');
+	if (!p) {
+		status = NT_STATUS_INTERNAL_DB_CORRUPTION;
+		goto failed;
+	}
+
+	*p = '\0';p++;
+	addr->expire_time = ldap_string_to_time(expire_time);
+
+	*_addr = addr;
+	return NT_STATUS_OK;
+failed:
+	talloc_free(addr);
+	return status;
 }
 
 /*
@@ -784,9 +849,6 @@
 	int trans;
 	int ret;
 
-	trans = ldb_transaction_start(ldb);
-	if (trans != LDB_SUCCESS) goto failed;
-
 	if(!winsdb_remove_version(winssrv, rec->version))
 		goto failed;
 

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



More information about the samba-cvs mailing list