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
===================================================================

Reply via email to