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