[SCM] Samba Shared Repository - branch master updated - 37e6849d451c4f49c6a0c96a78a5ef81baab83d4

Jelmer Vernooij jelmer at samba.org
Mon Jan 5 17:02:04 GMT 2009


The branch, master has been updated
       via  37e6849d451c4f49c6a0c96a78a5ef81baab83d4 (commit)
       via  de7dc2cec059305d28cc75a5347bfd88f3cb5c95 (commit)
       via  ca05542d3defe76c3bce48eaff1fc749821a976c (commit)
       via  af744e0954bbe9ddfa2e3da173e79de65e640a4c (commit)
       via  ce47b69d8e318bbb3642d27aa0451e2914c92be7 (commit)
       via  08259c1c52a9921de6fba08939130698b474f382 (commit)
       via  2dc045007ef68bc42822471a3a08c8f094e29980 (commit)
      from  0581094023ba5e561184a2ea57f6e905161de978 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 37e6849d451c4f49c6a0c96a78a5ef81baab83d4
Merge: de7dc2cec059305d28cc75a5347bfd88f3cb5c95 0581094023ba5e561184a2ea57f6e905161de978
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 5 18:01:04 2009 +0100

    Merge branch 'master' of ssh://git.samba.org/data/git/samba

commit de7dc2cec059305d28cc75a5347bfd88f3cb5c95
Merge: ca05542d3defe76c3bce48eaff1fc749821a976c 21b7b000fb53ac3025d0038cc551a47f9d4a743b
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 5 14:02:30 2009 +0100

    Merge branch 'master' of ssh://git.samba.org/data/git/samba

commit ca05542d3defe76c3bce48eaff1fc749821a976c
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Jan 5 00:27:49 2009 +0100

    Use fqdn rather than gethostname when guessing realm.

commit af744e0954bbe9ddfa2e3da173e79de65e640a4c
Merge: ce47b69d8e318bbb3642d27aa0451e2914c92be7 2c0faaf5d921fe57a88d3b999067458e8774c6f6
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Jan 4 22:48:23 2009 +0100

    Merge branch 'master' of ssh://git.samba.org/data/git/samba

commit ce47b69d8e318bbb3642d27aa0451e2914c92be7
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Jan 1 06:33:25 2009 +0100

    Fix syntax errors.

commit 08259c1c52a9921de6fba08939130698b474f382
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Jan 1 04:45:33 2009 +0100

    Add iconv_convenience argument to size functions.

commit 2dc045007ef68bc42822471a3a08c8f094e29980
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Jan 1 03:30:54 2009 +0100

    make: Search for c tags in ../ as well.

-----------------------------------------------------------------------

Summary of changes:
 libcli/ndr_netlogon.c                       |    6 +-
 librpc/gen_ndr/cli_netlogon.c               |    2 +-
 librpc/gen_ndr/cli_netlogon.h               |    2 +-
 librpc/gen_ndr/drsblobs.h                   |   12 +++---
 librpc/gen_ndr/drsuapi.h                    |   10 ++--
 librpc/gen_ndr/epmapper.h                   |    2 +-
 librpc/gen_ndr/named_pipe_auth.h            |    4 +-
 librpc/gen_ndr/nbt.h                        |    2 +-
 librpc/gen_ndr/ndr_drsblobs.c               |   62 +++++++++++++-------------
 librpc/gen_ndr/ndr_drsblobs.h               |    8 ++--
 librpc/gen_ndr/ndr_drsuapi.c                |   40 +++++++++---------
 librpc/gen_ndr/ndr_drsuapi.h                |   10 ++--
 librpc/gen_ndr/ndr_epmapper.c               |    8 ++--
 librpc/gen_ndr/ndr_krb5pac.c                |    4 +-
 librpc/gen_ndr/ndr_krb5pac.h                |    2 +-
 librpc/gen_ndr/ndr_misc.c                   |    4 +-
 librpc/gen_ndr/ndr_misc.h                   |    2 +-
 librpc/gen_ndr/ndr_named_pipe_auth.c        |   16 +++---
 librpc/gen_ndr/ndr_named_pipe_auth.h        |    4 +-
 librpc/gen_ndr/ndr_nbt.c                    |   12 +++---
 librpc/gen_ndr/ndr_nbt.h                    |    2 +-
 librpc/gen_ndr/ndr_netlogon.c               |   12 +++---
 librpc/gen_ndr/ndr_netlogon.h               |    2 +-
 librpc/gen_ndr/ndr_security.c               |   12 +++---
 librpc/gen_ndr/ndr_security.h               |    8 ++--
 librpc/gen_ndr/ndr_svcctl.c                 |    4 +-
 librpc/gen_ndr/ndr_svcctl.h                 |    2 +-
 librpc/gen_ndr/netlogon.h                   |    2 +-
 librpc/gen_ndr/security.h                   |    6 +-
 librpc/idl/drsblobs.idl                     |   12 +++---
 librpc/idl/drsuapi.idl                      |   10 ++--
 librpc/idl/epmapper.idl                     |    2 +-
 librpc/idl/named_pipe_auth.idl              |    4 +-
 librpc/idl/nbt.idl                          |    2 +-
 librpc/idl/netlogon.idl                     |    2 +-
 librpc/idl/security.idl                     |    6 +-
 librpc/idl/spoolss.idl                      |    8 ++--
 librpc/ndr/libndr.h                         |    5 +-
 librpc/ndr/ndr.c                            |    8 ++--
 librpc/ndr/ndr_krb5pac.c                    |   16 +++---
 librpc/ndr/ndr_sec_helper.c                 |   20 ++++----
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm    |    8 ++--
 source3/include/includes.h                  |    1 -
 source3/include/proto.h                     |   13 ------
 source3/lib/secace.c                        |    4 +-
 source3/lib/secdesc.c                       |    4 +-
 source3/lib/sharesec.c                      |    2 +-
 source3/lib/util_sid.c                      |    6 +-
 source3/librpc/ndr/util.c                   |    1 -
 source3/libsmb/cliquota.c                   |    4 +-
 source3/passdb/lookup_sid.c                 |   16 +++---
 source3/printing/nt_printing.c              |    7 ++-
 source3/registry/reg_api.c                  |    2 +-
 source3/registry/regfio.c                   |    4 +-
 source3/rpc_parse/parse_buffer.c            |    2 +-
 source3/rpc_parse/parse_sec.c               |    6 +-
 source3/rpc_parse/parse_spoolss.c           |    4 +-
 source3/rpc_server/srv_srvsvc_nt.c          |    2 +-
 source3/rpc_server/srv_svcctl_nt.c          |    4 +-
 source3/smbd/nttrans.c                      |    2 +-
 source3/smbd/trans2.c                       |    2 +
 source4/build/make/rules.mk                 |    6 ++-
 source4/librpc/idl/winsrepl.idl             |    2 +-
 source4/librpc/ndr/ndr_spoolss_buf.c        |    4 +-
 source4/librpc/rpc/dcerpc.c                 |    2 +-
 source4/rpc_server/spoolss/dcesrv_spoolss.c |   32 +++++++++-----
 source4/setup/provision                     |    2 +-
 67 files changed, 249 insertions(+), 250 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/ndr_netlogon.c b/libcli/ndr_netlogon.c
index ffc075f..0354cfb 100644
--- a/libcli/ndr_netlogon.c
+++ b/libcli/ndr_netlogon.c
@@ -137,12 +137,12 @@ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(struct ndr_
 			NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
 			NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
 			if (r->nt_version & NETLOGON_NT_VERSION_5EX_WITH_IP) {
-				NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+				NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
 				{
 					struct ndr_push *_ndr_sockaddr;
-					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
 					NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS|NDR_BUFFERS, &r->sockaddr));
-					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
+					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
 				}
 			}
 			if (r->nt_version & NETLOGON_NT_VERSION_WITH_CLOSEST_SITE) {
diff --git a/librpc/gen_ndr/cli_netlogon.c b/librpc/gen_ndr/cli_netlogon.c
index d8a9ef3..2dcdbae 100644
--- a/librpc/gen_ndr/cli_netlogon.c
+++ b/librpc/gen_ndr/cli_netlogon.c
@@ -893,7 +893,7 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli,
 				  struct netr_Authenticator *credential /* [in] [ref] */,
 				  struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
 				  struct netr_ChangeLogEntry change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */,
-				  uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */,
+				  uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */,
 				  struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */)
 {
 	struct netr_DatabaseRedo r;
diff --git a/librpc/gen_ndr/cli_netlogon.h b/librpc/gen_ndr/cli_netlogon.h
index ac70448..dd086a9 100644
--- a/librpc/gen_ndr/cli_netlogon.h
+++ b/librpc/gen_ndr/cli_netlogon.h
@@ -159,7 +159,7 @@ NTSTATUS rpccli_netr_DatabaseRedo(struct rpc_pipe_client *cli,
 				  struct netr_Authenticator *credential /* [in] [ref] */,
 				  struct netr_Authenticator *return_authenticator /* [in,out] [ref] */,
 				  struct netr_ChangeLogEntry change_log_entry /* [in] [subcontext_size(change_log_entry_size),subcontext(4)] */,
-				  uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] */,
+				  uint32_t change_log_entry_size /* [in] [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->iconv_convenience,ndr->flags))] */,
 				  struct netr_DELTA_ENUM_ARRAY **delta_enum_array /* [out] [ref] */);
 NTSTATUS rpccli_netr_LogonControl2Ex(struct rpc_pipe_client *cli,
 				     TALLOC_CTX *mem_ctx,
diff --git a/librpc/gen_ndr/drsblobs.h b/librpc/gen_ndr/drsblobs.h
index f8fd304..bb33464 100644
--- a/librpc/gen_ndr/drsblobs.h
+++ b/librpc/gen_ndr/drsblobs.h
@@ -64,13 +64,13 @@ struct repsFromTo1OtherInfo {
 }/* [gensize,public] */;
 
 struct repsFromTo1 {
-	uint32_t blobsize;/* [value(ndr_size_repsFromTo1(this,ndr->flags)+8)] */
+	uint32_t blobsize;/* [value(ndr_size_repsFromTo1(this,ndr->iconv_convenience,ndr->flags)+8)] */
 	uint32_t consecutive_sync_failures;
 	NTTIME last_success;
 	NTTIME last_attempt;
 	WERROR result_last_attempt;
 	struct repsFromTo1OtherInfo *other_info;/* [relative] */
-	uint32_t other_info_length;/* [value(ndr_size_repsFromTo1OtherInfo(other_info,ndr->flags))] */
+	uint32_t other_info_length;/* [value(ndr_size_repsFromTo1OtherInfo(other_info,ndr->iconv_convenience,ndr->flags))] */
 	uint32_t replica_flags;
 	uint8_t schedule[84];
 	uint32_t reserved;
@@ -135,7 +135,7 @@ struct ldapControlDirSyncBlob {
 	NTTIME time;
 	uint32_t u2;
 	uint32_t u3;
-	uint32_t extra_length;/* [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,0))] */
+	uint32_t extra_length;/* [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,ndr->iconv_convenience,0))] */
 	struct drsuapi_DsReplicaHighWaterMark highwatermark;
 	struct GUID guid1;
 	union ldapControlDirSyncExtra extra;/* [switch_is(extra_length)] */
@@ -174,7 +174,7 @@ struct supplementalCredentialsSubBlob {
 
 struct supplementalCredentialsBlob {
 	uint32_t unknown1;/* [value(0)] */
-	uint32_t __ndr_size;/* [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->flags))] */
+	uint32_t __ndr_size;/* [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->iconv_convenience,ndr->flags))] */
 	uint32_t unknown2;/* [value(0)] */
 	struct supplementalCredentialsSubBlob sub;/* [subcontext_size(__ndr_size),subcontext(0)] */
 	uint8_t unknown3;/* [value(0)] */
@@ -315,8 +315,8 @@ struct trustDomainPasswords {
 	uint8_t confounder[512];
 	struct trustCurrentPasswords outgoing;/* [subcontext_size(outgoing_size),subcontext(0)] */
 	struct trustCurrentPasswords incoming;/* [subcontext_size(incoming_size),subcontext(0)] */
-	uint32_t outgoing_size;/* [value(ndr_size_trustCurrentPasswords(&outgoing,ndr->flags))] */
-	uint32_t incoming_size;/* [value(ndr_size_trustCurrentPasswords(&incoming,ndr->flags))] */
+	uint32_t outgoing_size;/* [value(ndr_size_trustCurrentPasswords(&outgoing,ndr->iconv_convenience,ndr->flags))] */
+	uint32_t incoming_size;/* [value(ndr_size_trustCurrentPasswords(&incoming,ndr->iconv_convenience,ndr->flags))] */
 }/* [public,nopull] */;
 
 struct DsCompressedChunk {
diff --git a/librpc/gen_ndr/drsuapi.h b/librpc/gen_ndr/drsuapi.h
index ba01e8f..e3d4803 100644
--- a/librpc/gen_ndr/drsuapi.h
+++ b/librpc/gen_ndr/drsuapi.h
@@ -92,7 +92,7 @@ struct drsuapi_DsBindInfoCtr {
 };
 
 struct drsuapi_DsReplicaObjectIdentifier {
-	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->flags)-4)] */
+	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->iconv_convenience,ndr->flags)-4)] */
 	uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
 	struct GUID guid;
 	struct dom_sid28 sid;
@@ -468,7 +468,7 @@ struct drsuapi_DsAttributeValueCtr {
 };
 
 struct drsuapi_DsReplicaObjectIdentifier3 {
-	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->flags))] */
+	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->iconv_convenience,ndr->flags))] */
 	uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
 	struct GUID guid;
 	struct dom_sid28 sid;
@@ -477,7 +477,7 @@ struct drsuapi_DsReplicaObjectIdentifier3 {
 }/* [gensize,public] */;
 
 struct drsuapi_DsReplicaObjectIdentifier3Binary {
-	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r,ndr->flags))] */
+	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r,ndr->iconv_convenience,ndr->flags))] */
 	uint32_t __ndr_size_sid;/* [value(ndr_size_dom_sid28(&sid,ndr->flags))] */
 	struct GUID guid;
 	struct dom_sid28 sid;
@@ -538,7 +538,7 @@ struct drsuapi_DsGetNCChangesCtr1 {
 	struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
 	enum drsuapi_DsExtendedError extended_ret;
 	uint32_t object_count;
-	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] */
+	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] */
 	struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
 	uint32_t more_data;
 }/* [gensize,public] */;
@@ -565,7 +565,7 @@ struct drsuapi_DsGetNCChangesCtr6 {
 	struct drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr;
 	enum drsuapi_DsExtendedError extended_ret;
 	uint32_t object_count;
-	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] */
+	uint32_t __ndr_size;/* [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] */
 	struct drsuapi_DsReplicaObjectListItemEx *first_object;/* [unique] */
 	uint32_t more_data;
 	uint32_t nc_object_count;
diff --git a/librpc/gen_ndr/epmapper.h b/librpc/gen_ndr/epmapper.h
index 4b75261..e5155a8 100644
--- a/librpc/gen_ndr/epmapper.h
+++ b/librpc/gen_ndr/epmapper.h
@@ -220,7 +220,7 @@ struct epm_tower {
 }/* [gensize,flag(LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN)] */;
 
 struct epm_twr_t {
-	uint32_t tower_length;/* [value(ndr_size_epm_tower(&tower,ndr->flags))] */
+	uint32_t tower_length;/* [value(ndr_size_epm_tower(&tower,ndr->iconv_convenience,ndr->flags))] */
 	struct epm_tower tower;/* [subcontext(4)] */
 };
 
diff --git a/librpc/gen_ndr/named_pipe_auth.h b/librpc/gen_ndr/named_pipe_auth.h
index 8f2446e..7ca7444 100644
--- a/librpc/gen_ndr/named_pipe_auth.h
+++ b/librpc/gen_ndr/named_pipe_auth.h
@@ -12,7 +12,7 @@ union named_pipe_auth_req_info {
 }/* [switch_type(uint32)] */;
 
 struct named_pipe_auth_req {
-	uint32_t length;/* [value(ndr_size_named_pipe_auth_req(r,ndr->flags)-4),flag(LIBNDR_FLAG_BIGENDIAN)] */
+	uint32_t length;/* [value(ndr_size_named_pipe_auth_req(r,ndr->iconv_convenience,ndr->flags)-4),flag(LIBNDR_FLAG_BIGENDIAN)] */
 	const char *magic;/* [value(NAMED_PIPE_AUTH_MAGIC),charset(DOS)] */
 	uint32_t level;
 	union named_pipe_auth_req_info info;/* [switch_is(level)] */
@@ -23,7 +23,7 @@ union named_pipe_auth_rep_info {
 }/* [switch_type(uint32)] */;
 
 struct named_pipe_auth_rep {
-	uint32_t length;/* [value(ndr_size_named_pipe_auth_rep(r,ndr->flags)-4),flag(LIBNDR_FLAG_BIGENDIAN)] */
+	uint32_t length;/* [value(ndr_size_named_pipe_auth_rep(r,ndr->iconv_convenience,ndr->flags)-4),flag(LIBNDR_FLAG_BIGENDIAN)] */
 	const char *magic;/* [value(NAMED_PIPE_AUTH_MAGIC),charset(DOS)] */
 	uint32_t level;
 	union named_pipe_auth_rep_info info;/* [switch_is(level)] */
diff --git a/librpc/gen_ndr/nbt.h b/librpc/gen_ndr/nbt.h
index a8c66a6..1f3ad37 100644
--- a/librpc/gen_ndr/nbt.h
+++ b/librpc/gen_ndr/nbt.h
@@ -505,7 +505,7 @@ struct NETLOGON_SAM_LOGON_RESPONSE_EX {
 	const char * user_name;
 	const char * server_site;
 	const char * client_site;
-	uint8_t sockaddr_size;/* [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->flags))] */
+	uint8_t sockaddr_size;/* [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->iconv_convenience,ndr->flags))] */
 	struct nbt_sockaddr sockaddr;/* [subcontext_size(sockaddr_size),subcontext(0)] */
 	const char * next_closest_site;
 	uint32_t nt_version;
diff --git a/librpc/gen_ndr/ndr_drsblobs.c b/librpc/gen_ndr/ndr_drsblobs.c
index c868c39..72e182d 100644
--- a/librpc/gen_ndr/ndr_drsblobs.c
+++ b/librpc/gen_ndr/ndr_drsblobs.c
@@ -486,9 +486,9 @@ _PUBLIC_ void ndr_print_repsFromTo1OtherInfo(struct ndr_print *ndr, const char *
 	ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_repsFromTo1OtherInfo(const struct repsFromTo1OtherInfo *r, int flags)
+_PUBLIC_ size_t ndr_size_repsFromTo1OtherInfo(const struct repsFromTo1OtherInfo *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_repsFromTo1OtherInfo);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_repsFromTo1OtherInfo, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo1(struct ndr_push *ndr, int ndr_flags, const struct repsFromTo1 *r)
@@ -498,13 +498,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo1(struct ndr_push *ndr, int ndr_fl
 		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 		if (ndr_flags & NDR_SCALARS) {
 			NDR_CHECK(ndr_push_align(ndr, 8));
-			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_repsFromTo1(r, ndr->flags) + 8));
+			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_repsFromTo1(r, ndr->iconv_convenience, ndr->flags) + 8));
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->consecutive_sync_failures));
 			NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->last_success));
 			NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->last_attempt));
 			NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->result_last_attempt));
 			NDR_CHECK(ndr_push_relative_ptr1(ndr, r->other_info));
-			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->flags)));
+			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->iconv_convenience, ndr->flags)));
 			NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
 			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
 			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
@@ -578,7 +578,7 @@ _PUBLIC_ void ndr_print_repsFromTo1(struct ndr_print *ndr, const char *name, con
 		uint32_t _flags_save_STRUCT = ndr->flags;
 		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 		ndr->depth++;
-		ndr_print_uint32(ndr, "blobsize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_repsFromTo1(r, ndr->flags) + 8:r->blobsize);
+		ndr_print_uint32(ndr, "blobsize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_repsFromTo1(r, ndr->iconv_convenience, ndr->flags) + 8:r->blobsize);
 		ndr_print_uint32(ndr, "consecutive_sync_failures", r->consecutive_sync_failures);
 		ndr_print_NTTIME_1sec(ndr, "last_success", r->last_success);
 		ndr_print_NTTIME_1sec(ndr, "last_attempt", r->last_attempt);
@@ -589,7 +589,7 @@ _PUBLIC_ void ndr_print_repsFromTo1(struct ndr_print *ndr, const char *name, con
 			ndr_print_repsFromTo1OtherInfo(ndr, "other_info", r->other_info);
 		}
 		ndr->depth--;
-		ndr_print_uint32(ndr, "other_info_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->flags):r->other_info_length);
+		ndr_print_uint32(ndr, "other_info_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->iconv_convenience, ndr->flags):r->other_info_length);
 		ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
 		ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
 		ndr_print_uint32(ndr, "reserved", r->reserved);
@@ -602,10 +602,10 @@ _PUBLIC_ void ndr_print_repsFromTo1(struct ndr_print *ndr, const char *name, con
 	}
 }
 
-_PUBLIC_ size_t ndr_size_repsFromTo1(const struct repsFromTo1 *r, int flags)
+_PUBLIC_ size_t ndr_size_repsFromTo1(const struct repsFromTo1 *r, struct smb_iconv_convenience *ic, int flags)
 {
 	flags |= LIBNDR_PRINT_ARRAY_HEX;
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_repsFromTo1);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_repsFromTo1, ic);
 }
 
 static enum ndr_err_code ndr_push_repsFromTo(struct ndr_push *ndr, int ndr_flags, const union repsFromTo *r)
@@ -1084,9 +1084,9 @@ _PUBLIC_ void ndr_print_ldapControlDirSyncExtra(struct ndr_print *ndr, const cha
 	}
 }
 
-static size_t ndr_size_ldapControlDirSyncExtra(const union ldapControlDirSyncExtra *r, uint32_t level, int flags)
+static size_t ndr_size_ldapControlDirSyncExtra(const union ldapControlDirSyncExtra *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_ldapControlDirSyncExtra);
+	return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_ldapControlDirSyncExtra, ic);
 }
 
 static enum ndr_err_code ndr_push_ldapControlDirSyncBlob(struct ndr_push *ndr, int ndr_flags, const struct ldapControlDirSyncBlob *r)
@@ -1097,10 +1097,10 @@ static enum ndr_err_code ndr_push_ldapControlDirSyncBlob(struct ndr_push *ndr, i
 		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, 0)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, ndr->iconv_convenience, 0)));
 		NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
 		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
-		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->extra, ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, 0)));
+		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->extra, ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, ndr->iconv_convenience, 0)));
 		NDR_CHECK(ndr_push_ldapControlDirSyncExtra(ndr, NDR_SCALARS, &r->extra));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
@@ -1137,7 +1137,7 @@ _PUBLIC_ void ndr_print_ldapControlDirSyncBlob(struct ndr_print *ndr, const char
 	ndr_print_NTTIME(ndr, "time", r->time);
 	ndr_print_uint32(ndr, "u2", r->u2);
 	ndr_print_uint32(ndr, "u3", r->u3);
-	ndr_print_uint32(ndr, "extra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, 0):r->extra_length);
+	ndr_print_uint32(ndr, "extra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_ldapControlDirSyncExtra(&r->extra, r->extra.uptodateness_vector.version, ndr->iconv_convenience, 0):r->extra_length);
 	ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
 	ndr_print_GUID(ndr, "guid1", &r->guid1);
 	ndr_print_set_switch_value(ndr, &r->extra, r->extra_length);
@@ -1337,9 +1337,9 @@ _PUBLIC_ void ndr_print_supplementalCredentialsSubBlob(struct ndr_print *ndr, co
 	ndr->depth--;
 }
 
-static size_t ndr_size_supplementalCredentialsSubBlob(const struct supplementalCredentialsSubBlob *r, int flags)
+static size_t ndr_size_supplementalCredentialsSubBlob(const struct supplementalCredentialsSubBlob *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_supplementalCredentialsSubBlob);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_supplementalCredentialsSubBlob, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_supplementalCredentialsBlob(struct ndr_push *ndr, int ndr_flags, const struct supplementalCredentialsBlob *r)
@@ -1347,13 +1347,13 @@ _PUBLIC_ enum ndr_err_code ndr_push_supplementalCredentialsBlob(struct ndr_push
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->flags)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->iconv_convenience, ndr->flags)));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 		{
 			struct ndr_push *_ndr_sub;
-			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sub, 0, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sub, 0, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->iconv_convenience, ndr->flags)));
 			NDR_CHECK(ndr_push_supplementalCredentialsSubBlob(_ndr_sub, NDR_SCALARS, &r->sub));
-			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sub, 0, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sub, 0, ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->iconv_convenience, ndr->flags)));
 		}
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 0));
 	}
@@ -1387,7 +1387,7 @@ _PUBLIC_ void ndr_print_supplementalCredentialsBlob(struct ndr_print *ndr, const
 	ndr_print_struct(ndr, name, "supplementalCredentialsBlob");
 	ndr->depth++;
 	ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unknown1);
-	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->flags):r->__ndr_size);
+	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_supplementalCredentialsSubBlob(&r->sub, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
 	ndr_print_uint32(ndr, "unknown2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unknown2);
 	ndr_print_supplementalCredentialsSubBlob(ndr, "sub", &r->sub);
 	ndr_print_uint8(ndr, "unknown3", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->unknown3);
@@ -2616,9 +2616,9 @@ _PUBLIC_ void ndr_print_AuthenticationInformation(struct ndr_print *ndr, const c
 	ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_trustAuthInOutBlob(const struct trustAuthInOutBlob *r, int flags)
+_PUBLIC_ size_t ndr_size_trustAuthInOutBlob(const struct trustAuthInOutBlob *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_trustAuthInOutBlob);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_trustAuthInOutBlob, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_trustCurrentPasswords(struct ndr_push *ndr, int ndr_flags, const struct trustCurrentPasswords *r)
@@ -2709,9 +2709,9 @@ _PUBLIC_ void ndr_print_trustCurrentPasswords(struct ndr_print *ndr, const char
 	ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_trustCurrentPasswords(const struct trustCurrentPasswords *r, int flags)
+_PUBLIC_ size_t ndr_size_trustCurrentPasswords(const struct trustCurrentPasswords *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_trustCurrentPasswords);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_trustCurrentPasswords, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_trustDomainPasswords(struct ndr_push *ndr, int ndr_flags, const struct trustDomainPasswords *r)
@@ -2721,18 +2721,18 @@ _PUBLIC_ enum ndr_err_code ndr_push_trustDomainPasswords(struct ndr_push *ndr, i
 		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->confounder, 512));
 		{
 			struct ndr_push *_ndr_outgoing;
-			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_outgoing, 0, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_outgoing, 0, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->iconv_convenience, ndr->flags)));
 			NDR_CHECK(ndr_push_trustCurrentPasswords(_ndr_outgoing, NDR_SCALARS|NDR_BUFFERS, &r->outgoing));
-			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_outgoing, 0, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_outgoing, 0, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->iconv_convenience, ndr->flags)));
 		}
 		{
 			struct ndr_push *_ndr_incoming;
-			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_incoming, 0, ndr_size_trustCurrentPasswords(&r->incoming, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_incoming, 0, ndr_size_trustCurrentPasswords(&r->incoming, ndr->iconv_convenience, ndr->flags)));
 			NDR_CHECK(ndr_push_trustCurrentPasswords(_ndr_incoming, NDR_SCALARS|NDR_BUFFERS, &r->incoming));
-			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_incoming, 0, ndr_size_trustCurrentPasswords(&r->incoming, ndr->flags)));
+			NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_incoming, 0, ndr_size_trustCurrentPasswords(&r->incoming, ndr->iconv_convenience, ndr->flags)));
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->flags)));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_trustCurrentPasswords(&r->incoming, ndr->flags)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_trustCurrentPasswords(&r->outgoing, ndr->iconv_convenience, ndr->flags)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_trustCurrentPasswords(&r->incoming, ndr->iconv_convenience, ndr->flags)));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 	}
@@ -2746,8 +2746,8 @@ _PUBLIC_ void ndr_print_trustDomainPasswords(struct ndr_print *ndr, const char *
 	ndr_print_array_uint8(ndr, "confounder", r->confounder, 512);
 	ndr_print_trustCurrentPasswords(ndr, "outgoing", &r->outgoing);
 	ndr_print_trustCurrentPasswords(ndr, "incoming", &r->incoming);
-	ndr_print_uint32(ndr, "outgoing_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_trustCurrentPasswords(&r->outgoing, ndr->flags):r->outgoing_size);
-	ndr_print_uint32(ndr, "incoming_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_trustCurrentPasswords(&r->incoming, ndr->flags):r->incoming_size);
+	ndr_print_uint32(ndr, "outgoing_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_trustCurrentPasswords(&r->outgoing, ndr->iconv_convenience, ndr->flags):r->outgoing_size);
+	ndr_print_uint32(ndr, "incoming_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_trustCurrentPasswords(&r->incoming, ndr->iconv_convenience, ndr->flags):r->incoming_size);
 	ndr->depth--;
 }
 
diff --git a/librpc/gen_ndr/ndr_drsblobs.h b/librpc/gen_ndr/ndr_drsblobs.h
index 09c4b7f..2f6cf99 100644
--- a/librpc/gen_ndr/ndr_drsblobs.h
+++ b/librpc/gen_ndr/ndr_drsblobs.h
@@ -55,11 +55,11 @@ void ndr_print_replUpToDateVectorBlob(struct ndr_print *ndr, const char *name, c
 enum ndr_err_code ndr_push_repsFromTo1OtherInfo(struct ndr_push *ndr, int ndr_flags, const struct repsFromTo1OtherInfo *r);
 enum ndr_err_code ndr_pull_repsFromTo1OtherInfo(struct ndr_pull *ndr, int ndr_flags, struct repsFromTo1OtherInfo *r);
 void ndr_print_repsFromTo1OtherInfo(struct ndr_print *ndr, const char *name, const struct repsFromTo1OtherInfo *r);
-size_t ndr_size_repsFromTo1OtherInfo(const struct repsFromTo1OtherInfo *r, int flags);
+size_t ndr_size_repsFromTo1OtherInfo(const struct repsFromTo1OtherInfo *r, struct smb_iconv_convenience *ic, int flags);
 enum ndr_err_code ndr_push_repsFromTo1(struct ndr_push *ndr, int ndr_flags, const struct repsFromTo1 *r);
 enum ndr_err_code ndr_pull_repsFromTo1(struct ndr_pull *ndr, int ndr_flags, struct repsFromTo1 *r);
 void ndr_print_repsFromTo1(struct ndr_print *ndr, const char *name, const struct repsFromTo1 *r);
-size_t ndr_size_repsFromTo1(const struct repsFromTo1 *r, int flags);
+size_t ndr_size_repsFromTo1(const struct repsFromTo1 *r, struct smb_iconv_convenience *ic, int flags);
 void ndr_print_repsFromTo(struct ndr_print *ndr, const char *name, const union repsFromTo *r);
 enum ndr_err_code ndr_push_repsFromToBlob(struct ndr_push *ndr, int ndr_flags, const struct repsFromToBlob *r);
 enum ndr_err_code ndr_pull_repsFromToBlob(struct ndr_pull *ndr, int ndr_flags, struct repsFromToBlob *r);
@@ -118,11 +118,11 @@ void ndr_print_AuthenticationInformationArray(struct ndr_print *ndr, const char
 enum ndr_err_code ndr_push_trustAuthInOutBlob(struct ndr_push *ndr, int ndr_flags, const struct trustAuthInOutBlob *r);
 enum ndr_err_code ndr_pull_trustAuthInOutBlob(struct ndr_pull *ndr, int ndr_flags, struct trustAuthInOutBlob *r);
 void ndr_print_trustAuthInOutBlob(struct ndr_print *ndr, const char *name, const struct trustAuthInOutBlob *r);
-size_t ndr_size_trustAuthInOutBlob(const struct trustAuthInOutBlob *r, int flags);
+size_t ndr_size_trustAuthInOutBlob(const struct trustAuthInOutBlob *r, struct smb_iconv_convenience *ic, int flags);
 enum ndr_err_code ndr_push_trustCurrentPasswords(struct ndr_push *ndr, int ndr_flags, const struct trustCurrentPasswords *r);
 enum ndr_err_code ndr_pull_trustCurrentPasswords(struct ndr_pull *ndr, int ndr_flags, struct trustCurrentPasswords *r);
 void ndr_print_trustCurrentPasswords(struct ndr_print *ndr, const char *name, const struct trustCurrentPasswords *r);
-size_t ndr_size_trustCurrentPasswords(const struct trustCurrentPasswords *r, int flags);
+size_t ndr_size_trustCurrentPasswords(const struct trustCurrentPasswords *r, struct smb_iconv_convenience *ic, int flags);
 enum ndr_err_code ndr_push_trustDomainPasswords(struct ndr_push *ndr, int ndr_flags, const struct trustDomainPasswords *r);
 enum ndr_err_code ndr_pull_trustDomainPasswords(struct ndr_pull *ndr, int ndr_flags, struct trustDomainPasswords *r);
 void ndr_print_trustDomainPasswords(struct ndr_print *ndr, const char *name, const struct trustDomainPasswords *r);
diff --git a/librpc/gen_ndr/ndr_drsuapi.c b/librpc/gen_ndr/ndr_drsuapi.c
index 3ef5b80..369a1d4 100644
--- a/librpc/gen_ndr/ndr_drsuapi.c
+++ b/librpc/gen_ndr/ndr_drsuapi.c
@@ -440,7 +440,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn) + 1));
 		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
 		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
 		NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
@@ -478,7 +478,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr,
 {
 	ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier");
 	ndr->depth++;
-	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags) - 4:r->__ndr_size);
+	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4:r->__ndr_size);
 	ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
 	ndr_print_GUID(ndr, "guid", &r->guid);
 	ndr_print_dom_sid28(ndr, "sid", &r->sid);
@@ -487,9 +487,9 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr,
 	ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, int flags)
+_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
@@ -1892,7 +1892,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct nd
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags)));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
 		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
 		NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
@@ -1926,7 +1926,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr
 {
 	ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3");
 	ndr->depth++;
-	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags):r->__ndr_size);
+	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
 	ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
 	ndr_print_GUID(ndr, "guid", &r->guid);
 	ndr_print_dom_sid28(ndr, "sid", &r->sid);
@@ -1935,16 +1935,16 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr
 	ndr->depth--;
 }
 
-_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, int flags)
+_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, struct smb_iconv_convenience *ic, int flags)
 {
-	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3, ic);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags)));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->iconv_convenience, ndr->flags)));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
 		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
 		NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
@@ -1992,7 +1992,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_prin
 {
 	ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
 	ndr->depth++;
-	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags):r->__ndr_size);
+	ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
 	ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
 	ndr_print_GUID(ndr, "guid", &r->guid);
 	ndr_print_dom_sid28(ndr, "sid", &r->sid);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list