[SCM] Samba Shared Repository - branch master updated
Andrew Tridgell
tridge at samba.org
Mon Oct 3 23:41:03 MDT 2011
The branch, master has been updated
via 6b5d8e0 s4-subdomain: create trust record with forest root DC
via 8905344 s4-dsdb: fixed re-join of subdomain
via 28a6881 s4-lsa: fixed set of trust password with old password
via e9758ef s4-dns: add all forest DCs to named.conf.update
via 7244e25 s4-ldap: added DSDB_CONTROL_NO_GLOBAL_CATALOG to ldap encoding list
via 0ef8dca s4-kdc: fixed handling of previous vs current trust password
via 71f3a25 s4-auth: rework map_user_info() to use cracknames
via 0c944d0 s4-sam: don't look in GC NCs for user accounts
via aee896a s4-kdc: don't look at global catalog NCs in the kdc
via 5717da3 s4-kdc: treat a kvno of 255 as unspecified
via 6356f4c s4-kcc: if we are a GC, auto-add partial replicas
via 278e44c s4-dsdb: simplify samdb_is_gc()
via f469369 s4-dsdb: add the DSDB_CONTROL_PARTIAL_REPLICA when needed
via 6b69ecd heimdal: handle referrals for 3 part DRSUAPI SPNs
via b930b1e s4-repl: try harder to find the right SPN in replication server
via 60cbc98 s4-dsdb: added new control DSDB_MODIFY_PARTIAL_REPLICA
via fb937af s4-join: enable cleanup on failed join
via efb3f45 s4-drs: added DSDB_REPL_FLAG_ADD_NCNAME to DsAddEntry call
via 1870fc4 s4-dsdb: added DSDB_REPL_FLAG_ADD_NCNAME flag
via 50d6a76 s4-dsdb: fixed formatting of a debug message
via d12309d s4-partition: allow creation of uninstantiated partitions
via f52d8ca s4-dsdb: allow uninstantiated NC heads
via faf8581 s4-repl: support creation of new NCs via DsAddEntry
via df3cc35 s4-repl: fixed formatting of some debug messages
via 004f8c6 drsuapi: added ncName attid in enum
via 7d18241 dns: added example python script for dnsserver protocol
via 57e30bc0 dns: build python bindings for dnsserver RPC protocol
via ff482bc dns: filled in dnsserver.idl
via 2fbdaab samba-tool: cope with GC compares in ldapcmp
via aed0d2e samba-tool: added --full-sync and --sync-all options to samba-tool drs replicate
via 5d4f474 s4-dbchecker: fixed handling of DSDB DNs in dbcheck
via ac581b3 s4-dsdb: update callers to dsdb_convert_object_ex()
via 761fd4a s4-repl: update instanceType in partial_replica replication
via f37e81b s4-repl: add FULL_SYNC and PARTIAL_REPLICA flags
via bdc9319 s4-dsdb: implement DSDB_REPL_FLAG_PRIORITISE_INCOMING
via f45147b s4-dsdb: disallow changes based on instanceType
via d3fa496 s4-dsdb: added DSDB_REPL_FLAG* to replication
via 0d2d6c9 s4-ldap-server: disallow all modifies on global catalog port
via 1df1003 s4-ldb: enable display of partialAttributeSet with --show-binary
from d6c949b testtools: Import new upstream snapshot.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 6b5d8e02f78ed2039ea25edeb372d5b86089e3df
Author: Andrew Tridgell <tridge at samba.org>
Date: Sat Oct 1 10:58:52 2011 +1000
s4-subdomain: create trust record with forest root DC
when we create a sub-subdomain we need to use the forest naming master
to setup the partition changes for the new subdomain. We also need to
setup the trust with the forest root, as that allows us to create the
needed _msdcs DNS entries in the forest
Autobuild-User: Andrew Tridgell <tridge at samba.org>
Autobuild-Date: Tue Oct 4 07:40:59 CEST 2011 on sn-devel-104
commit 8905344bad2a22c6271340f04093c7bd0e10f348
Author: Andrew Tridgell <tridge at samba.org>
Date: Sat Oct 1 10:57:14 2011 +1000
s4-dsdb: fixed re-join of subdomain
if we repeat the join of a subdomain then we try to re-create the NC
for the subdomain during a DsAddEntry(). This allows that re-creation
to succeed if the NC already exists
commit 28a6881d4f4aac814cb01ca87e113caf4b1c8026
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 30 09:03:39 2011 +1000
s4-lsa: fixed set of trust password with old password
the calculation of add_incoming and add_outgoing was not correct when
a trust was already in place
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit e9758ef94de98dd253a79547d2109bcd714f8517
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 30 07:43:54 2011 +1000
s4-dns: add all forest DCs to named.conf.update
this allows all DCs to update DNS entries
commit 7244e254cc28fc3f4273731a53a21ab81c330baa
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 30 07:08:15 2011 +1000
s4-ldap: added DSDB_CONTROL_NO_GLOBAL_CATALOG to ldap encoding list
also remove all the duplicated comments
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 0ef8dca9fb69154f50807d0a56aeb24614d73399
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 30 06:47:08 2011 +1000
s4-kdc: fixed handling of previous vs current trust password
This sorts out the correct handling for the 'kvno=255'
problem. Windows will use the previous trust password for 1 hour after
a password set, and indicates that the previous password is being used
by sending current_kvno-1. That maps to 255 if the trust password has
not actually been changed, so the initial trust password is being
used.
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 71f3a25ff7ff5866c77f580daa4814ca985167ce
Author: Andrew Tridgell <tridge at samba.org>
Date: Thu Sep 29 17:44:28 2011 +1000
s4-auth: rework map_user_info() to use cracknames
to properly support multi-domain forests we need to determine if an
incoming username is part of a known forest domain or not. To do this
for all possible SPN forms, we need to use CrackNames.
This changes map_user_info() to use CrackNames if a SAM context is
available, and asks the CrackNames services to parse the incoming
username and domain into a NT4 form, which can then be used in the
SAM.
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 0c944d07dc534694729a1ae85d3f28206c6c0c40
Author: Andrew Tridgell <tridge at samba.org>
Date: Thu Sep 29 17:43:25 2011 +1000
s4-sam: don't look in GC NCs for user accounts
We need to exclude GC partial replica naming contexts from SAM lookups
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit aee896ad98edf80a62e586beabffeea02e004585
Author: Andrew Tridgell <tridge at samba.org>
Date: Thu Sep 29 05:23:38 2011 +1000
s4-kdc: don't look at global catalog NCs in the kdc
the kdc should not be looking for users in GC partial replicas, as
these users do not have all of the attributes needed for the KDC to
operate
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 5717da34b92cfb9385d9275df5b48c70254ce78f
Author: Andrew Tridgell <tridge at samba.org>
Date: Thu Sep 29 05:22:27 2011 +1000
s4-kdc: treat a kvno of 255 as unspecified
windows sometimes sends us a kvno of 255 for inter-domain trusts. We
don't yet know why it does this, but it seems that we need to treat
this as an unspecified kvno
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 6356f4c25524e81cad3301a5cdf907272612948f
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 16:45:17 2011 +1000
s4-kcc: if we are a GC, auto-add partial replicas
when we are a global catalog server, the KCC needs to add partial
replicas for all domain partitions that we don't have copies of
commit 278e44cf9f6e0ba0c4f45dd6e7127ab7936f3ed7
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 14:36:00 2011 +1000
s4-dsdb: simplify samdb_is_gc()
we already have a function for returning the NTDS options
commit f469369fdf71b52930fdcc1f68632a727db38fc1
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 14:35:27 2011 +1000
s4-dsdb: add the DSDB_CONTROL_PARTIAL_REPLICA when needed
when we are adding an object via DRS, we need to add the
DSDB_CONTROL_PARTIAL_REPLICA control if we are replicating a partial
replica, so ensure the partition module creates new NCs as partial
replicas
commit 6b69ecd0293d827b7429cfd75cf4a13ab4e40ce5
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 14:18:14 2011 +1000
heimdal: handle referrals for 3 part DRSUAPI SPNs
This handles referrals for SPNs of the form
E3514235-4B06-11D1-AB04-00C04FC2DCD2/NTDSGUID/REALM, which are
used during DRS replication when we don't know the dnsHostName of the
target DC (which we don't know until the first replication from that
DC completes).
We use the 3rd part of the SPN directly as the realm name in the
referral.
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit b930b1e1fc52b999141918cf0d06d66bfbbf1fa4
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 13:48:52 2011 +1000
s4-repl: try harder to find the right SPN in replication server
when doing DRS between domains, using the right SPN is essential so
the KDC can generate referrals to point us at the right DC. We prefer
the GC/hostname/DNSDOMAIN form if possible, but if we can't find the
hostname then this changes the code that generates the target
principal name to use either the msDS-HasDomainNCs or hasMasterNCs
attributes to try to find the target DC domainname so we can use the
E3514235-4B06-11D1-AB04-00C04FC2DCD2/GUID/DNSDOMAIN SPN form.
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit 60cbc98051b430fc09358a09866c69a54cc726bc
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 11:04:29 2011 +1000
s4-dsdb: added new control DSDB_MODIFY_PARTIAL_REPLICA
this control tells the partition module that the DN being created is a
partial replica, so it should modify the @PARTITION object to add the
partialReplica attribute
Pair-Programmed-With: Andrew Bartlett <abartlet at samba.org>
commit fb937afbecb61896e8e8e56c19bbc193fc573e15
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:32:15 2011 +1000
s4-join: enable cleanup on failed join
if a join fails, then cleanup the old records
commit efb3f45a81ba0df5051c064a69b4877ee48a0798
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:31:38 2011 +1000
s4-drs: added DSDB_REPL_FLAG_ADD_NCNAME to DsAddEntry call
we want new NCs to be created
commit 1870fc49ddf8928d2ae932a5fd0a408ece419dcd
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:30:44 2011 +1000
s4-dsdb: added DSDB_REPL_FLAG_ADD_NCNAME flag
commit 50d6a76a14651147e3cfd82ea9b0e45f412f2d00
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:30:26 2011 +1000
s4-dsdb: fixed formatting of a debug message
another missing newline
commit d12309dc1ace834e6b49a275e6b52ed0e864a651
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:30:02 2011 +1000
s4-partition: allow creation of uninstantiated partitions
this is needed for a subdomain join by a new NC. The NC is initially
uninstantiated
commit f52d8ca0238ee5fef643bbc0b3c249b0397a61b5
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:29:09 2011 +1000
s4-dsdb: allow uninstantiated NC heads
this allows INSTANCE_TYPE_WRITE to be not set if
INSTANCE_TYPE_UNINSTANT is set
commit faf8581e38764ec932f3809479c4631131b8fd1b
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:28:10 2011 +1000
s4-repl: support creation of new NCs via DsAddEntry
this adds a flag to dsdb_origin_objects_commit that tells it to create
a new NC based on the nCName in a crossRef object
commit df3cc35f7486c425990abccc4d3dfa431e1fa81b
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:26:51 2011 +1000
s4-repl: fixed formatting of some debug messages
commit 004f8c6e976cc2b654e13e630c2fb357e82d8175
Author: Andrew Tridgell <tridge at samba.org>
Date: Wed Sep 28 09:26:30 2011 +1000
drsuapi: added ncName attid in enum
commit 7d18241faaadb5a9682f5e28b3b18e656cfae056
Author: Andrew Tridgell <tridge at samba.org>
Date: Mon Sep 26 09:50:41 2011 +1000
dns: added example python script for dnsserver protocol
commit 57e30bc0cba85e5361ae62f679f7de544d0676e6
Author: Andrew Tridgell <tridge at samba.org>
Date: Mon Sep 26 09:50:11 2011 +1000
dns: build python bindings for dnsserver RPC protocol
commit ff482bc836ba25f5462499e19fff0eec7d767385
Author: Andrew Tridgell <tridge at samba.org>
Date: Mon Sep 26 09:49:42 2011 +1000
dns: filled in dnsserver.idl
this fills in the functions and structures for the dnsserver RPC
protocol. This protocol is used during a subdomain join to add the NS
glue record to the parent domain
commit 2fbdaab331e5ba5ffb9ce2784c60cf99f84ad5b6
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:39:24 2011 +1000
samba-tool: cope with GC compares in ldapcmp
the two base DNs do not need to match when doing GC replica compares
commit aed0d2e5ebfa15a08f30dc1ebde584ad8722d055
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:38:08 2011 +1000
samba-tool: added --full-sync and --sync-all options to samba-tool drs replicate
commit 5d4f474b58e209f171bd5976242db4a1dc2af2ee
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:37:23 2011 +1000
s4-dbchecker: fixed handling of DSDB DNs in dbcheck
we need to use the original value, as ldb.Dn() can't parse a DSDB
binary DN
commit ac581b3374188b5d6171b5f90fb3d0a103201475
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:35:48 2011 +1000
s4-dsdb: update callers to dsdb_convert_object_ex()
commit 761fd4af2e6cc3017bc95cc0edd0080d03ddc7f3
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:34:32 2011 +1000
s4-repl: update instanceType in partial_replica replication
when we receive objects to a partial replica, we need to change the
incoming instanceType to not include the INSTANCE_TYPE_WRITE
flag. Partial replicas unset this flag.
commit f37e81bbc589bf10bb2399a9e4e7822a82e81b0e
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:33:07 2011 +1000
s4-repl: add FULL_SYNC and PARTIAL_REPLICA flags
this sets the appropriate flags for replication with FULL_SYNC and
partial replica replications
commit bdc93190fe075af35d52560401bb4cd0c29bf31d
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:30:40 2011 +1000
s4-dsdb: implement DSDB_REPL_FLAG_PRIORITISE_INCOMING
With this set, we accept changes even if they have the same tuple as
the local copy. This can be used by a FULL_SYNC replication to recover
a replica that is corrupt
commit f45147b2d9c6b43913d10871564d03307833fbae
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:28:25 2011 +1000
s4-dsdb: disallow changes based on instanceType
if instanceType does not include INSTANCE_TYPE_WRITE, then disallow
changes to any replicated attributes. This ensures partial replicates
are not alterered
commit d3fa49663f37de4c2c35f43a9cf6844a60531db0
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 17:27:40 2011 +1000
s4-dsdb: added DSDB_REPL_FLAG* to replication
this allows the replication server to control replication via a set of
flags. Initial flags will allow control for partial replications and
full_sync support
commit 0d2d6c94d2da09b01d91c31cbf099248fac90802
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 16:15:24 2011 +1000
s4-ldap-server: disallow all modifies on global catalog port
commit 1df100393b6788e7f94876b957f6110bd91f958e
Author: Andrew Tridgell <tridge at samba.org>
Date: Fri Sep 23 13:28:06 2011 +1000
s4-ldb: enable display of partialAttributeSet with --show-binary
-----------------------------------------------------------------------
Summary of changes:
lib/ldb-samba/ldif_handlers.c | 23 +-
lib/ldb-samba/ldif_handlers.h | 1 +
librpc/idl/dnsp.idl | 4 +-
librpc/idl/dnsserver.idl | 1333 +++++++++++++++++++++-
librpc/idl/drsuapi.idl | 1 +
librpc/wscript_build | 5 +
source4/auth/ntlm/auth.c | 2 +-
source4/auth/ntlm/auth_util.c | 226 ++++-
source4/auth/sam.c | 8 +-
source4/dsdb/common/util.c | 97 ++-
source4/dsdb/common/util.h | 1 +
source4/dsdb/dns/dns_update.c | 66 +-
source4/dsdb/kcc/kcc_periodic.c | 150 +++-
source4/dsdb/repl/drepl_out_helpers.c | 32 +-
source4/dsdb/repl/drepl_partitions.c | 95 ++-
source4/dsdb/repl/drepl_ridalloc.c | 10 +-
source4/dsdb/repl/replicated_objects.c | 47 +
source4/dsdb/samdb/ldb_modules/instancetype.c | 6 +-
source4/dsdb/samdb/ldb_modules/new_partition.c | 18 +-
source4/dsdb/samdb/ldb_modules/partition_init.c | 12 +
source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 54 +-
source4/dsdb/samdb/samdb.h | 21 +-
source4/heimdal/kdc/krb5tgs.c | 19 +-
source4/kdc/db-glue.c | 133 ++-
source4/kdc/kpasswdd.c | 16 +-
source4/ldap_server/ldap_backend.c | 20 +
source4/libcli/ldap/ldap_controls.c | 25 +-
source4/libnet/libnet_vampire.c | 3 +
source4/librpc/wscript_build | 6 +
source4/rpc_server/drsuapi/addentry.c | 1 +
source4/rpc_server/lsa/dcesrv_lsa.c | 27 +-
source4/scripting/python/examples/dnsserver.py | 89 ++
source4/scripting/python/samba/dbchecker.py | 2 +-
source4/scripting/python/samba/join.py | 42 +-
source4/scripting/python/samba/netcmd/drs.py | 12 +-
source4/scripting/python/samba/netcmd/ldapcmp.py | 8 +-
source4/setup/schema_samba4.ldif | 1 +
source4/torture/drs/rpc/dssync.c | 1 +
38 files changed, 2406 insertions(+), 211 deletions(-)
create mode 100755 source4/scripting/python/examples/dnsserver.py
Changeset truncated at 500 lines:
diff --git a/lib/ldb-samba/ldif_handlers.c b/lib/ldb-samba/ldif_handlers.c
index 37e6966..52c77bd 100644
--- a/lib/ldb-samba/ldif_handlers.c
+++ b/lib/ldb-samba/ldif_handlers.c
@@ -940,6 +940,19 @@ static int ldif_write_trustAuthInOutBlob(struct ldb_context *ldb, void *mem_ctx,
true);
}
+/*
+ convert a NDR formatted blob of a partialAttributeSet into text
+*/
+static int ldif_write_partialAttributeSet(struct ldb_context *ldb, void *mem_ctx,
+ const struct ldb_val *in, struct ldb_val *out)
+{
+ return ldif_write_NDR(ldb, mem_ctx, in, out,
+ sizeof(struct partialAttributeSetBlob),
+ (ndr_pull_flags_fn_t)ndr_pull_partialAttributeSetBlob,
+ (ndr_print_fn_t)ndr_print_partialAttributeSetBlob,
+ true);
+}
+
static int extended_dn_write_hex(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
@@ -1341,6 +1354,13 @@ static const struct ldb_schema_syntax samba_syntaxes[] = {
.canonicalise_fn = ldb_handler_copy,
.comparison_fn = ldb_comparison_binary,
.operator_fn = samba_syntax_operator_fn
+ },{
+ .name = LDB_SYNTAX_SAMBA_PARTIALATTRIBUTESET,
+ .ldif_read_fn = ldb_handler_copy,
+ .ldif_write_fn = ldif_write_partialAttributeSet,
+ .canonicalise_fn = ldb_handler_copy,
+ .comparison_fn = ldb_comparison_binary,
+ .operator_fn = samba_syntax_operator_fn
}
};
@@ -1460,7 +1480,8 @@ static const struct {
/* These NDR encoded things we want to be able to read with --show-binary */
{ "dnsRecord", LDB_SYNTAX_SAMBA_DNSRECORD },
- { "supplementalCredentials", LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS}
+ { "supplementalCredentials", LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS},
+ { "partialAttributeSet", LDB_SYNTAX_SAMBA_PARTIALATTRIBUTESET}
};
const struct ldb_schema_syntax *ldb_samba_syntax_by_name(struct ldb_context *ldb, const char *name)
diff --git a/lib/ldb-samba/ldif_handlers.h b/lib/ldb-samba/ldif_handlers.h
index e9669ab..eb6c656 100644
--- a/lib/ldb-samba/ldif_handlers.h
+++ b/lib/ldb-samba/ldif_handlers.h
@@ -16,6 +16,7 @@
#define LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS "LDB_SYNTAX_SAMBA_SUPPLEMENTALCREDENTIALS"
#define LDB_SYNTAX_SAMBA_SDDL_SECURITY_DESCRIPTOR "LDB_SYNTAX_SAMBA_SDDL"
#define LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB "LDB_SYNTAX_SAMBA_TRUSTAUTHINOUTBLOB"
+#define LDB_SYNTAX_SAMBA_PARTIALATTRIBUTESET "LDB_SYNTAX_SAMBA_PARTIALATTRIBUTESET"
#include "lib/ldb-samba/ldif_handlers_proto.h"
#undef _PRINTF_ATTRIBUTE
diff --git a/librpc/idl/dnsp.idl b/librpc/idl/dnsp.idl
index f8cf1d4..12af30a 100644
--- a/librpc/idl/dnsp.idl
+++ b/librpc/idl/dnsp.idl
@@ -23,7 +23,7 @@ import "misc.idl";
interface dnsp
{
- typedef [enum16bit] enum {
+ typedef [enum16bit,public] enum {
DNS_TYPE_TOMBSTONE = 0x0,
DNS_TYPE_A = 0x1,
DNS_TYPE_NS = 0x2,
@@ -108,7 +108,7 @@ interface dnsp
dnsp_name nameTarget;
} dnsp_srv;
- typedef [nodiscriminant,gensize] union {
+ typedef [nodiscriminant,gensize,public] union {
[case(DNS_TYPE_TOMBSTONE)] NTTIME timestamp;
[case(DNS_TYPE_A)] [flag(NDR_BIG_ENDIAN)] ipv4address ipv4;
[case(DNS_TYPE_NS)] dnsp_name ns;
diff --git a/librpc/idl/dnsserver.idl b/librpc/idl/dnsserver.idl
index 86a8a14..387be51 100644
--- a/librpc/idl/dnsserver.idl
+++ b/librpc/idl/dnsserver.idl
@@ -1,12 +1,1343 @@
+#include "idl_types.h"
/*
dnsserver interface definition
+ for a protocol descrition see [MS-DNSP].pdf
*/
+import "misc.idl", "dnsp.idl";
+
[ uuid("50abc2a4-574d-40b3-9d66-ee4fd5fba076"),
version(5.0),
pointer_default(unique),
helpstring("DNS Server")
] interface dnsserver
{
- void dnsserver_foo();
+
+#define wchar_t uint16
+#define BOOLEAN boolean8
+#define BOOL boolean32
+#define BYTE uint8
+#define UCHAR uint8
+#define CHAR char
+#define PBYTE BYTE*
+#define DWORD uint32
+#define PDWORD uint32 *
+
+ typedef struct {
+ DWORD StatId;
+ WORD wLength;
+ BOOLEAN fClear;
+ UCHAR fReserved;
+ } DNSSRV_STAT_HEADER;
+
+
+ typedef struct {
+ DNSSRV_STAT_HEADER Header;
+ BYTE Buffer[1];
+ } DNSSRV_STAT;
+
+ typedef struct {
+ DWORD AddrCount;
+ [size_is( AddrCount )] DWORD AddrArray[];
+ } IP4_ARRAY;
+#define PIP4_ARRAY IP4_ARRAY*
+
+ typedef struct {
+ CHAR MaxSa[32];
+ DWORD DnsAddrUserDword[8];
+ } DNS_ADDR;
+
+ typedef struct {
+ DWORD MaxCount;
+ DWORD AddrCount;
+ DWORD Tag;
+ WORD Family;
+ WORD WordReserved;
+ DWORD Flags;
+ DWORD MatchFlag;
+ DWORD Reserved1;
+ DWORD Reserved2;
+ [size_is( AddrCount )] DNS_ADDR AddrArray[];
+ } DNS_ADDR_ARRAY;
+#define PDNS_ADDR_ARRAY DNS_ADDR_ARRAY*
+
+ //
+ // RPC buffer type for returned data
+ //
+ typedef struct {
+ DWORD dwLength;
+ [size_is(dwLength)] BYTE Buffer[];
+ } DNS_RPC_BUFFER;
+
+
+ //
+ // Server data types
+ //
+ typedef struct {
+ // version
+ // basic configuration flags
+
+ DWORD dwVersion;
+ UCHAR fBootMethod;
+ BOOLEAN fAdminConfigured;
+ BOOLEAN fAllowUpdate;
+ BOOLEAN fDsAvailable;
+
+ //
+ // pointer section
+ //
+
+ [string, charset(UTF8)] char * pszServerName;
+
+ // DS container
+
+ [string, charset(UTF16)] wchar_t * pszDsContainer;
+
+ // IP interfaces
+
+ PIP4_ARRAY aipServerAddrs;
+ PIP4_ARRAY aipListenAddrs;
+
+ // forwarders
+
+ PIP4_ARRAY aipForwarders;
+
+ // future extensions
+
+ PDWORD pExtension1;
+ PDWORD pExtension2;
+ PDWORD pExtension3;
+ PDWORD pExtension4;
+ PDWORD pExtension5;
+
+ //
+ // DWORD section
+ //
+
+ // logging
+
+ DWORD dwLogLevel;
+ DWORD dwDebugLevel;
+ // configuration DWORDs
+
+ DWORD dwForwardTimeout;
+ DWORD dwRpcProtocol;
+ DWORD dwNameCheckFlag;
+ DWORD cAddressAnswerLimit;
+ DWORD dwRecursionRetry;
+ DWORD dwRecursionTimeout;
+ DWORD dwMaxCacheTtl;
+ DWORD dwDsPollingInterval;
+
+ // aging / scavenging
+
+ DWORD dwScavengingInterval;
+ DWORD dwDefaultRefreshInterval;
+ DWORD dwDefaultNoRefreshInterval;
+
+ DWORD dwReserveArray[10];
+
+ //
+ // BYTE section
+ //
+ // configuration flags
+
+ BOOLEAN fAutoReverseZones;
+ BOOLEAN fAutoCacheUpdate;
+
+ // recursion control
+
+ BOOLEAN fRecurseAfterForwarding;
+ BOOLEAN fForwardDelegations;
+ BOOLEAN fNoRecursion;
+ BOOLEAN fSecureResponses;
+
+ // lookup control
+
+ BOOLEAN fRoundRobin;
+ BOOLEAN fLocalNetPriority;
+
+ // BIND compatibility and mimicking
+
+ BOOLEAN fBindSecondaries;
+ BOOLEAN fWriteAuthorityNs;
+
+ // Bells and whistles
+
+ BOOLEAN fStrictFileParsing;
+ BOOLEAN fLooseWildcarding;
+
+ // aging / scavenging
+
+ BOOLEAN fDefaultAgingState;
+ BOOLEAN fReserveArray[15];
+ }
+ DNS_RPC_SERVER_INFO_W2K;
+
+ typedef struct {
+ [string, charset(UTF8)] uint8 *extension;
+ } DNS_EXTENSION;
+
+ typedef [public] struct {
+ DWORD dwRpcStructureVersion;
+ DWORD dwReserved0;
+
+ // basic configuration flags
+
+ DWORD dwVersion;
+ UCHAR fBootMethod;
+ BOOLEAN fAdminConfigured;
+ BOOLEAN fAllowUpdate;
+ BOOLEAN fDsAvailable;
+
+ //
+ // pointer section
+ //
+
+ [string, charset(UTF8)] char * pszServerName;
+
+ // DS container
+
+ [string, charset(UTF16)] wchar_t * pszDsContainer;
+
+ // IP interfaces
+
+ PIP4_ARRAY aipServerAddrs;
+ PIP4_ARRAY aipListenAddrs;
+
+ // forwarders
+
+ PIP4_ARRAY aipForwarders;
+
+ // logging
+
+ PIP4_ARRAY aipLogFilter;
+ [string, charset(UTF16)] wchar_t * pwszLogFilePath;
+
+ // Server domain/forest
+
+ [string, charset(UTF8)] char * pszDomainName; // UTF-8 FQDN
+ [string, charset(UTF8)] char * pszForestName; // UTF-8 FQDN
+
+ // Built-in directory partitions
+
+ [string, charset(UTF8)] char * pszDomainDirectoryPartition; // UTF-8 FQDN
+ [string, charset(UTF8)] char * pszForestDirectoryPartition; // UTF-8 FQDN
+
+ // future extensions
+ DNS_EXTENSION pExtensions[6];
+
+ //
+ // DWORD section
+ //
+
+ // logging
+
+ DWORD dwLogLevel;
+ DWORD dwDebugLevel;
+
+ // configuration DWORDs
+ DWORD dwForwardTimeout;
+ DWORD dwRpcProtocol;
+ DWORD dwNameCheckFlag;
+ DWORD cAddressAnswerLimit;
+ DWORD dwRecursionRetry;
+ DWORD dwRecursionTimeout;
+ DWORD dwMaxCacheTtl;
+ DWORD dwDsPollingInterval;
+ DWORD dwLocalNetPriorityNetMask;
+
+ // aging and scavenging
+
+ DWORD dwScavengingInterval;
+ DWORD dwDefaultRefreshInterval;
+ DWORD dwDefaultNoRefreshInterval;
+ DWORD dwLastScavengeTime;
+
+ // more logging
+
+ DWORD dwEventLogLevel;
+ DWORD dwLogFileMaxSize;
+
+ // Active Directory information
+
+ DWORD dwDsForestVersion;
+ DWORD dwDsDomainVersion;
+ DWORD dwDsDsaVersion;
+
+ DWORD dwReserveArray[ 4 ];
+
+ //
+ // BYTE section
+ //
+ // configuration flags
+
+ BOOLEAN fAutoReverseZones;
+ BOOLEAN fAutoCacheUpdate;
+
+ // recursion control
+
+ BOOLEAN fRecurseAfterForwarding;
+ BOOLEAN fForwardDelegations;
+ BOOLEAN fNoRecursion;
+ BOOLEAN fSecureResponses;
+
+ // lookup control
+
+ BOOLEAN fRoundRobin;
+ BOOLEAN fLocalNetPriority;
+
+ // BIND compatibility and mimicking
+
+ BOOLEAN fBindSecondaries;
+ BOOLEAN fWriteAuthorityNs;
+
+ // Bells and whistles
+
+ BOOLEAN fStrictFileParsing;
+ BOOLEAN fLooseWildcarding;
+
+ // aging \ scavenging
+
+ BOOLEAN fDefaultAgingState;
+
+ BOOLEAN fReserveArray[ 15 ];
+ }
+ DNS_RPC_SERVER_INFO_DOTNET;
+
+ typedef struct {
+ DWORD dwRpcStructureVersion;
+ DWORD dwReserved0;
+
+ // basic configuration flags
+
+ DWORD dwVersion;
+ UCHAR fBootMethod;
+ BOOLEAN fAdminConfigured;
+ BOOLEAN fAllowUpdate;
+ BOOLEAN fDsAvailable;
+
+ //
+ // pointer section
+ //
+
+ [string, charset(UTF8)] char * pszServerName;
+
+ // DS container
+
+ [string, charset(UTF16)] wchar_t * pszDsContainer;
+
+ // IP interfaces
+
+ PDNS_ADDR_ARRAY aipServerAddrs;
+ PDNS_ADDR_ARRAY aipListenAddrs;
+
+ // forwarders
+
+ PDNS_ADDR_ARRAY aipForwarders;
+
+ // logging
+
+ PDNS_ADDR_ARRAY aipLogFilter;
+ [string, charset(UTF16)] wchar_t * pwszLogFilePath;
+
+ // Server domain/forest
+
+ [string, charset(UTF8)] char * pszDomainName; // UTF-8 FQDN
+ [string, charset(UTF8)] char * pszForestName; // UTF-8 FQDN
+
+ // Built-in directory partitions
+
+ [string, charset(UTF8)] char * pszDomainDirectoryPartition; // UTF-8 FQDN
+ [string, charset(UTF8)] char * pszForestDirectoryPartition; // UTF-8 FQDN
+
+ // future extensions
+ DNS_EXTENSION pExtensions[6];
+
+ //
+ // DWORD section
+ //
+
+ // logging
+
+ DWORD dwLogLevel;
+ DWORD dwDebugLevel;
+
+ // configuration DWORDs
+
+ DWORD dwForwardTimeout;
+ DWORD dwRpcProtocol;
+ DWORD dwNameCheckFlag;
+ DWORD cAddressAnswerLimit;
+ DWORD dwRecursionRetry;
+ DWORD dwRecursionTimeout;
+ DWORD dwMaxCacheTtl;
+ DWORD dwDsPollingInterval;
+ DWORD dwLocalNetPriorityNetMask;
+
+ // aging and scavenging
+
+ DWORD dwScavengingInterval;
+ DWORD dwDefaultRefreshInterval;
+ DWORD dwDefaultNoRefreshInterval;
+ DWORD dwLastScavengeTime;
+
+ // more logging
+
+ DWORD dwEventLogLevel;
+ DWORD dwLogFileMaxSize;
+
+ // Active Directory information
+
+ DWORD dwDsForestVersion;
+ DWORD dwDsDomainVersion;
+ DWORD dwDsDsaVersion;
+ BOOLEAN fReadOnlyDC;
+
+ DWORD dwReserveArray[ 3 ];
+
+ //
+ // BYTE section
+ //
+ // configuration flags
+
+ BOOLEAN fAutoReverseZones;
+ BOOLEAN fAutoCacheUpdate;
+
+ // recursion control
+
+ BOOLEAN fRecurseAfterForwarding;
+ BOOLEAN fForwardDelegations;
+ BOOLEAN fNoRecursion;
+ BOOLEAN fSecureResponses;
--
Samba Shared Repository
More information about the samba-cvs
mailing list