svn commit: samba r11087 - in branches/SAMBA_4_0/source:
nbt_server/wins scripting/libjs setup
metze at samba.org
metze at samba.org
Sat Oct 15 10:15:42 GMT 2005
Author: metze
Date: 2005-10-15 10:15:42 +0000 (Sat, 15 Oct 2005)
New Revision: 11087
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11087
Log:
- add type,name,scope as attributes to winsRecords,
so you can use them in search filters,
only for administration not used inside the winserver code
- fix the samba3 ugrade scripts to create a correct samba4 wins.ldb
metze
Modified:
branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
branches/SAMBA_4_0/source/scripting/libjs/upgrade.js
branches/SAMBA_4_0/source/setup/upgrade
Changeset:
Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-10-15 10:04:33 UTC (rev 11086)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsdb.c 2005-10-15 10:15:42 UTC (rev 11087)
@@ -513,6 +513,13 @@
msg->dn = winsdb_dn(msg, rec->name);
if (msg->dn == NULL) goto failed;
+ ret |= ldb_msg_add_fmt(msg, "type", "0x%02X", rec->name->type);
+ if (rec->name->name) {
+ ret |= ldb_msg_add_string(msg, "name", rec->name->name);
+ }
+ if (rec->name->scope) {
+ ret |= ldb_msg_add_string(msg, "scope", rec->name->scope);
+ }
ret |= ldb_msg_add_fmt(msg, "objectClass", "winsRecord");
ret |= ldb_msg_add_fmt(msg, "recordType", "%u", rec->type);
ret |= ldb_msg_add_fmt(msg, "recordState", "%u", rec->state);
Modified: branches/SAMBA_4_0/source/scripting/libjs/upgrade.js
===================================================================
--- branches/SAMBA_4_0/source/scripting/libjs/upgrade.js 2005-10-15 10:04:33 UTC (rev 11086)
+++ branches/SAMBA_4_0/source/scripting/libjs/upgrade.js 2005-10-15 10:15:42 UTC (rev 11087)
@@ -228,22 +228,73 @@
function upgrade_wins(samba3)
{
var ldif = "";
+ var version_id = 0;
+
for (i in samba3.winsentries) {
+ var rType;
+ var rState;
+ var nType;
+ var numIPs = 0;
var e = samba3.winsentries[i];
-
+ var now = sys.nttime();
+ var ttl = sys.unix2nttime(e.ttl);
+
+ version_id++;
+
+ for (var i in e.ips) {
+ numIPs++;
+ }
+
+ if (e.type == 0x1C) {
+ rType = 0x2;
+ } else if (sys.bitAND(e.type, 0x80)) {
+ if (numIPs > 1) {
+ rType = 0x2;
+ } else {
+ rType = 0x1;
+ }
+ } else {
+ if (numIPs > 1) {
+ rType = 0x3;
+ } else {
+ rType = 0x0;
+ }
+ }
+
+ if (ttl > now) {
+ rState = 0x0;/* active */
+ } else {
+ rState = 0x1;/* released */
+ }
+
+ nType = (sys.bitAND(e.nb_flags,0x60)>>5);
+
ldif = ldif + sprintf("
-dn: type=%d,name=%s
+dn: name:%s,type=0x%02X
+type: 0x%02X
name: %s
-objectClass: wins
-nbFlags: %x
-expires: %s
-", e.type, e.name, e.name, e.type, e.nb_flags, sys.ldaptime(e.ttl));
+objectClass: winsRecord
+recordType: %u
+recordState: %u
+nodeType: %u
+isStatic: 0
+expireTime: %s
+versionID: %llu
+", e.name, e.type, e.type, e.name,
+ rType, rState, nType,
+ sys.ldaptime(ttl), version_id);
for (var i in e.ips) {
ldif = ldif + sprintf("address: %s\n", e.ips[i]);
}
}
+ ldif = ldif + sprintf("
+dn: CN=VERSION
+objectClass: winsMaxVersion
+maxVersion: %llu
+", version_id);
+
return ldif;
}
@@ -569,7 +620,7 @@
dn: @MODULES
changetype: modify
replace: @LIST
- at LIST: samldb,timestamps,objectguid,rdn_name,samba3sam
+ at LIST: samldb,operational,objectguid,rdn_name,samba3sam
");
if (!ok) {
message("Error enabling samba3sam module: " + samdb.errstring() + "\n");
Modified: branches/SAMBA_4_0/source/setup/upgrade
===================================================================
--- branches/SAMBA_4_0/source/setup/upgrade 2005-10-15 10:04:33 UTC (rev 11086)
+++ branches/SAMBA_4_0/source/setup/upgrade 2005-10-15 10:15:42 UTC (rev 11087)
@@ -75,7 +75,7 @@
if (options.targetdir != undefined) {
paths = new Object();
paths.smbconf = sprintf("%s/smb.conf", options.targetdir);
- var ldbs = new Array("hklm","hkcr","hku","hkcu","hkpd","hkpt","samdb","rootdse","secrets","winsdb");
+ var ldbs = new Array("hklm","hkcr","hku","hkcu","hkpd","hkpt","samdb","rootdse","secrets","wins");
for (var i in ldbs) {
var n = ldbs[i];
paths[n] = sprintf("tdb://%s/%s.ldb", options.targetdir, n);
More information about the samba-cvs
mailing list