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