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

metze at samba.org metze at samba.org
Fri Oct 14 12:51:38 GMT 2005


Author: metze
Date: 2005-10-14 12:51:36 +0000 (Fri, 14 Oct 2005)
New Revision: 11029

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

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/wins/winsdb.c
   branches/SAMBA_4_0/source/smbd/config.mk
   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:10320
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:10325
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/wins/winsdb.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-14 12:51:06 UTC (rev 11028)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c	2005-10-14 12:51:36 UTC (rev 11029)
@@ -77,19 +77,27 @@
 }
 
 /*
-  allocate a new version id for a record
+  return a DN for a nbt_name
 */
-static uint64_t winsdb_allocate_version(struct wins_server *winssrv)
+static struct ldb_dn *winsdb_dn(TALLOC_CTX *mem_ctx, struct nbt_name *name)
 {
-	winssrv->max_version++;
-	if (!winsdb_save_version(winssrv)) {
-		return 0;
+	struct ldb_dn *dn;
+
+	dn = ldb_dn_string_compose(mem_ctx, NULL, "type=%02x", name->type);
+	if (dn && name->name && *name->name) {
+		dn = ldb_dn_string_compose(mem_ctx, dn, "name=%s", name->name);
 	}
-	return winssrv->max_version;
+	if (dn && name->scope && *name->scope) {
+		dn = ldb_dn_string_compose(mem_ctx, dn, "scope=%s", name->scope);
+	}
+	return dn;
 }
 
 /*
-  remove a version id
+ decode the winsdb_addr("address") attribute:
+ "172.31.1.1" or 
+ "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)
 {
@@ -101,24 +109,96 @@
 	return True;
 }
 
-
 /*
-  return a DN for a nbt_name
+ encode the winsdb_addr("address") attribute like this:
+ "172.31.1.1;winsOwner:172.31.9.202;expireTime:20050923032330.0Z"
 */
-static struct ldb_dn *winsdb_dn(TALLOC_CTX *mem_ctx, struct nbt_name *name)
+static int ldb_msg_add_winsdb_addr(struct ldb_context *ldb, struct ldb_message *msg, 
+				   const char *attr_name, struct winsdb_addr *addr)
 {
-	struct ldb_dn *dn;
+	struct ldb_val val;
+	const char *str;
 
 	dn = ldb_dn_string_compose(mem_ctx, NULL, "type=%02x", name->type);
-	if (dn && name->name && *name->name) {
-		dn = ldb_dn_string_compose(mem_ctx, dn, "name=%s", name->name);
+
+	addresses[len]->address = talloc_strdup(addresses[len], address);
+	if (!addresses[len]->address) {
+		talloc_free(addresses);
+		return NULL;
 	}
-	if (dn && name->scope && *name->scope) {
-		dn = ldb_dn_string_compose(mem_ctx, dn, "scope=%s", name->scope);
+
+	addresses[len]->wins_owner = talloc_strdup(addresses[len], wins_owner);
+	if (!addresses[len]->wins_owner) {
+		talloc_free(addresses);
+		return NULL;
 	}
-	return dn;
+
+	addresses[len]->expire_time = expire_time;
+
+	addresses[len+1] = NULL;
+
+	return addresses;
 }
 
+void winsdb_addr_list_remove(struct winsdb_addr **addresses, const char *address)
+{
+	size_t i;
+
+	for (i=0; addresses[i]; i++) {
+		if (strcmp(addresses[i]->address, address) == 0) {
+			break;
+		}
+	}
+	if (!addresses[i]) return;
+
+	for (; addresses[i]; i++) {
+		addresses[i] = addresses[i+1];
+	}
+
+	return;
+}
+
+struct winsdb_addr *winsdb_addr_list_check(struct winsdb_addr **addresses, const char *address)
+{
+	size_t i;
+
+	for (i=0; addresses[i]; i++) {
+		if (strcmp(addresses[i]->address, address) == 0) {
+			return addresses[i];
+		}
+	}
+
+	return NULL;
+}
+
+size_t winsdb_addr_list_length(struct winsdb_addr **addresses)
+{
+	size_t i;
+	for (i=0; addresses[i]; i++);
+	return i;
+}
+
+const char **winsdb_addr_string_list(TALLOC_CTX *mem_ctx, struct winsdb_addr **addresses)
+{
+	size_t len = winsdb_addr_list_length(addresses);
+	const char **str_list;
+	size_t i;
+
+	str_list = talloc_array(mem_ctx, const char *, len + 1);
+	if (!str_list) return NULL;
+
+	for (i=0; i < len; i++) {
+		str_list[i] = talloc_strdup(str_list, addresses[i]->address);
+		if (!str_list[i]) {
+			talloc_free(str_list);
+			return NULL;
+		}
+	}
+
+	str_list[len] = NULL;
+	return str_list;
+}
+
 /*
  decode the winsdb_addr("address") attribute:
  "172.31.1.1" or 

Modified: branches/SAMBA_4_0/source/smbd/config.mk
===================================================================

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



More information about the samba-cvs mailing list