[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