Finish removal of iconv_convenience in public API's.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 9 May 2010 15:20:01 +0000 (17:20 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 18 May 2010 09:45:30 +0000 (11:45 +0200)
216 files changed:
lib/tdr/tdr.c
lib/tdr/tdr.h
lib/tdr/testsuite.c
libcli/auth/ntlmssp_ndr.c
libcli/auth/ntlmssp_ndr.h
libcli/auth/schannel_state.h
libcli/auth/schannel_state_tdb.c
libcli/cldap/cldap.c
libcli/cldap/cldap.h
libcli/ldap/ldap_ndr.c
libcli/named_pipe_auth/npa_tstream.c
libcli/named_pipe_auth/npa_tstream.h
libcli/nbt/libnbt.h
libcli/nbt/nbtname.c
libcli/nbt/nbtsocket.c
libcli/nbt/pynbt.c
libcli/nbt/tools/nmblookup.c
libcli/ndr_netlogon.c
libcli/netlogon.c
libcli/netlogon_proto.h
libcli/registry/util_reg.c
libcli/samsync/decrypt.c
libcli/security/secace.c
librpc/idl/drsblobs.idl
librpc/idl/drsuapi.idl
librpc/idl/epmapper.idl
librpc/idl/frsrpc.idl
librpc/idl/named_pipe_auth.idl
librpc/idl/nbt.idl
librpc/idl/netlogon.idl
librpc/idl/ntlmssp.idl
librpc/idl/security.idl
librpc/idl/spoolss.idl
librpc/ndr/libndr.h
librpc/ndr/ndr.c
librpc/ndr/ndr_compression.c
librpc/ndr/ndr_drsuapi.c
librpc/ndr/ndr_drsuapi.h
librpc/ndr/ndr_frsrpc.c
librpc/ndr/ndr_frsrpc.h
librpc/ndr/ndr_krb5pac.c
librpc/ndr/ndr_ntlmssp.c
librpc/ndr/ndr_ntlmssp.h
librpc/ndr/ndr_schannel.c
librpc/ndr/ndr_sec_helper.c
librpc/ndr/ndr_spoolss_buf.c
librpc/ndr/ndr_spoolss_buf.h
librpc/ndr/uuid.c
librpc/rpc/binding.c
librpc/tools/ndrdump.c
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
pidl/lib/Parse/Pidl/Samba4/Python.pm
pidl/tests/ndr_string.pl
source3/include/includes.h
source3/include/proto.h
source3/librpc/ndr/util.c
source4/auth/gensec/gensec.h
source4/auth/gensec/gensec_gssapi.c
source4/auth/gensec/gensec_krb5.c
source4/auth/gensec/pygensec.c
source4/auth/gensec/schannel.c
source4/auth/kerberos/kerberos.h
source4/auth/kerberos/kerberos_pac.c
source4/auth/ntlm/auth_winbind.c
source4/cldap_server/netlogon.c
source4/client/cifsdd.c
source4/client/cifsdd.h
source4/client/cifsddio.c
source4/client/client.c
source4/dsdb/common/dsdb_access.c
source4/dsdb/common/util.c
source4/dsdb/kcc/kcc_drs_replica_info.c
source4/dsdb/repl/drepl_partitions.c
source4/dsdb/samdb/ldb_modules/descriptor.c
source4/dsdb/samdb/ldb_modules/extended_dn_out.c
source4/dsdb/samdb/ldb_modules/password_hash.c
source4/dsdb/samdb/ldb_modules/repl_meta_data.c
source4/dsdb/samdb/ldb_modules/ridalloc.c
source4/dsdb/samdb/ldb_modules/samba3sam.c
source4/dsdb/samdb/ldb_modules/samldb.c
source4/dsdb/samdb/ldb_modules/schema_load.c
source4/dsdb/schema/schema_info_attr.c
source4/dsdb/schema/schema_init.c
source4/dsdb/schema/schema_set.c
source4/dsdb/schema/schema_syntax.c
source4/kdc/db-glue.c
source4/kdc/kdc.c
source4/kdc/pac-glue.c
source4/lib/ldb-samba/ldif_handlers.c
source4/lib/messaging/irpc.h
source4/lib/messaging/messaging.c
source4/lib/messaging/pymessaging.c
source4/lib/messaging/tests/irpc.c
source4/lib/messaging/tests/messaging.c
source4/lib/registry/hive.c
source4/lib/registry/patchfile.c
source4/lib/registry/patchfile_dotreg.c
source4/lib/registry/patchfile_preg.c
source4/lib/registry/pyregistry.c
source4/lib/registry/regf.c
source4/lib/registry/registry.h
source4/lib/registry/tests/diff.c
source4/lib/registry/tests/generic.c
source4/lib/registry/tests/hive.c
source4/lib/registry/tools/regdiff.c
source4/lib/registry/tools/regpatch.c
source4/lib/registry/tools/regshell.c
source4/lib/registry/tools/regtree.c
source4/lib/registry/util.c
source4/libcli/cliconnect.c
source4/libcli/dgram/browse.c
source4/libcli/dgram/dgramsocket.c
source4/libcli/dgram/libdgram.h
source4/libcli/dgram/netlogon.c
source4/libcli/finddcs.c
source4/libcli/raw/clitransport.c
source4/libcli/raw/clitree.c
source4/libcli/raw/rawacl.c
source4/libcli/raw/rawfile.c
source4/libcli/raw/rawfileinfo.c
source4/libcli/raw/rawsetfileinfo.c
source4/libcli/resolve/nbtlist.c
source4/libcli/smb2/create.c
source4/libcli/smb_composite/connect.c
source4/libcli/util/clilsa.c
source4/libcli/wrepl/winsrepl.c
source4/libnet/libnet_become_dc.c
source4/libnet/libnet_lookup.c
source4/libnet/libnet_site.c
source4/libnet/libnet_unbecome_dc.c
source4/libnet/libnet_vampire.c
source4/librpc/idl/winsrepl.idl
source4/librpc/ndr/ndr_string.c
source4/librpc/rpc/dcerpc.c
source4/librpc/rpc/dcerpc.h
source4/librpc/rpc/dcerpc_connect.c
source4/librpc/rpc/dcerpc_secondary.c
source4/librpc/rpc/dcerpc_util.c
source4/nbt_server/dgram/request.c
source4/nbt_server/interfaces.c
source4/ntp_signd/ntp_signd.c
source4/ntptr/simple_ldb/ntptr_simple_ldb.c
source4/ntvfs/common/notify.c
source4/ntvfs/common/opendb_tdb.c
source4/ntvfs/ipc/ipc_rap.c
source4/ntvfs/ipc/vfs_ipc.c
source4/ntvfs/posix/pvfs_rename.c
source4/ntvfs/posix/pvfs_resolve.c
source4/ntvfs/posix/pvfs_shortname.c
source4/ntvfs/posix/pvfs_xattr.c
source4/param/loadparm.c
source4/param/secrets.c
source4/rpc_server/dcerpc_server.c
source4/rpc_server/dcesrv_auth.c
source4/rpc_server/drsuapi/getncchanges.c
source4/rpc_server/lsa/dcesrv_lsa.c
source4/rpc_server/netlogon/dcerpc_netlogon.c
source4/rpc_server/service_rpc.c
source4/rpc_server/spoolss/dcesrv_spoolss.c
source4/rpc_server/winreg/rpc_winreg.c
source4/scripting/python/modules.h
source4/smb_server/smb/nttrans.c
source4/smb_server/smb2/fileinfo.c
source4/smb_server/smb2/fileio.c
source4/smbd/server.c
source4/smbd/service_named_pipe.c
source4/smbd/service_stream.c
source4/smbd/service_task.c
source4/torture/auth/pac.c
source4/torture/basic/base.c
source4/torture/basic/scanner.c
source4/torture/basic/utable.c
source4/torture/drs/unit/prefixmap_tests.c
source4/torture/drs/unit/schemainfo_tests.c
source4/torture/gentest.c
source4/torture/ldap/cldap.c
source4/torture/ldap/cldapbench.c
source4/torture/ldap/uptodatevector.c
source4/torture/libnet/libnet_BecomeDC.c
source4/torture/locktest.c
source4/torture/masktest.c
source4/torture/nbt/dgram.c
source4/torture/nbt/nbt.c
source4/torture/nbt/winsbench.c
source4/torture/nbt/winsreplication.c
source4/torture/ndr/ndr.c
source4/torture/ntp/ntp_signd.c
source4/torture/rap/printing.c
source4/torture/rap/rap.c
source4/torture/rap/rpc.c
source4/torture/raw/oplock.c
source4/torture/raw/qfileinfo.c
source4/torture/raw/tconrate.c
source4/torture/rpc/autoidl.c
source4/torture/rpc/dssync.c
source4/torture/rpc/eventlog.c
source4/torture/rpc/join.c
source4/torture/rpc/lsa.c
source4/torture/rpc/remote_pac.c
source4/torture/rpc/samba3rpc.c
source4/torture/rpc/samlogon.c
source4/torture/rpc/samsync.c
source4/torture/rpc/spoolss.c
source4/torture/rpc/svcctl.c
source4/torture/rpc/winreg.c
source4/torture/unix/unix_info2.c
source4/torture/unix/whoami.c
source4/torture/util_smb.c
source4/utils/ntlm_auth.c
source4/winbind/idmap.c
source4/winbind/wb_dom_info.c
source4/winbind/wb_pam_auth.c
source4/winbind/wb_samba3_cmd.c
source4/wrepl_server/wrepl_in_call.c
source4/wrepl_server/wrepl_in_connection.c
source4/wrepl_server/wrepl_out_helpers.c

index ce67003f8bfdfae5a618ad20ea5fc17b858c5c13..95871047b7f3a16793fb805c166211b0e8c605e4 100644 (file)
@@ -163,7 +163,7 @@ NTSTATUS tdr_pull_charset(struct tdr_pull *tdr, TALLOC_CTX *ctx, const char **v,
 
        TDR_PULL_NEED_BYTES(tdr, el_size*length);
        
-       if (!convert_string_talloc_convenience(ctx, tdr->iconv_convenience, chset, CH_UNIX, tdr->data.data+tdr->offset, el_size*length, discard_const_p(void *, v), &ret, false)) {
+       if (!convert_string_talloc(ctx, chset, CH_UNIX, tdr->data.data+tdr->offset, el_size*length, discard_const_p(void *, v), &ret, false)) {
                return NT_STATUS_INVALID_PARAMETER;
        }
 
@@ -183,7 +183,8 @@ NTSTATUS tdr_push_charset(struct tdr_push *tdr, const char **v, uint32_t length,
        required = el_size * length;
        TDR_PUSH_NEED_BYTES(tdr, required);
 
-       if (!convert_string_convenience(tdr->iconv_convenience, CH_UNIX, chset, *v, strlen(*v), tdr->data.data+tdr->data.length, required, &ret, false)) {
+       ret = convert_string(CH_UNIX, chset, *v, strlen(*v), tdr->data.data+tdr->data.length, required, false);
+       if (ret == -1) {
                return NT_STATUS_INVALID_PARAMETER;
        }
 
@@ -343,33 +344,29 @@ NTSTATUS tdr_pull_DATA_BLOB(struct tdr_pull *tdr, TALLOC_CTX *ctx, DATA_BLOB *bl
        return NT_STATUS_OK;
 }
 
-struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
+struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx)
 {
        struct tdr_push *push = talloc_zero(mem_ctx, struct tdr_push);
 
        if (push == NULL)
                return NULL;
 
-       push->iconv_convenience = talloc_reference(push, ic);
-
        return push;
 }
 
-struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
+struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx)
 {
        struct tdr_pull *pull = talloc_zero(mem_ctx, struct tdr_pull);
 
        if (pull == NULL)
                return NULL;
 
-       pull->iconv_convenience = talloc_reference(pull, ic);
-
        return pull;
 }
 
-NTSTATUS tdr_push_to_fd(int fd, struct smb_iconv_convenience *iconv_convenience, tdr_push_fn_t push_fn, const void *p)
+NTSTATUS tdr_push_to_fd(int fd, tdr_push_fn_t push_fn, const void *p)
 {
-       struct tdr_push *push = tdr_push_init(NULL, iconv_convenience);
+       struct tdr_push *push = tdr_push_init(NULL);
 
        if (push == NULL)
                return NT_STATUS_NO_MEMORY;
index 84f3e50c2ba89691aa38ff6f1ef46736facd0643..c3ffd2f6ffdecc274e511587fd5239e946d661fc 100644 (file)
@@ -33,13 +33,11 @@ struct tdr_pull {
        DATA_BLOB data;
        uint32_t offset;
        int flags;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 struct tdr_push {
        DATA_BLOB data;
        int flags;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 struct tdr_print {
index ca76b5291e727493897928689530eda8e7844617..1db7a1d5fe9afbe3f54d072f603d09ffcc5fb6aa 100644 (file)
@@ -25,7 +25,7 @@
 static bool test_push_uint8(struct torture_context *tctx)
 {
        uint8_t v = 4;
-       struct tdr_push *tdr = tdr_push_init(tctx, global_iconv_convenience);
+       struct tdr_push *tdr = tdr_push_init(tctx);
 
        torture_assert_ntstatus_ok(tctx, tdr_push_uint8(tdr, &v), "push failed");
        torture_assert_int_equal(tctx, tdr->data.length, 1, "length incorrect");
@@ -37,7 +37,7 @@ static bool test_pull_uint8(struct torture_context *tctx)
 {
        uint8_t d = 2;
        uint8_t l;
-       struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
+       struct tdr_pull *tdr = tdr_pull_init(tctx);
        tdr->data.data = &d;
        tdr->data.length = 1;
        tdr->offset = 0;
@@ -52,7 +52,7 @@ static bool test_pull_uint8(struct torture_context *tctx)
 static bool test_push_uint16(struct torture_context *tctx)
 {
        uint16_t v = 0xF32;
-       struct tdr_push *tdr = tdr_push_init(tctx, global_iconv_convenience);
+       struct tdr_push *tdr = tdr_push_init(tctx);
 
        torture_assert_ntstatus_ok(tctx, tdr_push_uint16(tdr, &v), "push failed");
        torture_assert_int_equal(tctx, tdr->data.length, 2, "length incorrect");
@@ -65,7 +65,7 @@ static bool test_pull_uint16(struct torture_context *tctx)
 {
        uint8_t d[2] = { 782 & 0xFF, (782 & 0xFF00) / 0x100 };
        uint16_t l;
-       struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
+       struct tdr_pull *tdr = tdr_pull_init(tctx);
        tdr->data.data = d;
        tdr->data.length = 2;
        tdr->offset = 0;
@@ -80,7 +80,7 @@ static bool test_pull_uint16(struct torture_context *tctx)
 static bool test_push_uint32(struct torture_context *tctx)
 {
        uint32_t v = 0x100F32;
-       struct tdr_push *tdr = tdr_push_init(tctx, global_iconv_convenience);
+       struct tdr_push *tdr = tdr_push_init(tctx);
 
        torture_assert_ntstatus_ok(tctx, tdr_push_uint32(tdr, &v), "push failed");
        torture_assert_int_equal(tctx, tdr->data.length, 4, "length incorrect");
@@ -95,7 +95,7 @@ static bool test_pull_uint32(struct torture_context *tctx)
 {
        uint8_t d[4] = { 782 & 0xFF, (782 & 0xFF00) / 0x100, 0, 0 };
        uint32_t l;
-       struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
+       struct tdr_pull *tdr = tdr_pull_init(tctx);
        tdr->data.data = d;
        tdr->data.length = 4;
        tdr->offset = 0;
@@ -109,7 +109,7 @@ static bool test_pull_uint32(struct torture_context *tctx)
 
 static bool test_pull_charset(struct torture_context *tctx)
 {
-       struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
+       struct tdr_pull *tdr = tdr_pull_init(tctx);
        const char *l = NULL;
        tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
        tdr->data.length = 4;
@@ -131,7 +131,7 @@ static bool test_pull_charset(struct torture_context *tctx)
 
 static bool test_pull_charset_empty(struct torture_context *tctx)
 {
-       struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
+       struct tdr_pull *tdr = tdr_pull_init(tctx);
        const char *l = NULL;
        tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
        tdr->data.length = 4;
@@ -150,7 +150,7 @@ static bool test_pull_charset_empty(struct torture_context *tctx)
 static bool test_push_charset(struct torture_context *tctx)
 {
        const char *l = "bloe";
-       struct tdr_push *tdr = tdr_push_init(tctx, global_iconv_convenience);
+       struct tdr_push *tdr = tdr_push_init(tctx);
        torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, 4, 1, CH_UTF8), 
                                                           "push failed");
        torture_assert_int_equal(tctx, 4, tdr->data.length, "offset invalid");
index 53a2378e205cd75759d6099e875bbd89086891d9..8f15044e1a32f2aaeaa6e4cfb61cbd497970d4d9 100644 (file)
 #include "../librpc/gen_ndr/ndr_ntlmssp.h"
 #include "../libcli/auth/ntlmssp_ndr.h"
 
-#define NTLMSSP_PULL_MESSAGE(type, blob, mem_ctx, ic, r) \
+#define NTLMSSP_PULL_MESSAGE(type, blob, mem_ctx, r) \
 do { \
        enum ndr_err_code __ndr_err; \
-       __ndr_err = ndr_pull_struct_blob(blob, mem_ctx, ic, r, \
+       __ndr_err = ndr_pull_struct_blob(blob, mem_ctx, r, \
                        (ndr_pull_flags_fn_t)ndr_pull_ ##type); \
        if (!NDR_ERR_CODE_IS_SUCCESS(__ndr_err)) { \
                return ndr_map_error2ntstatus(__ndr_err); \
@@ -58,10 +58,9 @@ do { \
 
 NTSTATUS ntlmssp_pull_NEGOTIATE_MESSAGE(const DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        struct NEGOTIATE_MESSAGE *r)
 {
-       NTLMSSP_PULL_MESSAGE(NEGOTIATE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PULL_MESSAGE(NEGOTIATE_MESSAGE, blob, mem_ctx, r);
 }
 
 /**
@@ -74,10 +73,9 @@ NTSTATUS ntlmssp_pull_NEGOTIATE_MESSAGE(const DATA_BLOB *blob,
 
 NTSTATUS ntlmssp_pull_CHALLENGE_MESSAGE(const DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        struct CHALLENGE_MESSAGE *r)
 {
-       NTLMSSP_PULL_MESSAGE(CHALLENGE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PULL_MESSAGE(CHALLENGE_MESSAGE, blob, mem_ctx, r);
 }
 
 /**
@@ -90,10 +88,9 @@ NTSTATUS ntlmssp_pull_CHALLENGE_MESSAGE(const DATA_BLOB *blob,
 
 NTSTATUS ntlmssp_pull_AUTHENTICATE_MESSAGE(const DATA_BLOB *blob,
                                           TALLOC_CTX *mem_ctx,
-                                          struct smb_iconv_convenience *ic,
                                           struct AUTHENTICATE_MESSAGE *r)
 {
-       NTLMSSP_PULL_MESSAGE(AUTHENTICATE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PULL_MESSAGE(AUTHENTICATE_MESSAGE, blob, mem_ctx, r);
 }
 
 /**
@@ -106,10 +103,9 @@ NTSTATUS ntlmssp_pull_AUTHENTICATE_MESSAGE(const DATA_BLOB *blob,
 
 NTSTATUS ntlmssp_push_NEGOTIATE_MESSAGE(DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        const struct NEGOTIATE_MESSAGE *r)
 {
-       NTLMSSP_PUSH_MESSAGE(NEGOTIATE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PUSH_MESSAGE(NEGOTIATE_MESSAGE, blob, mem_ctx, r);
 }
 
 /**
@@ -122,10 +118,9 @@ NTSTATUS ntlmssp_push_NEGOTIATE_MESSAGE(DATA_BLOB *blob,
 
 NTSTATUS ntlmssp_push_CHALLENGE_MESSAGE(DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        const struct CHALLENGE_MESSAGE *r)
 {
-       NTLMSSP_PUSH_MESSAGE(CHALLENGE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PUSH_MESSAGE(CHALLENGE_MESSAGE, blob, mem_ctx, r);
 }
 
 /**
@@ -138,8 +133,7 @@ NTSTATUS ntlmssp_push_CHALLENGE_MESSAGE(DATA_BLOB *blob,
 
 NTSTATUS ntlmssp_push_AUTHENTICATE_MESSAGE(DATA_BLOB *blob,
                                           TALLOC_CTX *mem_ctx,
-                                          struct smb_iconv_convenience *ic,
                                           const struct AUTHENTICATE_MESSAGE *r)
 {
-       NTLMSSP_PUSH_MESSAGE(AUTHENTICATE_MESSAGE, blob, mem_ctx, ic, r);
+       NTLMSSP_PUSH_MESSAGE(AUTHENTICATE_MESSAGE, blob, mem_ctx, r);
 }
index 52990b2a56e8ad607f197324d644b58bcd4744b3..e61923170ec083819b2abfd5fe6c6d68c77fd1e1 100644 (file)
 
 NTSTATUS ntlmssp_pull_NEGOTIATE_MESSAGE(const DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        struct NEGOTIATE_MESSAGE *r);
 NTSTATUS ntlmssp_pull_CHALLENGE_MESSAGE(const DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        struct CHALLENGE_MESSAGE *r);
 NTSTATUS ntlmssp_pull_AUTHENTICATE_MESSAGE(const DATA_BLOB *blob,
                                           TALLOC_CTX *mem_ctx,
-                                          struct smb_iconv_convenience *ic,
                                           struct AUTHENTICATE_MESSAGE *r);
 NTSTATUS ntlmssp_push_NEGOTIATE_MESSAGE(DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        const struct NEGOTIATE_MESSAGE *r);
 NTSTATUS ntlmssp_push_CHALLENGE_MESSAGE(DATA_BLOB *blob,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        const struct CHALLENGE_MESSAGE *r);
 NTSTATUS ntlmssp_push_AUTHENTICATE_MESSAGE(DATA_BLOB *blob,
                                           TALLOC_CTX *mem_ctx,
-                                          struct smb_iconv_convenience *ic,
                                           const struct AUTHENTICATE_MESSAGE *r);
index d378a39d8f2881f9997418f095fa6e15780cc66e..017fdbe28d9af34e251551055f56f1c09f823f01 100644 (file)
 #define _LIBCLI_AUTH_SCHANNEL_STATE_H__
 
 NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
-                                 struct smb_iconv_convenience *ic,
                                  const char *db_priv_dir,
                                  const char *computer_name,
                                  struct netlogon_creds_CredentialState **creds);
 
 NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
-                                  struct smb_iconv_convenience *ic,
                                   const char *db_priv_dir,
                                   struct netlogon_creds_CredentialState *creds);
 
 NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
-                                   struct smb_iconv_convenience *ic,
                                    const char *db_priv_dir,
                                    const char *computer_name,
                                    struct netr_Authenticator *received_authenticator,
index 3f6618c744c1d01180a467293ab9354d01bc19b6..9e767810a18de7102b46798bd706b1b56e622e71 100644 (file)
@@ -103,7 +103,6 @@ static struct tdb_wrap *open_schannel_session_store(TALLOC_CTX *mem_ctx,
 static
 NTSTATUS schannel_store_session_key_tdb(struct tdb_wrap *tdb_sc,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        struct netlogon_creds_CredentialState *creds)
 {
        enum ndr_err_code ndr_err;
@@ -125,7 +124,7 @@ NTSTATUS schannel_store_session_key_tdb(struct tdb_wrap *tdb_sc,
                return NT_STATUS_NO_MEMORY;
        }
 
-       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, ic, creds,
+       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, creds,
                        (ndr_push_flags_fn_t)ndr_push_netlogon_creds_CredentialState);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(keystr);
@@ -161,7 +160,6 @@ NTSTATUS schannel_store_session_key_tdb(struct tdb_wrap *tdb_sc,
 static
 NTSTATUS schannel_fetch_session_key_tdb(struct tdb_wrap *tdb_sc,
                                        TALLOC_CTX *mem_ctx,
-                                       struct smb_iconv_convenience *ic,
                                        const char *computer_name,
                                        struct netlogon_creds_CredentialState **pcreds)
 {
@@ -203,7 +201,7 @@ NTSTATUS schannel_fetch_session_key_tdb(struct tdb_wrap *tdb_sc,
 
        blob = data_blob_const(value.dptr, value.dsize);
 
-       ndr_err = ndr_pull_struct_blob(&blob, creds, ic, creds,
+       ndr_err = ndr_pull_struct_blob(&blob, creds, creds,
                        (ndr_pull_flags_fn_t)ndr_pull_netlogon_creds_CredentialState);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -240,7 +238,6 @@ NTSTATUS schannel_fetch_session_key_tdb(struct tdb_wrap *tdb_sc,
 *******************************************************************************/
 
 NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
-                                 struct smb_iconv_convenience *ic,
                                  const char *db_priv_dir,
                                  const char *computer_name,
                                  struct netlogon_creds_CredentialState **_creds)
@@ -260,7 +257,7 @@ NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
                return NT_STATUS_ACCESS_DENIED;
        }
 
-       status = schannel_fetch_session_key_tdb(tdb_sc, tmpctx, ic,
+       status = schannel_fetch_session_key_tdb(tdb_sc, tmpctx, 
                                                computer_name, &creds);
        if (NT_STATUS_IS_OK(status)) {
                *_creds = talloc_steal(mem_ctx, creds);
@@ -279,7 +276,6 @@ NTSTATUS schannel_get_creds_state(TALLOC_CTX *mem_ctx,
 *******************************************************************************/
 
 NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
-                                  struct smb_iconv_convenience *ic,
                                   const char *db_priv_dir,
                                   struct netlogon_creds_CredentialState *creds)
 {
@@ -297,7 +293,7 @@ NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
                return NT_STATUS_ACCESS_DENIED;
        }
 
-       status = schannel_store_session_key_tdb(tdb_sc, tmpctx, ic, creds);
+       status = schannel_store_session_key_tdb(tdb_sc, tmpctx, creds);
 
        talloc_free(tmpctx);
        return status;
@@ -314,7 +310,6 @@ NTSTATUS schannel_save_creds_state(TALLOC_CTX *mem_ctx,
  ********************************************************************/
 
 NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
-                                   struct smb_iconv_convenience *ic,
                                    const char *db_priv_dir,
                                    const char *computer_name,
                                    struct netr_Authenticator *received_authenticator,
@@ -348,7 +343,7 @@ NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
         * disconnects) we must update the database every time we
         * update the structure */
 
-       status = schannel_fetch_session_key_tdb(tdb_sc, tmpctx, ic,
+       status = schannel_fetch_session_key_tdb(tdb_sc, tmpctx, 
                                                computer_name, &creds);
        if (!NT_STATUS_IS_OK(status)) {
                tdb_transaction_cancel(tdb_sc->tdb);
@@ -363,7 +358,7 @@ NTSTATUS schannel_check_creds_state(TALLOC_CTX *mem_ctx,
                goto done;
        }
 
-       status = schannel_store_session_key_tdb(tdb_sc, tmpctx, ic, creds);
+       status = schannel_store_session_key_tdb(tdb_sc, tmpctx, creds);
        if (!NT_STATUS_IS_OK(status)) {
                tdb_transaction_cancel(tdb_sc->tdb);
                goto done;
index 191d0eeee49c1d6e4873dcb1ca20cbcecc3d1228..896319e75cdba6373a7b4d06cadaaa2351242afc 100644 (file)
@@ -946,7 +946,6 @@ static void cldap_netlogon_state_done(struct tevent_req *subreq)
   receive a cldap netlogon reply
 */
 NTSTATUS cldap_netlogon_recv(struct tevent_req *req,
-                            struct smb_iconv_convenience *iconv_convenience,
                             TALLOC_CTX *mem_ctx,
                             struct cldap_netlogon *io)
 {
@@ -974,7 +973,6 @@ NTSTATUS cldap_netlogon_recv(struct tevent_req *req,
        data = state->search.out.response->attributes[0].values;
 
        status = pull_netlogon_samlogon_response(data, mem_ctx,
-                                                iconv_convenience,
                                                 &io->out.netlogon);
        if (!NT_STATUS_IS_OK(status)) {
                goto failed;
@@ -994,7 +992,6 @@ failed:
   sync cldap netlogon search
 */
 NTSTATUS cldap_netlogon(struct cldap_socket *cldap,
-                       struct smb_iconv_convenience *iconv_convenience,
                        TALLOC_CTX *mem_ctx,
                        struct cldap_netlogon *io)
 {
@@ -1017,7 +1014,7 @@ NTSTATUS cldap_netlogon(struct cldap_socket *cldap,
                return NT_STATUS_INTERNAL_ERROR;
        }
 
-       status = cldap_netlogon_recv(req, iconv_convenience, mem_ctx, io);
+       status = cldap_netlogon_recv(req, mem_ctx, io);
        talloc_free(req);
 
        return status;
@@ -1081,7 +1078,6 @@ NTSTATUS cldap_error_reply(struct cldap_socket *cldap,
   send a netlogon reply 
 */
 NTSTATUS cldap_netlogon_reply(struct cldap_socket *cldap,
-                             struct smb_iconv_convenience *iconv_convenience,
                              uint32_t message_id,
                              struct tsocket_address *dest,
                              uint32_t version,
@@ -1095,7 +1091,6 @@ NTSTATUS cldap_netlogon_reply(struct cldap_socket *cldap,
        DATA_BLOB blob;
 
        status = push_netlogon_samlogon_response(&blob, tmp_ctx,
-                                                iconv_convenience,
                                                 netlogon);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(tmp_ctx);
index 111fa2cfc4514e072a0dd3ead3bcc7f19616000d..d05e5b993687b5de5dfb246340d0a674be0ef34a 100644 (file)
@@ -116,16 +116,13 @@ struct tevent_req *cldap_netlogon_send(TALLOC_CTX *mem_ctx,
                                       struct cldap_socket *cldap,
                                       const struct cldap_netlogon *io);
 NTSTATUS cldap_netlogon_recv(struct tevent_req *req,
-                            struct smb_iconv_convenience *iconv_convenience,
                             TALLOC_CTX *mem_ctx,
                             struct cldap_netlogon *io);
 NTSTATUS cldap_netlogon(struct cldap_socket *cldap,
-                       struct smb_iconv_convenience *iconv_convenience,
                        TALLOC_CTX *mem_ctx,
                        struct cldap_netlogon *io);
 
 NTSTATUS cldap_netlogon_reply(struct cldap_socket *cldap,
-                             struct smb_iconv_convenience *iconv_convenience,
                              uint32_t message_id,
                              struct tsocket_address *dst,
                              uint32_t version,
index c176d0e1e0131e0544992a0cdc3616274bd46d93..3b40fbba25dc826b569120e74532a9db51830654 100644 (file)
@@ -51,7 +51,7 @@ char *ldap_encode_ndr_dom_sid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
        DATA_BLOB blob;
        enum ndr_err_code ndr_err;
        char *ret;
-       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, NULL, sid,
+       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NULL;
@@ -89,7 +89,7 @@ NTSTATUS ldap_decode_ndr_GUID(TALLOC_CTX *mem_ctx, struct ldb_val val, struct GU
 
        blob.data = val.data;
        blob.length = val.length;
-       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, NULL, guid,
+       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, guid,
                                       (ndr_pull_flags_fn_t)ndr_pull_GUID);
        talloc_free(val.data);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index b41fa3eb6d5d5566b13c4024d2fec4ab33ac5203..20228a2df27e8093967db25d90ff4d58350b8c84 100644 (file)
@@ -39,7 +39,6 @@ struct tstream_npa {
 struct tstream_npa_connect_state {
        struct {
                struct tevent_context *ev;
-               struct smb_iconv_convenience *smb_iconv_c;
        } caller;
 
        const char *unix_path;
@@ -59,7 +58,6 @@ static void tstream_npa_connect_unix_done(struct tevent_req *subreq);
 
 struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx,
                                        struct tevent_context *ev,
-                                       struct smb_iconv_convenience *smb_iconv_c,
                                        const char *directory,
                                        const char *npipe,
                                        const struct tsocket_address *client,
@@ -83,7 +81,6 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx,
        }
 
        state->caller.ev = ev;
-       state->caller.smb_iconv_c = smb_iconv_c;
 
        state->unix_path = talloc_asprintf(state, "%s/%s",
                                           directory,
@@ -161,7 +158,7 @@ struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_push_struct_blob(&state->auth_req_blob,
-                       state, smb_iconv_c, &state->auth_req,
+                       state, &state->auth_req,
                        (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_req);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                tevent_req_error(req, EINVAL);
@@ -343,7 +340,7 @@ static void tstream_npa_connect_readv_done(struct tevent_req *subreq)
 
        ndr_err = ndr_pull_struct_blob(
                &state->auth_rep_blob, state,
-               state->caller.smb_iconv_c, &state->auth_rep,
+               &state->auth_rep,
                (ndr_pull_flags_fn_t)ndr_pull_named_pipe_auth_rep);
 
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index bff010f09412f2f1473ed002ad88c0bf38d91e61..7a19e10410813e6f57cc47adf30992d579af4448 100644 (file)
@@ -26,7 +26,6 @@ struct netr_SamInfo3;
 
 struct tevent_req *tstream_npa_connect_send(TALLOC_CTX *mem_ctx,
                                        struct tevent_context *ev,
-                                       struct smb_iconv_convenience *smb_iconv_c,
                                        const char *directory,
                                        const char *npipe,
                                        const struct tsocket_address *client,
index e150b35566c59f77def41c8040f57e9c9e0f1a59..616554832049c1e4b7dcfb0a8e9c930efd1e78d5 100644 (file)
@@ -95,7 +95,6 @@ struct nbt_name_request {
 struct nbt_name_socket {
        struct socket_context *sock;
        struct tevent_context *event_ctx;
-       struct smb_iconv_convenience *iconv_convenience;
 
        /* a queue of requests pending to be sent */
        struct nbt_name_request *send_queue;
@@ -275,8 +274,7 @@ struct nbt_name_release {
 };
 
 struct nbt_name_socket *nbt_name_socket_init(TALLOC_CTX *mem_ctx,
-                                            struct tevent_context *event_ctx,
-                                            struct smb_iconv_convenience *iconv_convenience);
+                                            struct tevent_context *event_ctx);
 void nbt_name_socket_handle_response_packet(struct nbt_name_request *req,
                                            struct nbt_name_packet *packet,
                                            struct socket_address *src);
@@ -294,7 +292,7 @@ NTSTATUS nbt_name_status(struct nbt_name_socket *nbtsock,
                        TALLOC_CTX *mem_ctx, struct nbt_name_status *io);
 
 NTSTATUS nbt_name_dup(TALLOC_CTX *mem_ctx, struct nbt_name *name, struct nbt_name *newname);
-NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, DATA_BLOB *blob, struct nbt_name *name);
+NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct nbt_name *name);
 NTSTATUS nbt_name_from_blob(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, struct nbt_name *name);
 void nbt_choose_called_name(TALLOC_CTX *mem_ctx, struct nbt_name *n, const char *name, int type);
 char *nbt_name_string(TALLOC_CTX *mem_ctx, const struct nbt_name *name);
index 385905abf19bbeb3a6c77e0cfa8f00ebcbe57634..3f0a1228e7a8f8a82cf5f9c3beaea19ddc7be164 100644 (file)
@@ -381,11 +381,11 @@ _PUBLIC_ NTSTATUS nbt_name_dup(TALLOC_CTX *mem_ctx, struct nbt_name *name, struc
 /**
   push a nbt name into a blob
 */
-_PUBLIC_ NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, DATA_BLOB *blob, struct nbt_name *name)
+_PUBLIC_ NTSTATUS nbt_name_to_blob(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct nbt_name *name)
 {
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_push_struct_blob(blob, mem_ctx, iconv_convenience, name, (ndr_push_flags_fn_t)ndr_push_nbt_name);
+       ndr_err = ndr_push_struct_blob(blob, mem_ctx, name, (ndr_push_flags_fn_t)ndr_push_nbt_name);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);
        }
@@ -400,7 +400,7 @@ _PUBLIC_ NTSTATUS nbt_name_from_blob(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
 {
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_pull_struct_blob(blob, mem_ctx, NULL, name,
+       ndr_err = ndr_pull_struct_blob(blob, mem_ctx, name,
                                       (ndr_pull_flags_fn_t)ndr_pull_nbt_name);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);
index d9bc72e49982874d4d323ec359d2cc5478d54b63..2b792c5e2d7eb2481fb154e667b3df48f62f4da4 100644 (file)
@@ -191,7 +191,7 @@ static void nbt_name_socket_recv(struct nbt_name_socket *nbtsock)
        }
 
        /* parse the request */
-       ndr_err = ndr_pull_struct_blob(&blob, packet, nbtsock->iconv_convenience, packet,
+       ndr_err = ndr_pull_struct_blob(&blob, packet, packet,
                                       (ndr_pull_flags_fn_t)ndr_pull_nbt_name_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -332,8 +332,7 @@ static void nbt_name_socket_handler(struct tevent_context *ev, struct tevent_fd
   then operations will use that event context
 */
 _PUBLIC_ struct nbt_name_socket *nbt_name_socket_init(TALLOC_CTX *mem_ctx,
-                                            struct tevent_context *event_ctx,
-                                            struct smb_iconv_convenience *iconv_convenience)
+                                            struct tevent_context *event_ctx)
 {
        struct nbt_name_socket *nbtsock;
        NTSTATUS status;
@@ -358,7 +357,6 @@ _PUBLIC_ struct nbt_name_socket *nbt_name_socket_init(TALLOC_CTX *mem_ctx,
        nbtsock->num_pending = 0;
        nbtsock->incoming.handler = NULL;
        nbtsock->unexpected.handler = NULL;
-       nbtsock->iconv_convenience = iconv_convenience;
 
        nbtsock->fde = event_add_fd(nbtsock->event_ctx, nbtsock,
                                    socket_get_fd(nbtsock->sock), 0,
@@ -416,7 +414,6 @@ struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
        talloc_set_destructor(req, nbt_name_request_destructor);
 
        ndr_err = ndr_push_struct_blob(&req->encoded, req,
-                                      req->nbtsock->iconv_convenience,
                                       request,
                                       (ndr_push_flags_fn_t)ndr_push_nbt_name_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) goto failed;
@@ -465,7 +462,6 @@ _PUBLIC_ NTSTATUS nbt_name_reply_send(struct nbt_name_socket *nbtsock,
        }
 
        ndr_err = ndr_push_struct_blob(&req->encoded, req,
-                                      req->nbtsock->iconv_convenience,
                                       request,
                                       (ndr_push_flags_fn_t)ndr_push_nbt_name_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 425ad13c6dd87cdce31ad844a8834bf94069598f..dbb4d18237e81a727729c0875bc3aa3a7b649d08 100644 (file)
@@ -52,7 +52,7 @@ static PyObject *py_nbt_node_init(PyTypeObject *self, PyObject *args, PyObject *
                return NULL;
 
        ev = s4_event_context_init(ret->mem_ctx);
-       ret->socket = nbt_name_socket_init(ret->mem_ctx, ev, py_iconv_convenience(ret->mem_ctx));
+       ret->socket = nbt_name_socket_init(ret->mem_ctx, ev);
        return (PyObject *)ret;
 }
 
@@ -124,7 +124,7 @@ static bool PyObject_AsNBTName(PyObject *obj, struct nbt_name_socket *name_socke
        return false;
 }
 
-static PyObject *PyObject_FromNBTName(struct nbt_name_socket *name_socket, struct smb_iconv_convenience *ic,
+static PyObject *PyObject_FromNBTName(struct nbt_name_socket *name_socket, 
                                      struct nbt_name *name)
 {
        if (name->scope) {
@@ -175,7 +175,7 @@ static PyObject *py_nbt_name_query(PyObject *self, PyObject *args, PyObject *kwa
                return NULL;
        PyTuple_SetItem(ret, 0, PyString_FromString(io.out.reply_from));
 
-       py_name = PyObject_FromNBTName(node->socket, py_iconv_convenience(node->socket), &io.out.name);
+       py_name = PyObject_FromNBTName(node->socket, &io.out.name);
        if (py_name == NULL)
                return NULL;
 
@@ -233,7 +233,7 @@ static PyObject *py_nbt_name_status(PyObject *self, PyObject *args, PyObject *kw
                return NULL;
        PyTuple_SetItem(ret, 0, PyString_FromString(io.out.reply_from));
 
-       py_name = PyObject_FromNBTName(node->socket, py_iconv_convenience(NULL), &io.out.name);
+       py_name = PyObject_FromNBTName(node->socket, &io.out.name);
        if (py_name == NULL)
                return NULL;
 
@@ -296,7 +296,7 @@ static PyObject *py_nbt_name_register(PyObject *self, PyObject *args, PyObject *
                return NULL;
        PyTuple_SetItem(ret, 0, PyString_FromString(io.out.reply_from));
 
-       py_name = PyObject_FromNBTName(node->socket, py_iconv_convenience(NULL), &io.out.name);
+       py_name = PyObject_FromNBTName(node->socket, &io.out.name);
        if (py_name == NULL)
                return NULL;
 
@@ -351,7 +351,7 @@ static PyObject *py_nbt_name_refresh(PyObject *self, PyObject *args, PyObject *k
                return NULL;
        PyTuple_SetItem(ret, 0, PyString_FromString(io.out.reply_from));
 
-       py_name = PyObject_FromNBTName(node->socket, py_iconv_convenience(NULL), &io.out.name);
+       py_name = PyObject_FromNBTName(node->socket, &io.out.name);
        if (py_name == NULL)
                return NULL;
 
index 96023f64c390379526fd7f4441dab2a2228c0e94..b756c1e30c5dadff71d6c24ac41faa8aba21359d 100644 (file)
@@ -212,7 +212,7 @@ static bool process_one(struct loadparm_context *lp_ctx, struct tevent_context *
                node_name = talloc_strdup(tmp_ctx, name);
        }
 
-       nbtsock = nbt_name_socket_init(tmp_ctx, ev, lp_iconv_convenience(lp_ctx));
+       nbtsock = nbt_name_socket_init(tmp_ctx, ev);
        
        if (options.root_port) {
                all_zero_addr = socket_address_from_strings(tmp_ctx, nbtsock->sock->backend_name, 
index 1c6b2bccb6aa332f03c0777ebeb6cf17dbba971e..d15154d2c98ee82245435291a767fe91b13b36e0 100644 (file)
@@ -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->iconv_convenience, ndr->flags)));
+                               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
                                {
                                        struct ndr_push *_ndr_sockaddr;
-                                       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_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, 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->iconv_convenience, ndr->flags)));
+                                       NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->flags)));
                                }
                        }
                        if (r->nt_version & NETLOGON_NT_VERSION_WITH_CLOSEST_SITE) {
index 9ad941cfb6c535c4e8b080574274fbda7cf3c943..e32842ec0a52469ee29b706c9b803d6e0edf6a22 100644 (file)
 #define DEBUGLEVEL 0
 
 NTSTATUS push_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct netlogon_samlogon_response *response)
 {
        enum ndr_err_code ndr_err;
        if (response->ntver == NETLOGON_NT_VERSION_1) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
-                                              iconv_convenience,
                                               &response->data.nt4,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40);
        } else if (response->ntver & NETLOGON_NT_VERSION_5EX) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
-                                              iconv_convenience,
                                               &response->data.nt5_ex,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags);
        } else if (response->ntver & NETLOGON_NT_VERSION_5) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
-                                              iconv_convenience,
                                               &response->data.nt5,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE);
        } else {
@@ -62,7 +58,6 @@ NTSTATUS push_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 }
 
 NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct netlogon_samlogon_response *response)
 {
        uint32_t ntver;
@@ -85,7 +80,6 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 
        if (ntver == NETLOGON_NT_VERSION_1) {
                ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
-                                                  iconv_convenience,
                                                   &response->data.nt4,
                                                   (ndr_pull_flags_fn_t)ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40);
                response->ntver = NETLOGON_NT_VERSION_1;
@@ -96,7 +90,7 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 
        } else if (ntver & NETLOGON_NT_VERSION_5EX) {
                struct ndr_pull *ndr;
-               ndr = ndr_pull_init_blob(data, mem_ctx, iconv_convenience);
+               ndr = ndr_pull_init_blob(data, mem_ctx);
                if (!ndr) {
                        return NT_STATUS_NO_MEMORY;
                }
@@ -116,7 +110,6 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 
        } else if (ntver & NETLOGON_NT_VERSION_5) {
                ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
-                                                  iconv_convenience,
                                                   &response->data.nt5,
                                                   (ndr_pull_flags_fn_t)ndr_pull_NETLOGON_SAM_LOGON_RESPONSE);
                response->ntver = NETLOGON_NT_VERSION_5;
@@ -183,7 +176,6 @@ void map_netlogon_samlogon_response(struct netlogon_samlogon_response *response)
 }
 
 NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                   struct smb_iconv_convenience *iconv_convenience,
                                    struct nbt_netlogon_response *response)
 {
        NTSTATUS status = NT_STATUS_INVALID_NETWORK_RESPONSE;
@@ -191,7 +183,6 @@ NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        switch (response->response_type) {
        case NETLOGON_GET_PDC:
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
-                                              iconv_convenience,
                                               &response->data.get_pdc,
                                               (ndr_push_flags_fn_t)ndr_push_nbt_netlogon_response_from_pdc);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -207,7 +198,7 @@ NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
                break;
        case NETLOGON_SAMLOGON:
                status = push_netlogon_samlogon_response(
-                       data, mem_ctx, iconv_convenience,
+                       data, mem_ctx, 
                        &response->data.samlogon);
                break;
        }
@@ -216,7 +207,6 @@ NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 
 
 NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct nbt_netlogon_response *response)
 {
        NTSTATUS status = NT_STATUS_INVALID_NETWORK_RESPONSE;
@@ -231,7 +221,6 @@ NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        switch (command) {
        case NETLOGON_RESPONSE_FROM_PDC:
                ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
-                                                  iconv_convenience,
                                                   &response->data.get_pdc,
                                                   (ndr_pull_flags_fn_t)ndr_pull_nbt_netlogon_response_from_pdc);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -253,7 +242,7 @@ NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX:
        case LOGON_SAM_LOGON_USER_UNKNOWN_EX:
                status = pull_netlogon_samlogon_response(
-                       data, mem_ctx, iconv_convenience,
+                       data, mem_ctx, 
                        &response->data.samlogon);
                response->response_type = NETLOGON_SAMLOGON;
                break;
index 905feed8761abc7411878336605408fd32b3dc84..53c7d004ee9f200335a927211b614c40adc021c9 100644 (file)
 /* The following definitions come from ../libcli/netlogon.c  */
 
 NTSTATUS push_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct netlogon_samlogon_response *response);
 NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct netlogon_samlogon_response *response);
 void map_netlogon_samlogon_response(struct netlogon_samlogon_response *response);
 NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                   struct smb_iconv_convenience *iconv_convenience,
                                    struct nbt_netlogon_response *response);
 NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct nbt_netlogon_response *response);
 #undef _PRINTF_ATTRIBUTE
 #define _PRINTF_ATTRIBUTE(a1, a2)
index 6ab2be0a1148de7cf8e0f226fd3459d4c073c70b..3a1168f615175789604402ab9d99f94120ffbe30 100644 (file)
@@ -75,13 +75,12 @@ _PUBLIC_ int regtype_by_string(const char *str)
  push a string in unix charset into a REG_SZ UCS2 null terminated blob
  ********************************************************************/
 
-bool push_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                DATA_BLOB *blob, const char *s)
+bool push_reg_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *s)
 {
        union winreg_Data data;
        enum ndr_err_code ndr_err;
        data.string = s;
-       ndr_err = ndr_push_union_blob(blob, mem_ctx, ic, &data, REG_SZ,
+       ndr_err = ndr_push_union_blob(blob, mem_ctx, &data, REG_SZ,
                        (ndr_push_flags_fn_t)ndr_push_winreg_Data);
        return NDR_ERR_CODE_IS_SUCCESS(ndr_err);
 }
@@ -91,13 +90,12 @@ bool push_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
  terminated blob
  ********************************************************************/
 
-bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                      DATA_BLOB *blob, const char **a)
+bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char **a)
 {
        union winreg_Data data;
        enum ndr_err_code ndr_err;
        data.string_array = a;
-       ndr_err = ndr_push_union_blob(blob, mem_ctx, ic, &data, REG_MULTI_SZ,
+       ndr_err = ndr_push_union_blob(blob, mem_ctx, &data, REG_MULTI_SZ,
                        (ndr_push_flags_fn_t)ndr_push_winreg_Data);
        return NDR_ERR_CODE_IS_SUCCESS(ndr_err);
 }
@@ -106,12 +104,11 @@ bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
  pull a string in unix charset out of a REG_SZ UCS2 null terminated blob
  ********************************************************************/
 
-bool pull_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                const DATA_BLOB *blob, const char **s)
+bool pull_reg_sz(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const char **s)
 {
        union winreg_Data data;
        enum ndr_err_code ndr_err;
-       ndr_err = ndr_pull_union_blob(blob, mem_ctx, ic, &data, REG_SZ,
+       ndr_err = ndr_pull_union_blob(blob, mem_ctx, &data, REG_SZ,
                        (ndr_pull_flags_fn_t)ndr_pull_winreg_Data);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return false;
@@ -125,12 +122,12 @@ bool pull_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
  terminated blob
  ********************************************************************/
 
-bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
+bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, 
                       const DATA_BLOB *blob, const char ***a)
 {
        union winreg_Data data;
        enum ndr_err_code ndr_err;
-       ndr_err = ndr_pull_union_blob(blob, mem_ctx, ic, &data, REG_MULTI_SZ,
+       ndr_err = ndr_pull_union_blob(blob, mem_ctx, &data, REG_MULTI_SZ,
                        (ndr_pull_flags_fn_t)ndr_pull_winreg_Data);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return false;
index b3fab712bc6bf168cc4471601eef0dd130bd0624..117151e8876b9632544953b9d3a885e515bfb189 100644 (file)
@@ -79,7 +79,7 @@ static NTSTATUS fix_user(TALLOC_CTX *mem_ctx,
                user->user_private_info.SensitiveData = data.data;
                user->user_private_info.DataLength = data.length;
 
-               ndr_err = ndr_pull_struct_blob(&data, mem_ctx, NULL, &keys,
+               ndr_err = ndr_pull_struct_blob(&data, mem_ctx, &keys,
                        (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        dump_data(10, data.data, data.length);
index 8a73a6ab94cea7109d26f4576c0954065598d452..2ee5bfaee50808ea779d689f51268230b900ffb6 100644 (file)
@@ -63,7 +63,7 @@ void init_sec_ace(struct security_ace *t, const struct dom_sid *sid, enum securi
 {
        t->type = type;
        t->flags = flag;
-       t->size = ndr_size_dom_sid(sid, NULL, 0) + 8;
+       t->size = ndr_size_dom_sid(sid, 0) + 8;
        t->access_mask = mask;
 
        t->trustee = *sid;
@@ -89,7 +89,7 @@ NTSTATUS sec_ace_add_sid(TALLOC_CTX *ctx, struct security_ace **pp_new, struct s
 
        (*pp_new)[i].type  = SEC_ACE_TYPE_ACCESS_ALLOWED;
        (*pp_new)[i].flags = 0;
-       (*pp_new)[i].size  = SEC_ACE_HEADER_SIZE + ndr_size_dom_sid(sid, NULL, 0);
+       (*pp_new)[i].size  = SEC_ACE_HEADER_SIZE + ndr_size_dom_sid(sid, 0);
        (*pp_new)[i].access_mask = mask;
        (*pp_new)[i].trustee = *sid;
        return NT_STATUS_OK;
index 89b5760823ddf35956548c8e066be3c39e8bb2b9..1b4649cff9fe9cb5cde7e7d9326addd320df793c 100644 (file)
@@ -92,13 +92,13 @@ interface drsblobs {
 
        typedef [public,gensize,flag(NDR_PAHEX)] struct {
                /* this includes the 8 bytes of the repsFromToBlob header */
-               [value(ndr_size_repsFromTo1(this, ndr->iconv_convenience, ndr->flags)+8)] uint32 blobsize;
+               [value(ndr_size_repsFromTo1(this, ndr->flags)+8)] uint32 blobsize;
                uint32 consecutive_sync_failures;
                NTTIME_1sec last_success;
                NTTIME_1sec last_attempt;
                WERROR result_last_attempt;
                [relative] repsFromTo1OtherInfo *other_info;
-               [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr->iconv_convenience, ndr->flags))] uint32 other_info_length;
+               [value(ndr_size_repsFromTo1OtherInfo(other_info, ndr->flags))] uint32 other_info_length;
                drsuapi_DrsOptions replica_flags;
                uint8 schedule[84];
                [value(0)] uint32 reserved;
@@ -109,7 +109,7 @@ interface drsblobs {
        } repsFromTo1;
 
        typedef [public,relative_base,gensize] struct {
-               [value(ndr_size_repsFromTo2OtherInfo(this,ndr->iconv_convenience, ndr->flags))]
+               [value(ndr_size_repsFromTo2OtherInfo(this,ndr->flags))]
                        uint32 __ndr_size;
                [relative] nstring *dns_name1;
                uint32 unknown1;
@@ -119,13 +119,13 @@ interface drsblobs {
 
        typedef [public,gensize,flag(NDR_PAHEX)] struct {
                /* this includes the 8 bytes of the repsFromToBlob header */
-               [value(ndr_size_repsFromTo2(this, ndr->iconv_convenience, ndr->flags)+8)] uint32 blobsize;
+               [value(ndr_size_repsFromTo2(this, ndr->flags)+8)] uint32 blobsize;
                uint32 consecutive_sync_failures;
                NTTIME_1sec last_success;
                NTTIME_1sec last_attempt;
                WERROR result_last_attempt;
                [relative] repsFromTo2OtherInfo *other_info;
-               [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr->iconv_convenience, ndr->flags))] uint32 other_info_length;
+               [value(ndr_size_repsFromTo2OtherInfo(other_info, ndr->flags))] uint32 other_info_length;
                drsuapi_DrsOptions replica_flags;
                uint8 schedule[84];
                [value(0)] uint32 reserved;
@@ -209,7 +209,7 @@ interface drsblobs {
 
        typedef [public,gensize] struct {
                uint32 num_entries;
-               [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r, ndr->flags))] uint32 __ndr_size;
                drsuapi_MSPrefixMap_Entry entries[num_entries];
        } drsuapi_MSPrefixMap_Ctr;
 
@@ -255,7 +255,7 @@ interface drsblobs {
                NTTIME time;
                uint32 u2;
                uint32 u3;
-               [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, ndr->iconv_convenience, 0))] 
+               [value(ndr_size_ldapControlDirSyncExtra(&extra, extra.uptodateness_vector.version, 0))] 
                        uint32 extra_length;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                GUID guid1;
@@ -316,7 +316,7 @@ interface drsblobs {
 
        typedef [public] struct {
                [value(0)] uint32 unknown1;
-               [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
+               [value(ndr_size_supplementalCredentialsSubBlob(&sub, ndr->flags))] uint32 __ndr_size;
                [value(0)] uint32 unknown2;
                [subcontext(0),subcontext_size(__ndr_size)] supplementalCredentialsSubBlob sub;
                [value(0)] uint8 unknown3;
@@ -499,8 +499,8 @@ interface drsblobs {
                uint8 confounder[512];
                [subcontext(0),subcontext_size(outgoing_size)] trustCurrentPasswords outgoing;
                [subcontext(0),subcontext_size(incoming_size)] trustCurrentPasswords incoming;
-               [value(ndr_size_trustCurrentPasswords(&outgoing, ndr->iconv_convenience, ndr->flags))] uint32 outgoing_size;
-               [value(ndr_size_trustCurrentPasswords(&incoming, ndr->iconv_convenience, ndr->flags))] uint32 incoming_size;
+               [value(ndr_size_trustCurrentPasswords(&outgoing, ndr->flags))] uint32 outgoing_size;
+               [value(ndr_size_trustCurrentPasswords(&incoming, ndr->flags))] uint32 incoming_size;
        } trustDomainPasswords;
 
        [nopython] void decode_trustDomainPasswords(
@@ -631,7 +631,7 @@ interface drsblobs {
        } ForestTrustInfoRecord;
 
        typedef [flag(NDR_NOALIGN)] struct {
-               [value(ndr_size_ForestTrustInfoRecord(&record, ndr->iconv_convenience, ndr->flags))] uint32 record_size;
+               [value(ndr_size_ForestTrustInfoRecord(&record, ndr->flags))] uint32 record_size;
                ForestTrustInfoRecord record;
        } ForestTrustInfoRecordArmor;
 
index 97ae9641f0e9ab0b4101686fe5f72af04b846f60..ef6ffef4b3132185db46b2b134470b2ea2a774a9 100644 (file)
@@ -186,7 +186,7 @@ interface drsuapi
        /*****************/
        /* Function 0x02 */
        typedef [public,gensize] struct {
-               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags)-4)] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size;
                [value(ndr_size_dom_sid28(&sid, ndr->flags))]  uint32 __ndr_size_sid;
                GUID guid;
                dom_sid28 sid;
@@ -532,7 +532,7 @@ interface drsuapi
 
        /* DN String values */
        typedef [public,gensize] struct {
-               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size;
                [value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
                GUID guid;
                dom_sid28 sid;
@@ -541,7 +541,7 @@ interface drsuapi
        } drsuapi_DsReplicaObjectIdentifier3;
 
        typedef [public] struct {
-               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags))] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->flags))] uint32 __ndr_size;
                [value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
                GUID guid;
                dom_sid28 sid;
@@ -604,7 +604,7 @@ interface drsuapi
                drsuapi_DsExtendedError extended_ret; /* w2k sends the nc_object_count value here */
                uint32 object_count;
                /* this +55 is sometimes +56, so I don't know where this comes from... --metze */
-               [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size;
                drsuapi_DsReplicaObjectListItemEx *first_object;
                boolean32 more_data;
        } drsuapi_DsGetNCChangesCtr1;
@@ -638,7 +638,7 @@ interface drsuapi
                drsuapi_DsExtendedError extended_ret;
                uint32 object_count;
                /* this +55 is sometimes +56, so I don't know where this comes from... --metze */
-               [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;
+               [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size;
                drsuapi_DsReplicaObjectListItemEx *first_object;
                boolean32 more_data;
                uint32 nc_object_count; /* estimated amount of objects in the whole NC */
index 3d9113892bf17c8f14f10944c95d0dcfca9f8076..25b9517a8eac0f30130442bdaf69681e7de87f1b 100644 (file)
@@ -216,7 +216,7 @@ interface epmapper
        } epm_tower;
 
        typedef struct {
-               [value(ndr_size_epm_tower(&tower, ndr->iconv_convenience, ndr->flags))] uint32  tower_length;
+               [value(ndr_size_epm_tower(&tower, ndr->flags))] uint32  tower_length;
                [subcontext(4)] epm_tower tower;
        } epm_twr_t;
 
index 996c375aa87b50de3f469e3876ea483446761628..e85042c27c58193592f3e6e27a391cd0e5ae15bf 100644 (file)
@@ -338,7 +338,7 @@ interface frsrpc
                [value(1)] uint32 cs_id;
                [value(pkt_len+12)] uint32 memory_len;
                [value(ndr_size_frsrpc_CommPktChunkCtr(r->ctr,
-                       ndr->iconv_convenience, ndr->flags))]
+                       ndr->flags))]
                [range(0, 262144)]
                        uint32 pkt_len;
                [value(0)] uint32 upk_len;
index 43db989327373755b4d93594e3264fd8adf36ef5..e2928515ba2f4de18029a364e1f2a8ec703666bb 100644 (file)
@@ -48,7 +48,7 @@ interface named_pipe_auth
 
        typedef [public,gensize] struct {
                [flag(NDR_BIG_ENDIAN),
-                value(ndr_size_named_pipe_auth_req(r,ndr->iconv_convenience,ndr->flags)-4)]
+                value(ndr_size_named_pipe_auth_req(r,ndr->flags)-4)]
                        uint32 length;
                [charset(DOS),value(NAMED_PIPE_AUTH_MAGIC)] uint8 magic[4];
                uint32 level;
@@ -76,7 +76,7 @@ interface named_pipe_auth
 
        typedef [public,gensize] struct {
                [flag(NDR_BIG_ENDIAN),
-                value(ndr_size_named_pipe_auth_rep(r,ndr->iconv_convenience,ndr->flags)-4)]
+                value(ndr_size_named_pipe_auth_rep(r,ndr->flags)-4)]
                        uint32 length;
                [charset(DOS),value(NAMED_PIPE_AUTH_MAGIC)] uint8 magic[4];
                uint32 level;
index 6d9f9b555788d4cf8b9cb954e5132a05f8875fa7..897abb26e4ef0ab6e50bedf21769f33af9db99ae 100644 (file)
@@ -458,7 +458,7 @@ interface nbt
                nbt_string           client_site;
 
                /* Optional on NETLOGON_NT_VERSION_5EX_WITH_IP */
-               [value(ndr_size_nbt_sockaddr(&sockaddr, ndr->iconv_convenience, ndr->flags))] uint8 sockaddr_size;
+               [value(ndr_size_nbt_sockaddr(&sockaddr, ndr->flags))] uint8 sockaddr_size;
                [subcontext(0),subcontext_size(sockaddr_size)] nbt_sockaddr sockaddr;
 
                /* Optional on NETLOGON_NT_VERSION_WITH_CLOSEST_SITE */
index d66b2194ca2989bfcf1d9f18e25eb1908d3031cf..4bebb833742d8ca0761b3ff1605b3bf61e25b762 100644 (file)
@@ -1056,7 +1056,7 @@ interface netlogon
                [in]     [subcontext(4)/*,subcontext_size(change_log_entry_size)*/]
                        netr_ChangeLogEntry change_log_entry,
                [in]     [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,
-                               ndr->iconv_convenience, ndr->flags))]
+                               ndr->flags))]
                        uint32 change_log_entry_size,
                [out,ref]    netr_DELTA_ENUM_ARRAY **delta_enum_array
                );
index 8cabec33daffacb98121a54dd21db9dff45eecc1..1227952ff2d8974c4d91742e2323dac557983c2e 100644 (file)
@@ -162,7 +162,7 @@ interface ntlmssp
 
        typedef [public,flag(NDR_NOALIGN)] struct {
                ntlmssp_AvId AvId;
-               [value(ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, ndr->iconv_convenience, 0))] uint16 AvLen;
+               [value(ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, 0))] uint16 AvLen;
                [subcontext(0),subcontext_size(AvLen),switch_is(AvId)] ntlmssp_AvValue Value;
        } AV_PAIR;
 
@@ -182,7 +182,7 @@ interface ntlmssp
                NEGOTIATE NegotiateFlags;
                uint8 ServerChallenge[8];
                uint8 Reserved[8];
-               [value(ndr_size_AV_PAIR_LIST(TargetInfo, ndr->iconv_convenience, ndr->flags))] uint16 TargetInfoLen;
+               [value(ndr_size_AV_PAIR_LIST(TargetInfo, ndr->flags))] uint16 TargetInfoLen;
                [value(TargetInfoLen)] uint16 TargetNameInfoMaxLen;
                [relative] [subcontext(0),subcontext_size(TargetInfoLen)] AV_PAIR_LIST *TargetInfo;
                [switch_is(NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version;
index 740a928d87fc8901de9028ce34ebe1160db9d350..fb1dc0dcc045f8c8c16b7a82b2997385655fea38 100644 (file)
@@ -405,7 +405,7 @@ interface security
        typedef [public,nopull,gensize,nosize] struct {
                security_ace_type type;  /* SEC_ACE_TYPE_* */
                security_ace_flags flags; /* SEC_ACE_FLAG_* */
-               [value(ndr_size_security_ace(r,ndr->iconv_convenience,ndr->flags))] uint16 size;
+               [value(ndr_size_security_ace(r,ndr->flags))] uint16 size;
                uint32 access_mask;
                [switch_is(type)] security_ace_object_ctr object;
                dom_sid trustee;
@@ -420,7 +420,7 @@ interface security
 
        typedef [public,gensize,nosize] struct {
                security_acl_revision revision;
-               [value(ndr_size_security_acl(r,ndr->iconv_convenience,ndr->flags))] uint16 size;
+               [value(ndr_size_security_acl(r,ndr->flags))] uint16 size;
                [range(0,1000)] uint32 num_aces;
                security_ace aces[num_aces];
        } security_acl;
@@ -462,7 +462,7 @@ interface security
        } security_descriptor;
 
        typedef [public] struct {
-               [range(0,0x40000),value(ndr_size_security_descriptor(sd,ndr->iconv_convenience,ndr->flags))] uint32 sd_size;
+               [range(0,0x40000),value(ndr_size_security_descriptor(sd,ndr->flags))] uint32 sd_size;
                [subcontext(4)] security_descriptor *sd;
        } sec_desc_buf;
 
index c7df80d7ce9e27c4c1531ad082cb9f469776c186..028015b6967e90ed8951e7626eb649004c29ccb9 100644 (file)
@@ -29,7 +29,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
        } spoolss_Time;
 
        typedef struct {
-               [value(ndr_size_spoolss_Time(time, ndr->iconv_convenience, ndr->flags))] uint32 size;
+               [value(ndr_size_spoolss_Time(time, ndr->flags))] uint32 size;
                [unique] spoolss_Time *time;
        } spoolss_TimeCtr;
 
@@ -333,7 +333,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                uint16 caColorfulness;
                uint16 caRedGreenTint;
                uint16 wCoreJTExpSize;
-               [value(ndr_size_spoolss_PSDRVEXTRA(r, ndr->iconv_convenience, ndr->flags) + wCoreJTExpSize)] uint16 wCoreFullSize;
+               [value(ndr_size_spoolss_PSDRVEXTRA(r, ndr->flags) + wCoreJTExpSize)] uint16 wCoreFullSize;
                uint32 fxScrFreq;
                uint32 fxScrAngle;
                spoolss_DMPS_Dialect iDialect;
@@ -404,7 +404,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] spoolss_DM_Signature dwSignature;
                [value(0x0022)] uint16 wVer;
                uint16 wCoreJTExpSize;
-               [value(ndr_size_spoolss_UNIDRVEXTRA(r, ndr->iconv_convenience, ndr->flags) + wCoreJTExpSize)] uint16 wCoreFullSize;
+               [value(ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + wCoreJTExpSize)] uint16 wCoreFullSize;
                uint16 wOEMExtra;
                uint32 dwChecksum32;
                spoolss_DMUNI_Flags dwFlags;
@@ -884,7 +884,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
        /******************/
        /* Function: 0x01 */
        typedef struct {
-               [value(_ndr_size_spoolss_DeviceMode(devmode, ndr->iconv_convenience, ndr->flags))] uint32 _ndr_size;
+               [value(_ndr_size_spoolss_DeviceMode(devmode, ndr->flags))] uint32 _ndr_size;
                [subcontext(4),subcontext_size(_ndr_size)] spoolss_DeviceMode *devmode;
        } spoolss_DevmodeContainer;
 
@@ -1291,7 +1291,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
        /* Function: 0x09 */
 
        typedef [public] struct {
-               [value((ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags)-4)/2)] uint32 _ndr_size;
+               [value((ndr_size_spoolss_StringArray(r, ndr->flags)-4)/2)] uint32 _ndr_size;
                /*[subcontext(0),subcontext_size(_ndr_size*2)]*/ nstring_array string;
        } spoolss_StringArray;
 
@@ -1325,7 +1325,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [string,charset(UTF16)] uint16 *help_file;
                [string,charset(UTF16)] uint16 *monitor_name;
                [string,charset(UTF16)] uint16 *default_datatype;
-               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
                spoolss_StringArray *dependent_files;
        } spoolss_AddDriverInfo3;
 
@@ -1339,9 +1339,9 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [string,charset(UTF16)] uint16 *help_file;
                [string,charset(UTF16)] uint16 *monitor_name;
                [string,charset(UTF16)] uint16 *default_datatype;
-               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
                spoolss_StringArray *dependent_files;
-               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
+               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
                spoolss_StringArray *previous_names;
        } spoolss_AddDriverInfo4;
 
@@ -1371,9 +1371,9 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [string,charset(UTF16)] uint16 *help_file;
                [string,charset(UTF16)] uint16 *monitor_name;
                [string,charset(UTF16)] uint16 *default_datatype;
-               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
                spoolss_StringArray *dependent_files;
-               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
+               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
                spoolss_StringArray *previous_names;
                NTTIME driver_date;
                hyper driver_version;
@@ -1393,9 +1393,9 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [string,charset(UTF16)] uint16 *help_file;
                [string,charset(UTF16)] uint16 *monitor_name;
                [string,charset(UTF16)] uint16 *default_datatype;
-               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
+               [value(((ndr_size_spoolss_StringArray(dependent_files, ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files;
                spoolss_StringArray *dependent_files;
-               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
+               [value(((ndr_size_spoolss_StringArray(previous_names, ndr->flags)-4)/2))] uint32 _ndr_size_previous_names;
                spoolss_StringArray *previous_names;
                NTTIME driver_date;
                hyper driver_version;
@@ -1405,11 +1405,11 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
                [string,charset(UTF16)] uint16 *provider;
                [string,charset(UTF16)] uint16 *print_processor;
                [string,charset(UTF16)] uint16 *vendor_setup;
-               [value(((ndr_size_spoolss_StringArray(color_profiles, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_color_profiles;
+               [value(((ndr_size_spoolss_StringArray(color_profiles, ndr->flags)-4)/2))] uint32 _ndr_size_color_profiles;
                spoolss_StringArray *color_profiles;
                [string,charset(UTF16)] uint16 *inf_path;
                uint32 printer_driver_attributes;
-               [value(((ndr_size_spoolss_StringArray(core_driver_dependencies, ndr->iconv_convenience, ndr->flags)-4)/2))] uint32 _ndr_size_core_driver_dependencies;
+               [value(((ndr_size_spoolss_StringArray(core_driver_dependencies, ndr->flags)-4)/2))] uint32 _ndr_size_core_driver_dependencies;
                spoolss_StringArray *core_driver_dependencies;
                NTTIME min_inbox_driver_ver_date;
                hyper min_inbox_driver_ver_version;
@@ -1826,7 +1826,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
        const string SPOOLSS_DEFAULT_SERVER_PATH                = "C:\\WINDOWS\\system32\\spool";
 
        typedef [public,gensize] struct {
-               [value(ndr_size_spoolss_OSVersion(r,ndr->iconv_convenience,ndr->flags))] uint32 _ndr_size;
+               [value(ndr_size_spoolss_OSVersion(r,ndr->flags))] uint32 _ndr_size;
                uint32 major;
                uint32 minor;
                uint32 build;
@@ -1835,7 +1835,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
        } spoolss_OSVersion;
 
        typedef [public,gensize] struct {
-               [value(ndr_size_spoolss_OSVersionEx(r,ndr->iconv_convenience,ndr->flags))] uint32 _ndr_size;
+               [value(ndr_size_spoolss_OSVersionEx(r,ndr->flags))] uint32 _ndr_size;
                uint32 major;
                uint32 minor;
                uint32 build;
index 72e8d21ba40a40836ef4ff1eabcf431a4c275ed6..133a119069cb59eb006e1e09459cbc1fce4404f2 100644 (file)
@@ -60,8 +60,6 @@ struct ndr_pull {
        uint32_t data_size;
        uint32_t offset;
 
-       struct smb_iconv_convenience *iconv_convenience;
-
        uint32_t relative_highest_offset;
        uint32_t relative_base_offset;
        struct ndr_token_list *relative_base_list;
@@ -97,8 +95,6 @@ struct ndr_push {
 
        /* this is used to ensure we generate unique reference IDs */
        uint32_t ptr_count;
-
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 /* structure passed to functions that print IDL structures */
@@ -106,7 +102,6 @@ struct ndr_print {
        uint32_t flags; /* LIBNDR_FLAG_* */
        uint32_t depth;
        struct ndr_token_list *switch_list;
-       struct smb_iconv_convenience *iconv_convenience;
        void (*print)(struct ndr_print *, const char *, ...) PRINTF_ATTRIBUTE(2,3);
        void *private_data;
 };
@@ -381,10 +376,10 @@ size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags);
 void ndr_print_ipv4_addr(struct ndr_print *ndr, const char *name, const struct in_addr *_ip);
 void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid);
 bool ndr_syntax_id_equal(const struct ndr_syntax_id *i1, const struct ndr_syntax_id *i2); 
-enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const void *p, ndr_push_flags_fn_t fn);
-enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_push_flags_fn_t fn);
-size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push, struct smb_iconv_convenience *);
-size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push, struct smb_iconv_convenience *);
+enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, const void *p, ndr_push_flags_fn_t fn);
+enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, uint32_t level, ndr_push_flags_fn_t fn);
+size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push);
+size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push);
 uint32_t ndr_push_get_relative_base_offset(struct ndr_push *ndr);
 void ndr_push_restore_relative_base_offset(struct ndr_push *ndr, uint32_t offset);
 enum ndr_err_code ndr_push_setup_relative_base_offset1(struct ndr_push *ndr, const void *p, uint32_t offset);
@@ -402,9 +397,9 @@ enum ndr_err_code ndr_pull_relative_ptr1(struct ndr_pull *ndr, const void *p, ui
 enum ndr_err_code ndr_pull_relative_ptr2(struct ndr_pull *ndr, const void *p);
 enum ndr_err_code ndr_pull_relative_ptr_short(struct ndr_pull *ndr, uint16_t *v);
 size_t ndr_align_size(uint32_t offset, size_t n);
-struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience);
+struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
 enum ndr_err_code ndr_pull_advance(struct ndr_pull *ndr, uint32_t size);
-struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience);
+struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx);
 DATA_BLOB ndr_push_blob(struct ndr_push *ndr);
 enum ndr_err_code ndr_push_expand(struct ndr_push *ndr, uint32_t extra_size);
 void ndr_print_debug_helper(struct ndr_print *ndr, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
@@ -459,10 +454,10 @@ enum ndr_err_code ndr_print_set_switch_value(struct ndr_print *ndr, const void *
 uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p);
 uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p);
 uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p);
-enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, ndr_pull_flags_fn_t fn);
-enum ndr_err_code ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, ndr_pull_flags_fn_t fn);
-enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
-enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
+enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p, uint32_t level, ndr_pull_flags_fn_t fn);
 
 /* from libndr_basic.h */
 #define NDR_SCALAR_PROTO(name, type) \
index 90be787526f293456e1c36ebc36396a1d93b396f..1600d51c1c0791b07be13d536fbd493192e22eb5 100644 (file)
@@ -58,7 +58,7 @@ _PUBLIC_ size_t ndr_align_size(uint32_t offset, size_t n)
 /*
   initialise a ndr parse structure from a data blob
 */
-_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience)
+_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
 {
        struct ndr_pull *ndr;
 
@@ -68,7 +68,6 @@ _PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *
 
        ndr->data = blob->data;
        ndr->data_size = blob->length;
-       ndr->iconv_convenience = talloc_reference(ndr, iconv_convenience);
 
        return ndr;
 }
@@ -102,7 +101,7 @@ static enum ndr_err_code ndr_pull_set_offset(struct ndr_pull *ndr, uint32_t ofs)
 }
 
 /* create a ndr_push structure, ready for some marshalling */
-_PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience)
+_PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx)
 {
        struct ndr_push *ndr;
 
@@ -117,7 +116,6 @@ _PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx, struct smb_icon
        if (!ndr->data) {
                return NULL;
        }
-       ndr->iconv_convenience = talloc_reference(ndr, iconv_convenience);
 
        return ndr;
 }
@@ -256,14 +254,6 @@ _PUBLIC_ void ndr_print_function_debug(ndr_print_function_t fn, const char *name
        ndr->depth = 1;
        ndr->flags = 0;
 
-       /* this is a s4 hack until we build up the courage to pass
-        * this all the way down 
-        */
-#if _SAMBA_BUILD_ == 4
-       ndr->iconv_convenience = smb_iconv_convenience_reinit(talloc_autofree_context(),
-                                                             "ASCII", "UTF-8", true, NULL);
-#endif
-
        fn(ndr, name, flags, ptr);
        talloc_free(ndr);
 }
@@ -286,14 +276,6 @@ _PUBLIC_ char *ndr_print_struct_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, c
        ndr->depth = 1;
        ndr->flags = 0;
 
-       /* this is a s4 hack until we build up the courage to pass
-        * this all the way down 
-        */
-#if _SAMBA_BUILD_ == 4
-       ndr->iconv_convenience = smb_iconv_convenience_reinit(talloc_autofree_context(),
-                                                             "ASCII", "UTF-8", true, NULL);
-#endif
-
        fn(ndr, name, ptr);
        ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
@@ -555,7 +537,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_subcontext_start(struct ndr_pull *ndr,
        subndr->data = ndr->data + ndr->offset;
        subndr->offset = 0;
        subndr->data_size = r_content_size;
-       subndr->iconv_convenience = talloc_reference(subndr, ndr->iconv_convenience);
 
        if (force_le) {
                ndr_set_flags(&ndr->flags, LIBNDR_FLAG_LITTLE_ENDIAN);
@@ -591,7 +572,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_subcontext_start(struct ndr_push *ndr,
 {
        struct ndr_push *subndr;
 
-       subndr = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
+       subndr = ndr_push_init_ctx(ndr);
        NDR_ERR_HAVE_NO_MEMORY(subndr);
        subndr->flags   = ndr->flags & ~LIBNDR_FLAG_NDR64;
 
@@ -852,11 +833,11 @@ _PUBLIC_ uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *
 /*
   pull a struct from a blob using NDR
 */
-_PUBLIC_ enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p,
+_PUBLIC_ enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
                              ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
-       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
+       ndr = ndr_pull_init_blob(blob, mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK_FREE(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
        talloc_free(ndr);
@@ -867,12 +848,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob, TALLOC_CT
   pull a struct from a blob using NDR - failing if all bytes are not consumed
 */
 _PUBLIC_ enum ndr_err_code ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, 
-                                                   struct smb_iconv_convenience *iconv_convenience,
                                                    void *p, ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
        uint32_t highest_ofs;
-       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
+       ndr = ndr_pull_init_blob(blob, mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK_FREE(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
        if (ndr->offset > ndr->relative_highest_offset) {
@@ -896,11 +876,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_struct_blob_all(const DATA_BLOB *blob, TALLO
   pull a union from a blob using NDR, given the union discriminator
 */
 _PUBLIC_ enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, 
-                                              struct smb_iconv_convenience *iconv_convenience, void *p,
+                                              void *p,
                             uint32_t level, ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
-       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
+       ndr = ndr_pull_init_blob(blob, mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK_FREE(ndr_pull_set_switch_value(ndr, p, level));
        NDR_CHECK_FREE(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
@@ -913,12 +893,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX
   failing if all bytes are not consumed
 */
 _PUBLIC_ enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, 
-                                                  struct smb_iconv_convenience *iconv_convenience, void *p,
+                                                  void *p,
                             uint32_t level, ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
        uint32_t highest_ofs;
-       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
+       ndr = ndr_pull_init_blob(blob, mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK_FREE(ndr_pull_set_switch_value(ndr, p, level));
        NDR_CHECK_FREE(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
@@ -942,10 +922,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC
 /*
   push a struct to a blob using NDR
 */
-_PUBLIC_ enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const void *p, ndr_push_flags_fn_t fn)
+_PUBLIC_ enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, const void *p, ndr_push_flags_fn_t fn)
 {
        struct ndr_push *ndr;
-       ndr = ndr_push_init_ctx(mem_ctx, iconv_convenience);
+       ndr = ndr_push_init_ctx(mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
 
        NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
@@ -960,11 +940,11 @@ _PUBLIC_ enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem
 /*
   push a union to a blob using NDR
 */
-_PUBLIC_ enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, void *p,
+_PUBLIC_ enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
                             uint32_t level, ndr_push_flags_fn_t fn)
 {
        struct ndr_push *ndr;
-       ndr = ndr_push_init_ctx(mem_ctx, iconv_convenience);
+       ndr = ndr_push_init_ctx(mem_ctx);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
 
        NDR_CHECK(ndr_push_set_switch_value(ndr, p, level));
@@ -980,7 +960,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_
 /*
   generic ndr_size_*() handler for structures
 */
-_PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push, struct smb_iconv_convenience *iconv_convenience)
+_PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t push)
 {
        struct ndr_push *ndr;
        enum ndr_err_code status;
@@ -989,7 +969,7 @@ _PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t pu
        /* avoid recursion */
        if (flags & LIBNDR_FLAG_NO_NDR_SIZE) return 0;
 
-       ndr = ndr_push_init_ctx(NULL, iconv_convenience);
+       ndr = ndr_push_init_ctx(NULL);
        if (!ndr) return 0;
        ndr->flags |= flags | LIBNDR_FLAG_NO_NDR_SIZE;
        status = push(ndr, NDR_SCALARS|NDR_BUFFERS, discard_const(p));
@@ -1005,7 +985,7 @@ _PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t pu
 /*
   generic ndr_size_*() handler for unions
 */
-_PUBLIC_ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push, struct smb_iconv_convenience *iconv_convenience)
+_PUBLIC_ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_push_flags_fn_t push)
 {
        struct ndr_push *ndr;
        enum ndr_err_code status;
@@ -1014,7 +994,7 @@ _PUBLIC_ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_pus
        /* avoid recursion */
        if (flags & LIBNDR_FLAG_NO_NDR_SIZE) return 0;
 
-       ndr = ndr_push_init_ctx(NULL, iconv_convenience);
+       ndr = ndr_push_init_ctx(NULL);
        if (!ndr) return 0;
        ndr->flags |= flags | LIBNDR_FLAG_NO_NDR_SIZE;
 
index c73c3bb6faf7c8bd82e60d40fafc6694d3db3fb4..d291df5ad8c96aaf2f10ff82bf7f31ebce152d44 100644 (file)
@@ -391,7 +391,7 @@ enum ndr_err_code ndr_pull_compression_start(struct ndr_pull *subndr,
        bool last = false;
        z_stream z;
 
-       ndrpush = ndr_push_init_ctx(subndr, subndr->iconv_convenience);
+       ndrpush = ndr_push_init_ctx(subndr);
        NDR_ERR_HAVE_NO_MEMORY(ndrpush);
 
        switch (compression_alg) {
@@ -431,8 +431,6 @@ enum ndr_err_code ndr_pull_compression_start(struct ndr_pull *subndr,
        comndr->data_size       = uncompressed.length;
        comndr->offset          = 0;
 
-       comndr->iconv_convenience = talloc_reference(comndr, subndr->iconv_convenience);
-
        *_comndr = comndr;
        return NDR_ERR_SUCCESS;
 }
@@ -465,7 +463,7 @@ enum ndr_err_code ndr_push_compression_start(struct ndr_push *subndr,
                                      compression_alg);
        }
 
-       uncomndr = ndr_push_init_ctx(subndr, subndr->iconv_convenience);
+       uncomndr = ndr_push_init_ctx(subndr);
        NDR_ERR_HAVE_NO_MEMORY(uncomndr);
        uncomndr->flags = subndr->flags;
 
@@ -492,8 +490,6 @@ enum ndr_err_code ndr_push_compression_end(struct ndr_push *subndr,
        ndrpull->data_size      = uncomndr->offset;
        ndrpull->offset         = 0;
 
-       ndrpull->iconv_convenience = talloc_reference(ndrpull, subndr->iconv_convenience);
-
        switch (compression_alg) {
        case NDR_COMPRESSION_MSZIP:
                ZERO_STRUCT(z);
index e9888fdf858ead4b7577d76f7fde552f94ffb8ac..0cc3e5236c8093865a995393a2c464b90247e421 100644 (file)
@@ -258,9 +258,9 @@ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_push *ndr
        return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, struct smb_iconv_convenience *ic, int flags)
+_PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, int flags)
 {
-       return ndr_size_struct((const struct drsuapi_DsReplicaObjectIdentifier3 *)r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3, ic);
+       return ndr_size_struct((const struct drsuapi_DsReplicaObjectIdentifier3 *)r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
 }
 
 _PUBLIC_ void ndr_print_drsuapi_SecBufferType(struct ndr_print *ndr, const char *name, enum drsuapi_SecBufferType r)
index 43c6c18bd70cf9ccf2e0c23df9cede7e155458dc..9d1d371b60de6deab96505b6df605451c0904156 100644 (file)
@@ -28,7 +28,7 @@ void ndr_print_drsuapi_DsReplicaObjectListItem(struct ndr_print *ndr, const char
 void ndr_print_drsuapi_DsReplicaObjectListItemEx(struct ndr_print *ndr, const char *name,
                                                 const struct drsuapi_DsReplicaObjectListItemEx *r);
 
-size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, struct smb_iconv_convenience *ic, int flags);
+size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary *r, int flags);
 
 
 #endif /* _LIBRPC_NDR_NDR_DRSUAPI_H */
index e0c7f1cd757257d227c38af6ee8b4198d4d8c9a7..96d34687bc1f3bcf48858010b2792c0f3fc017d3 100644 (file)
@@ -84,11 +84,9 @@ enum ndr_err_code ndr_pull_frsrpc_CommPktChunkCtr(struct ndr_pull *ndr,
 }
 
 size_t ndr_size_frsrpc_CommPktChunkCtr(const struct frsrpc_CommPktChunkCtr *r,
-                                      struct smb_iconv_convenience *ic,
                                       int flags)
 {
        flags |= LIBNDR_FLAG_NOALIGN;
        return ndr_size_struct(r, flags,
-                       (ndr_push_flags_fn_t)ndr_push_frsrpc_CommPktChunkCtr,
-                       ic);
+                       (ndr_push_flags_fn_t)ndr_push_frsrpc_CommPktChunkCtr);
 }
index e8dc76959b950ccb79bbb02fcfdbcd6e1410fb7e..9e5ac92d6cbc389388b9bb6562f97cd7c63e0927 100644 (file)
@@ -29,7 +29,6 @@ enum ndr_err_code ndr_pull_frsrpc_CommPktChunkCtr(struct ndr_pull *ndr,
                                        int ndr_flags,
                                        struct frsrpc_CommPktChunkCtr *r);
 size_t ndr_size_frsrpc_CommPktChunkCtr(const struct frsrpc_CommPktChunkCtr *r,
-                                      struct smb_iconv_convenience *ic,
                                       int flags);
 
 #endif /* _LIBRPC_NDR_NDR_FRSRPC_H */
index 34a2ef88a7d6727882fae1c1c413545eb56b8339..237c0b65d4558c7b0ee30b766278fd9cdf5dd206 100644 (file)
@@ -23,9 +23,9 @@
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_krb5pac.h"
 
-static size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
+static size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags)
 {
-       size_t s = ndr_size_PAC_INFO(r, level, ic, flags);
+       size_t s = ndr_size_PAC_INFO(r, level, flags);
        switch (level) {
                case PAC_TYPE_LOGON_INFO:
                        return NDR_ROUND(s,8);
@@ -34,9 +34,9 @@ static size_t _ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, struct
        }
 }
 
-static size_t _subcontext_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
+static size_t _subcontext_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags)
 {
-       size_t s = ndr_size_PAC_INFO(r, level, ic, flags);
+       size_t s = ndr_size_PAC_INFO(r, level, flags);
        return NDR_ROUND(s,8);
 }
 
@@ -45,7 +45,7 @@ enum ndr_err_code ndr_push_PAC_BUFFER(struct ndr_push *ndr, int ndr_flags, const
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 4));
                NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_PAC_INFO(r->info,r->type,ndr->iconv_convenience,0)));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_PAC_INFO(r->info,r->type,0)));
                {
                        uint32_t _flags_save_PAC_INFO = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
@@ -62,10 +62,10 @@ enum ndr_err_code ndr_push_PAC_BUFFER(struct ndr_push *ndr, int ndr_flags, const
                                NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
                                {
                                        struct ndr_push *_ndr_info;
-                                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, _subcontext_size_PAC_INFO(r->info,r->type,ndr->iconv_convenience, 0)));
+                                       NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, _subcontext_size_PAC_INFO(r->info,r->type,0)));
                                        NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->info, r->type));
                                        NDR_CHECK(ndr_push_PAC_INFO(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->info));
-                                       NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, _subcontext_size_PAC_INFO(r->info,r->type,ndr->iconv_convenience,0)));
+                                       NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, _subcontext_size_PAC_INFO(r->info,r->type,0)));
                                }
                                NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
                        }
@@ -128,7 +128,7 @@ void ndr_print_PAC_BUFFER(struct ndr_print *ndr, const char *name, const struct
        ndr_print_struct(ndr, name, "PAC_BUFFER");
        ndr->depth++;
        ndr_print_PAC_TYPE(ndr, "type", r->type);
-       ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_PAC_INFO(r->info,r->type,ndr->iconv_convenience,0):r->_ndr_size);
+       ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_PAC_INFO(r->info,r->type,0):r->_ndr_size);
        ndr_print_ptr(ndr, "info", r->info);
        ndr->depth++;
        if (r->info) {
index 4808aa5f5f677cb2e5cf21bd6d44ebe7f6dda08e..02fc3c2cc7e51e887ec3aed868e74901348e180f 100644 (file)
@@ -108,7 +108,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_AV_PAIR_LIST(struct ndr_pull *ndr, int ndr_f
 }
 
 _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx,
-                                           struct smb_iconv_convenience *ic,
                                            const DATA_BLOB *nt_response,
                                            bool ntlmv2)
 {
@@ -117,7 +116,7 @@ _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx,
        if (ntlmv2) {
                struct NTLMv2_RESPONSE nt;
                if (nt_response->length > 24) {
-                       ndr_err = ndr_pull_struct_blob(nt_response, mem_ctx, ic, &nt,
+                       ndr_err = ndr_pull_struct_blob(nt_response, mem_ctx, &nt,
                                        (ndr_pull_flags_fn_t)ndr_pull_NTLMv2_RESPONSE);
                        if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                NDR_PRINT_DEBUG(NTLMv2_RESPONSE, &nt);
@@ -126,7 +125,7 @@ _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx,
        } else {
                struct NTLM_RESPONSE nt;
                if (nt_response->length == 24) {
-                       ndr_err = ndr_pull_struct_blob(nt_response, mem_ctx, ic, &nt,
+                       ndr_err = ndr_pull_struct_blob(nt_response, mem_ctx, &nt,
                                        (ndr_pull_flags_fn_t)ndr_pull_NTLM_RESPONSE);
                        if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                NDR_PRINT_DEBUG(NTLM_RESPONSE, &nt);
@@ -136,7 +135,6 @@ _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx,
 }
 
 _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx,
-                                           struct smb_iconv_convenience *ic,
                                            const DATA_BLOB *lm_response,
                                            bool ntlmv2)
 {
@@ -145,7 +143,7 @@ _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx,
        if (ntlmv2) {
                struct LMv2_RESPONSE lm;
                if (lm_response->length == 24) {
-                       ndr_err = ndr_pull_struct_blob(lm_response, mem_ctx, ic, &lm,
+                       ndr_err = ndr_pull_struct_blob(lm_response, mem_ctx, &lm,
                                        (ndr_pull_flags_fn_t)ndr_pull_LMv2_RESPONSE);
                        if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                NDR_PRINT_DEBUG(LMv2_RESPONSE, &lm);
@@ -154,7 +152,7 @@ _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx,
        } else {
                struct LM_RESPONSE lm;
                if (lm_response->length == 24) {
-                       ndr_err = ndr_pull_struct_blob(lm_response, mem_ctx, ic, &lm,
+                       ndr_err = ndr_pull_struct_blob(lm_response, mem_ctx, &lm,
                                        (ndr_pull_flags_fn_t)ndr_pull_LM_RESPONSE);
                        if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                NDR_PRINT_DEBUG(LM_RESPONSE, &lm);
index b574f154956e650df68a602a5110775aa554df3a..e07ff15cf6f1a2beec402135588584fef809f899 100644 (file)
@@ -24,11 +24,9 @@ _PUBLIC_ uint32_t ndr_ntlmssp_negotiated_string_flags(uint32_t negotiate_flags);
 _PUBLIC_ enum ndr_err_code ndr_push_AV_PAIR_LIST(struct ndr_push *ndr, int ndr_flags, const struct AV_PAIR_LIST *r);
 _PUBLIC_ enum ndr_err_code ndr_pull_AV_PAIR_LIST(struct ndr_pull *ndr, int ndr_flags, struct AV_PAIR_LIST *r);
 _PUBLIC_ void ndr_print_ntlmssp_nt_response(TALLOC_CTX *mem_ctx,
-                                           struct smb_iconv_convenience *ic,
                                            const DATA_BLOB *nt_response,
                                            bool ntlmv2);
 _PUBLIC_ void ndr_print_ntlmssp_lm_response(TALLOC_CTX *mem_ctx,
-                                           struct smb_iconv_convenience *ic,
                                            const DATA_BLOB *lm_response,
                                            bool ntlmv2);
 _PUBLIC_ void ndr_print_ntlmssp_Version(struct ndr_print *ndr, const char *name, const union ntlmssp_Version *r);
index b61042921157263513b87362ab2b68b955ec9bfb..9bbc628a29436cc58a43f94e5d244dfac339353c 100644 (file)
@@ -85,7 +85,7 @@ void dump_NL_AUTH_SIGNATURE(TALLOC_CTX *mem_ctx,
        switch (signature_algorithm) {
        case NL_SIGN_HMAC_MD5: {
                struct NL_AUTH_SIGNATURE r;
-               ndr_err = ndr_pull_struct_blob(blob, mem_ctx, NULL, &r,
+               ndr_err = ndr_pull_struct_blob(blob, mem_ctx, &r,
                       (ndr_pull_flags_fn_t)ndr_pull_NL_AUTH_SIGNATURE);
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        NDR_PRINT_DEBUG(NL_AUTH_SIGNATURE, &r);
@@ -94,7 +94,7 @@ void dump_NL_AUTH_SIGNATURE(TALLOC_CTX *mem_ctx,
        }
        case NL_SIGN_HMAC_SHA256: {
                struct NL_AUTH_SHA2_SIGNATURE r;
-               ndr_err = ndr_pull_struct_blob(blob, mem_ctx, NULL, &r,
+               ndr_err = ndr_pull_struct_blob(blob, mem_ctx, &r,
                       (ndr_pull_flags_fn_t)ndr_pull_NL_AUTH_SHA2_SIGNATURE);
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        NDR_PRINT_DEBUG(NL_AUTH_SHA2_SIGNATURE, &r);
index abc805c8efc99e7bb197f7766ad3924a22ba41b1..af6ca0936f05ba78e7b6afe42e224817dd186ac4 100644 (file)
 /*
   return the wire size of a security_ace
 */
-size_t ndr_size_security_ace(const struct security_ace *ace, struct smb_iconv_convenience *ic, int flags)
+size_t ndr_size_security_ace(const struct security_ace *ace, int flags)
 {
        size_t ret;
 
        if (!ace) return 0;
 
-       ret = 8 + ndr_size_dom_sid(&ace->trustee, ic, flags);
+       ret = 8 + ndr_size_dom_sid(&ace->trustee, flags);
 
        switch (ace->type) {
        case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT:
@@ -91,14 +91,14 @@ enum ndr_err_code ndr_pull_security_ace(struct ndr_pull *ndr, int ndr_flags, str
 /*
   return the wire size of a security_acl
 */
-size_t ndr_size_security_acl(const struct security_acl *theacl, struct smb_iconv_convenience *ic, int flags)
+size_t ndr_size_security_acl(const struct security_acl *theacl, int flags)
 {
        size_t ret;
        int i;
        if (!theacl) return 0;
        ret = 8;
        for (i=0;i<theacl->num_aces;i++) {
-               ret += ndr_size_security_ace(&theacl->aces[i], ic, flags);
+               ret += ndr_size_security_ace(&theacl->aces[i], flags);
        }
        return ret;
 }
@@ -106,23 +106,23 @@ size_t ndr_size_security_acl(const struct security_acl *theacl, struct smb_iconv
 /*
   return the wire size of a security descriptor
 */
-size_t ndr_size_security_descriptor(const struct security_descriptor *sd, struct smb_iconv_convenience *ic, int flags)
+size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int flags)
 {
        size_t ret;
        if (!sd) return 0;
        
        ret = 20;
-       ret += ndr_size_dom_sid(sd->owner_sid, ic, flags);
-       ret += ndr_size_dom_sid(sd->group_sid, ic, flags);
-       ret += ndr_size_security_acl(sd->dacl, ic, flags);
-       ret += ndr_size_security_acl(sd->sacl, ic, flags);
+       ret += ndr_size_dom_sid(sd->owner_sid, flags);
+       ret += ndr_size_dom_sid(sd->group_sid, flags);
+       ret += ndr_size_security_acl(sd->dacl, flags);
+       ret += ndr_size_security_acl(sd->sacl, flags);
        return ret;
 }
 
 /*
   return the wire size of a dom_sid
 */
-size_t ndr_size_dom_sid(const struct dom_sid *sid, struct smb_iconv_convenience *ic, int flags)
+size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
 {
        if (!sid) return 0;
        return 8 + 4*sid->num_auths;
index e15591633dcb4b5b845bcb1f0dc0183d8e81b017..2fd9d95d2b99293326c3c2691098f84f1f31df21 100644 (file)
@@ -60,7 +60,7 @@
        }\
        if (r->in.buffer) {\
                DATA_BLOB _data_blob_info;\
-               _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);\
+               _ndr_info = ndr_push_init_ctx(ndr);\
                NDR_ERR_HAVE_NO_MEMORY(_ndr_info);\
                _ndr_info->flags= ndr->flags;\
                if (r->out.info) {\
        if (_r.out.info) {\
                struct ndr_pull *_ndr_info;\
                NDR_PULL_ALLOC(ndr, *r->out.info);\
-               _ndr_info = ndr_pull_init_blob(_r.out.info, *r->out.info, ndr->iconv_convenience);\
+               _ndr_info = ndr_pull_init_blob(_r.out.info, *r->out.info);\
                NDR_ERR_HAVE_NO_MEMORY(_ndr_info);\
                _ndr_info->flags= ndr->flags;\
                if (r->in.offered != _ndr_info->data_size) {\
 #define NDR_SPOOLSS_SIZE_ENUM_LEVEL(fn) do { \
        struct __##fn __r;\
        DATA_BLOB _data_blob_info;\
-       struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx, iconv_convenience);\
+       struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx);\
        if (!_ndr_info) return 0;\
        _ndr_info->flags|=LIBNDR_FLAG_NO_NDR_SIZE;\
        __r.in.level    = level;\
 #define NDR_SPOOLSS_SIZE_ENUM(fn) do { \
        struct __##fn __r;\
        DATA_BLOB _data_blob_info;\
-       struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx, iconv_convenience);\
+       struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx);\
        if (!_ndr_info) return 0;\
        _ndr_info->flags|=LIBNDR_FLAG_NO_NDR_SIZE;\
        __r.in.count    = count;\
@@ -234,7 +234,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinters(struct ndr_pull *ndr, int flags,
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPrinters_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_PrinterInfo *info)
+uint32_t ndr_size_spoolss_EnumPrinters_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PrinterInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumPrinters);
 }
@@ -270,7 +270,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumJobs(struct ndr_pull *ndr, int flags, str
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumJobs_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_JobInfo *info)
+uint32_t ndr_size_spoolss_EnumJobs_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_JobInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumJobs);
 }
@@ -302,7 +302,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPrinterDrivers_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_DriverInfo *info)
+uint32_t ndr_size_spoolss_EnumPrinterDrivers_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_DriverInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumPrinterDrivers);
 }
@@ -330,7 +330,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumForms(struct ndr_pull *ndr, int flags, st
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumForms_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_FormInfo *info)
+uint32_t ndr_size_spoolss_EnumForms_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_FormInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumForms);
 }
@@ -358,7 +358,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPorts(struct ndr_pull *ndr, int flags, st
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPorts_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_PortInfo *info)
+uint32_t ndr_size_spoolss_EnumPorts_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PortInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumPorts);
 }
@@ -386,7 +386,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumMonitors(struct ndr_pull *ndr, int flags,
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumMonitors_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_MonitorInfo *info)
+uint32_t ndr_size_spoolss_EnumMonitors_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_MonitorInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumMonitors);
 }
@@ -418,7 +418,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPrintProcessors_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrintProcessors_info(TALLOC_CTX *mem_ctx, 
                                                   uint32_t level, uint32_t count, union spoolss_PrintProcessorInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcessors);
@@ -451,7 +451,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr,
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPrintProcDataTypes_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrintProcDataTypes_info(TALLOC_CTX *mem_ctx, 
                                                      uint32_t level, uint32_t count, union spoolss_PrintProcDataTypesInfo *info)
 {
        NDR_SPOOLSS_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcDataTypes);
@@ -481,7 +481,7 @@ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int f
                _r.out.info     = data_blob(NULL, 0);
                if (r->in.offered >= *r->out.needed) {
                        struct __spoolss_EnumPrinterDataEx __r;
-                       _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
+                       _ndr_info = ndr_push_init_ctx(ndr);
                        NDR_ERR_HAVE_NO_MEMORY(_ndr_info);
                        _ndr_info->flags= ndr->flags;
                        __r.in.count    = *r->out.count;
@@ -531,7 +531,7 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int f
                if (_r.out.info.length) {
                        struct ndr_pull *_ndr_info;
                        NDR_PULL_ALLOC(ndr, *r->out.info);
-                       _ndr_info = ndr_pull_init_blob(&_r.out.info, *r->out.info, ndr->iconv_convenience);
+                       _ndr_info = ndr_pull_init_blob(&_r.out.info, *r->out.info);
                        NDR_ERR_HAVE_NO_MEMORY(_ndr_info);
                        _ndr_info->flags= ndr->flags;
                        if (r->in.offered != _ndr_info->data_size) {
@@ -551,25 +551,25 @@ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int f
        return NDR_ERR_SUCCESS;
 }
 
-uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx,
                                                 uint32_t count, struct spoolss_PrinterEnumValues *info)
 {
        NDR_SPOOLSS_SIZE_ENUM(spoolss_EnumPrinterDataEx);
 }
 
-uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags)
+uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, uint32_t flags)
 {
        if (!devmode) return 0;
-       return ndr_size_spoolss_DeviceMode(devmode,ic,flags);
+       return ndr_size_spoolss_DeviceMode(devmode, flags);
 }
 
-_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, struct smb_iconv_convenience *ic, int flags)
+_PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, int flags)
 {
        if (!r) {
                return 4;
        }
 
-       return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_StringArray, ic);
+       return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_StringArray);
 }
 
 /* hand marshall as pidl cannot (yet) generate a relative pointer to a fixed array of
@@ -1114,12 +1114,12 @@ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, const unio
        }
 }
 
-_PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
+_PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, int flags)
 {
        if (!r) {
                return 0;
        }
-       return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
+       return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData);
 }
 
 void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *name, const struct security_descriptor *r)
index 89dcb4617cbb38352aef56151a267c788753c6be..9db187dc7d9cace69f275a13da7019334eae069a 100644 (file)
 
 enum ndr_err_code ndr_push_spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinters *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinters *r);
-uint32_t ndr_size_spoolss_EnumPrinters_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_PrinterInfo *info);
+uint32_t ndr_size_spoolss_EnumPrinters_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PrinterInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct spoolss_EnumJobs *r);
 enum ndr_err_code ndr_pull_spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct spoolss_EnumJobs *r);
-uint32_t ndr_size_spoolss_EnumJobs_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_JobInfo *info);
+uint32_t ndr_size_spoolss_EnumJobs_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_JobInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDrivers *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDrivers *r);
-uint32_t ndr_size_spoolss_EnumPrinterDrivers_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_DriverInfo *info);
+uint32_t ndr_size_spoolss_EnumPrinterDrivers_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_DriverInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct spoolss_EnumForms *r);
 enum ndr_err_code ndr_pull_spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct spoolss_EnumForms *r);
-uint32_t ndr_size_spoolss_EnumForms_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_FormInfo *info);
+uint32_t ndr_size_spoolss_EnumForms_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_FormInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct spoolss_EnumPorts *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct spoolss_EnumPorts *r);
-uint32_t ndr_size_spoolss_EnumPorts_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_PortInfo *info);
+uint32_t ndr_size_spoolss_EnumPorts_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_PortInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct spoolss_EnumMonitors *r);
 enum ndr_err_code ndr_pull_spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct spoolss_EnumMonitors *r);
-uint32_t ndr_size_spoolss_EnumMonitors_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t level, uint32_t count, union spoolss_MonitorInfo *info);
+uint32_t ndr_size_spoolss_EnumMonitors_info(TALLOC_CTX *mem_ctx, uint32_t level, uint32_t count, union spoolss_MonitorInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcessors *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcessors *r);
-uint32_t ndr_size_spoolss_EnumPrintProcessors_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrintProcessors_info(TALLOC_CTX *mem_ctx, 
                                                   uint32_t level, uint32_t count, union spoolss_PrintProcessorInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r);
-uint32_t ndr_size_spoolss_EnumPrintProcDataTypes_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrintProcDataTypes_info(TALLOC_CTX *mem_ctx, 
                                                      uint32_t level, uint32_t count, union spoolss_PrintProcDataTypesInfo *info);
 enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r);
 enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r);
-uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience,
+uint32_t ndr_size_spoolss_EnumPrinterDataEx_info(TALLOC_CTX *mem_ctx, 
                                                 uint32_t count, struct spoolss_PrinterEnumValues *info);
-uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, struct smb_iconv_convenience *ic, uint32_t flags);
-size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, struct smb_iconv_convenience *ic, int flags);
+uint32_t _ndr_size_spoolss_DeviceMode(struct spoolss_DeviceMode *devmode, uint32_t flags);
+size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, int flags);
 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo101(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo101 *r);
 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo101(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo101 *r);
 void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, const union spoolss_Field *r);
-size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags);
+size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, int flags);
 void ndr_print_spoolss_security_descriptor(struct ndr_print *ndr, const char *name, const struct security_descriptor *r);
 enum ndr_err_code ndr_pull_spoolss_security_descriptor(struct ndr_pull *ndr, int ndr_flags, struct security_descriptor *r);
 enum ndr_err_code ndr_push_spoolss_security_descriptor(struct ndr_push *ndr, int ndr_flags, const struct security_descriptor *r);
index 1899afbbca616f8f81b5934a640f8a0de4b51028..5b6053167a80a55b3782389583690b854d3e6e39 100644 (file)
@@ -31,7 +31,7 @@
 _PUBLIC_ NTSTATUS GUID_to_ndr_blob(const struct GUID *guid, TALLOC_CTX *mem_ctx, DATA_BLOB *b)
 {
        enum ndr_err_code ndr_err;
-       ndr_err = ndr_push_struct_blob(b, mem_ctx, NULL, guid,
+       ndr_err = ndr_push_struct_blob(b, mem_ctx, guid,
                                       (ndr_push_flags_fn_t)ndr_push_GUID);
        return ndr_map_error2ntstatus(ndr_err);
 }
@@ -48,7 +48,7 @@ _PUBLIC_ NTSTATUS GUID_from_ndr_blob(const DATA_BLOB *b, struct GUID *guid)
        mem_ctx = talloc_new(NULL);
        NT_STATUS_HAVE_NO_MEMORY(mem_ctx);
 
-       ndr_err = ndr_pull_struct_blob_all(b, mem_ctx, NULL, guid,
+       ndr_err = ndr_pull_struct_blob_all(b, mem_ctx, guid,
                                           (ndr_pull_flags_fn_t)ndr_pull_GUID);
        talloc_free(mem_ctx);
        return ndr_map_error2ntstatus(ndr_err);
index e3edc67882dab995d353f22f5a54e1826cbdcd69..5e9bef8e7c370d464aa75ff82f4342cc8415104a 100644 (file)
@@ -376,7 +376,7 @@ _PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(const struct epm_floor *epm_floor,
        enum ndr_err_code ndr_err;
        uint16_t if_version=0;
 
-       ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx, NULL);
+       ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx);
        if (ndr == NULL) {
                talloc_free(mem_ctx);
                return NT_STATUS_NO_MEMORY;
@@ -405,7 +405,7 @@ _PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(const struct epm_floor *epm_floor,
 static DATA_BLOB dcerpc_floor_pack_lhs_data(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *syntax)
 {
        DATA_BLOB blob;
-       struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx, NULL);
+       struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx);
 
        ndr->flags |= LIBNDR_FLAG_NOALIGN;
 
@@ -421,7 +421,7 @@ static DATA_BLOB dcerpc_floor_pack_lhs_data(TALLOC_CTX *mem_ctx, const struct nd
 static DATA_BLOB dcerpc_floor_pack_rhs_if_version_data(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *syntax)
 {
        DATA_BLOB blob;
-       struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx, NULL);
+       struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx);
 
        ndr->flags |= LIBNDR_FLAG_NOALIGN;
 
index 9b4847e74a98b149f89b1fa291bde95af38b929f..6fc903fa323b043a69eece6bb625c7d210f4ffc6 100644 (file)
@@ -294,7 +294,7 @@ static void ndrdump_data(uint8_t *d, uint32_t l, bool force)
                blob.data = data;
                blob.length = size;
 
-               ndr_pull = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
+               ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
                ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
                if (assume_ndr64) {
                        ndr_pull->flags |= LIBNDR_FLAG_NDR64;
@@ -330,7 +330,7 @@ static void ndrdump_data(uint8_t *d, uint32_t l, bool force)
        blob.data = data;
        blob.length = size;
 
-       ndr_pull = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
+       ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
        ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
        if (assume_ndr64) {
                ndr_pull->flags |= LIBNDR_FLAG_NDR64;
@@ -372,7 +372,7 @@ static void ndrdump_data(uint8_t *d, uint32_t l, bool force)
                uint8_t byte_a, byte_b;
                bool differ;
 
-               ndr_v_push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
+               ndr_v_push = ndr_push_init_ctx(mem_ctx);
                
                ndr_err = f->ndr_push(ndr_v_push, flags, st);
                status = ndr_map_error2ntstatus(ndr_err);
@@ -389,7 +389,7 @@ static void ndrdump_data(uint8_t *d, uint32_t l, bool force)
                        ndrdump_data(v_blob.data, v_blob.length, dumpdata);
                }
 
-               ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
+               ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx);
                ndr_v_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
 
                ndr_err = f->ndr_pull(ndr_v_pull, flags, v_st);
index 4c23dfacd82d13401b0e32a1e57cd0a11d2d090a..83bca288edee8bc760cb82b5943cd48849031382 100644 (file)
@@ -1618,7 +1618,7 @@ sub ParseStructNdrSize($$$$)
        if (my $flags = has_property($t, "flag")) {
                $self->pidl("flags |= $flags;");
        }
-       $self->pidl("return ndr_size_struct($varname, flags, (ndr_push_flags_fn_t)ndr_push_$name, ic);");
+       $self->pidl("return ndr_size_struct($varname, flags, (ndr_push_flags_fn_t)ndr_push_$name);");
 }
 
 sub DeclStruct($$$$)
@@ -1630,7 +1630,7 @@ sub DeclStruct($$$$)
 sub ArgsStructNdrSize($$$)
 {
        my ($d, $name, $varname) = @_;
-       return "const struct $name *$varname, struct smb_iconv_convenience *ic, int flags";
+       return "const struct $name *$varname, int flags";
 }
 
 $typefamily{STRUCT} = {
@@ -1653,7 +1653,7 @@ sub ParseUnionNdrSize($$$)
                $self->pidl("flags |= $flags;");
        }
 
-       $self->pidl("return ndr_size_union($varname, flags, level, (ndr_push_flags_fn_t)ndr_push_$name, ic);");
+       $self->pidl("return ndr_size_union($varname, flags, level, (ndr_push_flags_fn_t)ndr_push_$name);");
 }
 
 sub ParseUnionPushPrimitives($$$$)
@@ -1941,7 +1941,7 @@ sub DeclUnion($$$$)
 sub ArgsUnionNdrSize($$)
 {
        my ($d,$name) = @_;
-       return "const union $name *r, uint32_t level, struct smb_iconv_convenience *ic, int flags";
+       return "const union $name *r, uint32_t level, int flags";
 }
 
 $typefamily{UNION} = {
index 226db078d6c39f12d2ffc2612c68e28de9173227..390ee275103a773cd1a332e32e6e0e940b8f8183 100644 (file)
@@ -253,7 +253,7 @@ sub PythonStruct($$$$$$)
                $self->pidl("$cname *object = ($cname *)py_talloc_get_ptr(py_obj);");
                $self->pidl("DATA_BLOB blob;");
                $self->pidl("enum ndr_err_code err;");
-               $self->pidl("err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), NULL, object, (ndr_push_flags_fn_t)ndr_push_$name);");
+               $self->pidl("err = ndr_push_struct_blob(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_$name);");
                $self->pidl("if (err != NDR_ERR_SUCCESS) {");
                $self->indent;
                $self->pidl("PyErr_SetNdrError(err);");
@@ -275,7 +275,7 @@ sub PythonStruct($$$$$$)
                $self->pidl("if (!PyArg_ParseTuple(args, \"s#:__ndr_unpack__\", &blob.data, &blob.length))");
                $self->pidl("\treturn NULL;");
                $self->pidl("");
-               $self->pidl("err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), NULL, object, (ndr_pull_flags_fn_t)ndr_pull_$name);");
+               $self->pidl("err = ndr_pull_struct_blob_all(&blob, py_talloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_$name);");
                $self->pidl("if (err != NDR_ERR_SUCCESS) {");
                $self->indent;
                $self->pidl("PyErr_SetNdrError(err);");
index e00dd01c8e26a63119828116f1fe453094855123..8e8b8ecbad6c46f4ff428549b67381f60f1dd307 100755 (executable)
@@ -14,8 +14,7 @@ test_samba4_ndr("string-pull-empty",
 '
        uint8_t data[] = { 0x00, 0x00, 0x00, 0x00 };
        DATA_BLOB b = { data, 4 };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL, 
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        r.in.data = NULL;
 
@@ -37,8 +36,7 @@ test_samba4_ndr("string-ascii-pull",
        uint8_t data[] = { 0x03, 0x00, 0x00, 0x00, 
                                           \'f\', \'o\', \'o\', 0 };
        DATA_BLOB b = { data, 8 };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL,
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        r.in.data = NULL;
 
@@ -74,8 +72,7 @@ test_samba4_ndr("string-wchar-fixed-array-01",
                           0x02,  0x00, 0x00,  0x00
        };
        DATA_BLOB b = { data, sizeof(data) };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL,
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        struct TestStringStruct str;
        r.in.str = &str;
@@ -120,8 +117,7 @@ test_samba4_ndr("string-wchar-fixed-array-02",
                           0x02,  0x00, 0x00,  0x00
        };
        DATA_BLOB b = { data, sizeof(data) };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL,
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        struct TestStringStruct str;
        r.in.str = &str;
@@ -152,8 +148,7 @@ test_samba4_ndr("string-wchar-fixed-array-03",
                           0x02,  0x00, 0x00,  0x00
        };
        DATA_BLOB b = { data, sizeof(data) };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL,
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        struct TestStringStruct str;
        r.in.str = &str;
@@ -174,8 +169,7 @@ test_samba4_ndr("string-out",
        uint8_t data[] = { 0x03, 0x00, 0x00, 0x00, 
                                           \'f\', \'o\', \'o\', 0 };
        DATA_BLOB b = { data, 8 };
-       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL,
-               smb_iconv_convenience_reinit(NULL, "ASCII", "UTF8", true, NULL));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL);
        struct TestString r;
        char *str = NULL;
        r.out.data = &str;
index 3e48d16805492ce392cc014241491cfc2afe0d70..132d37380f2d88b15deaedafdb04f15a261b5cdc 100644 (file)
@@ -601,7 +601,6 @@ typedef char fstring[FSTRING_LEN];
 
 /* Samba 3 doesn't use iconv_convenience: */
 extern void *cmdline_lp_ctx;
-struct smb_iconv_convenience *lp_iconv_convenience(void *lp_ctx);
 
 /* Lists, trees, caching, database... */
 #include "../lib/util/util.h"
index 6099ecf0e980e741fe544a962e15c5a54d53034e..eb9c63c5ac4d7e6eb5824899cabf554305a6b1c9 100644 (file)
@@ -1294,14 +1294,10 @@ struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid) ;
 /* The following definitions come from ..libcli/registry/util_reg.c  */
 
 const char *str_regtype(int type);
-bool push_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                DATA_BLOB *blob, const char *s);
-bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                      DATA_BLOB *blob, const char **a);
-bool pull_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                const DATA_BLOB *blob, const char **s);
-bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                      const DATA_BLOB *blob, const char ***a);
+bool push_reg_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *s);
+bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char **a);
+bool pull_reg_sz(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const char **s);
+bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const char ***a);
 
 /* The following definitions come from lib/util_seaccess.c  */
 
index 1318bd8e00f89e4ba4e6448633487b736c6ee2bc..5966ca8679c6ed853cf5ecebd0027f67e9c1d225 100644 (file)
@@ -209,10 +209,6 @@ _PUBLIC_ void ndr_print_sockaddr_storage(struct ndr_print *ndr, const char *name
 }
 
 void *cmdline_lp_ctx;
-struct smb_iconv_convenience *lp_iconv_convenience(void *lp_ctx)
-{
-       return NULL;
-}
 
 const struct ndr_syntax_id null_ndr_syntax_id =
 { { 0, 0, 0, { 0, 0 }, { 0, 0, 0, 0, 0, 0 } }, 0 };
index 45e24f194f5a988a3b4dbd14a9f58badb23f8b8c..886f8fb171e7f71693f875e4cb5727ab62542450 100644 (file)
@@ -73,7 +73,6 @@ struct tevent_req;
 
 struct gensec_settings {
        struct loadparm_context *lp_ctx;
-       struct smb_iconv_convenience *iconv_convenience;
        const char *target_hostname;
 };
 
index c6901a7b5eab8181a931d84db3ef68aa1382efcb..73c12a20ff660735a260e201247c319b4bbf5f85 100644 (file)
@@ -1268,7 +1268,6 @@ static NTSTATUS gensec_gssapi_session_info(struct gensec_security *gensec_securi
         */
        if (pac_blob.length) {
                nt_status = kerberos_pac_blob_to_server_info(mem_ctx, 
-                                                            gensec_security->settings->iconv_convenience,
                                                             pac_blob, 
                                                             gensec_gssapi_state->smb_krb5_context->krb5_context,
                                                             &server_info);
index d051b7f2276e0a85f434dec43032bd1fc1ea9025..77b50cb41c7de9c618c5383e55da30b6be3ad185 100644 (file)
@@ -685,7 +685,6 @@ static NTSTATUS gensec_krb5_session_info(struct gensec_security *gensec_security
 
                /* decode and verify the pac */
                nt_status = kerberos_pac_logon_info(gensec_krb5_state, 
-                                                   gensec_security->settings->iconv_convenience,
                                                    &logon_info, pac,
                                                    gensec_krb5_state->smb_krb5_context->krb5_context,
                                                    NULL, gensec_krb5_state->keyblock,
index 2b4963c843157c46c7bd3893c2c7e6d88bcf2edc..3ae80ddaf32c09913c1306308c28d6579ecd7504 100644 (file)
@@ -70,7 +70,6 @@ static struct gensec_settings *settings_from_object(TALLOC_CTX *mem_ctx, PyObjec
        
        s->target_hostname = PyString_AsString(py_hostname);
        s->lp_ctx = lp_from_py_object(s, py_lp_ctx);
-       s->iconv_convenience = py_iconv_convenience(s);
        return s;
 }
 
index 7877ea461a86e8c6a818b2c59e5d2322b666854c..d4b29484f1c772da992876e2e72550d2cb15c505 100644 (file)
@@ -87,8 +87,7 @@ static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_
                bind_schannel.oem_netbios_computer.a = cli_credentials_get_workstation(gensec_security->credentials);
 #endif
 
-               ndr_err = ndr_push_struct_blob(out, out_mem_ctx,
-                                              gensec_security->settings->iconv_convenience, &bind_schannel,
+               ndr_err = ndr_push_struct_blob(out, out_mem_ctx, &bind_schannel,
                                               (ndr_push_flags_fn_t)ndr_push_NL_AUTH_MESSAGE);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -111,9 +110,7 @@ static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_
                }
 
                /* parse the schannel startup blob */
-               ndr_err = ndr_pull_struct_blob(&in, out_mem_ctx,
-                       gensec_security->settings->iconv_convenience,
-                       &bind_schannel,
+               ndr_err = ndr_pull_struct_blob(&in, out_mem_ctx, &bind_schannel,
                        (ndr_pull_flags_fn_t)ndr_pull_NL_AUTH_MESSAGE);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -137,7 +134,6 @@ static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_
                }
 
                status = schannel_get_creds_state(out_mem_ctx,
-                                                 gensec_security->settings->iconv_convenience,
                                                  lp_private_dir(gensec_security->settings->lp_ctx),
                                                  workstation, &creds);
                if (!NT_STATUS_IS_OK(status)) {
@@ -158,8 +154,7 @@ static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_
                                                            * any meaning here
                                                            * - gd */
 
-               ndr_err = ndr_push_struct_blob(out, out_mem_ctx,
-                                              gensec_security->settings->iconv_convenience, &bind_schannel_ack,
+               ndr_err = ndr_push_struct_blob(out, out_mem_ctx, &bind_schannel_ack,
                                               (ndr_push_flags_fn_t)ndr_push_NL_AUTH_MESSAGE);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
index 1990343808e93786656752a216f7fe22389294d9..96c11a4ce1a36c6eda671bf072a6c2a4bface72c 100644 (file)
@@ -105,7 +105,6 @@ void kerberos_free_data_contents(krb5_context context, krb5_data *pdata);
 krb5_error_code smb_krb5_kt_free_entry(krb5_context context, krb5_keytab_entry *kt_entry);
 char *smb_get_krb5_error_message(krb5_context context, krb5_error_code code, TALLOC_CTX *mem_ctx);
 NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
-                            struct smb_iconv_convenience *iconv_convenience,
                             struct PAC_DATA **pac_data_out,
                             DATA_BLOB blob,
                             krb5_context context,
@@ -115,7 +114,6 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
                             time_t tgs_authtime,
                             krb5_error_code *k5ret);
  NTSTATUS kerberos_pac_logon_info(TALLOC_CTX *mem_ctx,
-                                 struct smb_iconv_convenience *iconv_convenience,
                                  struct PAC_LOGON_INFO **logon_info,
                                  DATA_BLOB blob,
                                  krb5_context context,
@@ -125,14 +123,12 @@ NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
                                  time_t tgs_authtime, 
                                  krb5_error_code *k5ret);
  krb5_error_code kerberos_encode_pac(TALLOC_CTX *mem_ctx,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                    struct PAC_DATA *pac_data,
                                    krb5_context context,
                                    const krb5_keyblock *krbtgt_keyblock,
                                    const krb5_keyblock *service_keyblock,
                                    DATA_BLOB *pac);
  krb5_error_code kerberos_create_pac(TALLOC_CTX *mem_ctx,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     struct auth_serversupplied_info *server_info,
                                     krb5_context context,
                                     const krb5_keyblock *krbtgt_keyblock,
index ecd35f3dfa8549bb3c4cbb4e3035d1c790f55b74..aca807e78d992e83646aaa8a85bb895f37efae42 100644 (file)
@@ -66,7 +66,6 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
 }
 
  NTSTATUS kerberos_decode_pac(TALLOC_CTX *mem_ctx,
-                             struct smb_iconv_convenience *iconv_convenience,
                              struct PAC_DATA **pac_data_out,
                              DATA_BLOB blob,
                              krb5_context context,
@@ -114,8 +113,7 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_pull_struct_blob(&blob, pac_data,
-                       iconv_convenience, pac_data,
-                      (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA);
+                       pac_data, (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
                DEBUG(0,("can't parse the PAC: %s\n",
@@ -130,7 +128,7 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_pull_struct_blob(&blob, pac_data_raw,
-                                      iconv_convenience, pac_data_raw,
+                                      pac_data_raw,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA_RAW);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -211,7 +209,7 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
 
        /* We find the data blobs above, now we parse them to get at the exact portion we should zero */
        ndr_err = ndr_pull_struct_blob(kdc_sig_blob, kdc_sig_wipe,
-                                      iconv_convenience, kdc_sig_wipe,
+                                      kdc_sig_wipe,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_SIGNATURE_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -221,7 +219,7 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_pull_struct_blob(srv_sig_blob, srv_sig_wipe,
-                                      iconv_convenience, srv_sig_wipe,
+                                      srv_sig_wipe,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_SIGNATURE_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -236,7 +234,6 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
 
        /* and reencode, back into the same place it came from */
        ndr_err = ndr_push_struct_blob(kdc_sig_blob, pac_data_raw,
-                                      iconv_convenience,
                                       kdc_sig_wipe,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_SIGNATURE_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -246,7 +243,6 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
                return status;
        }
        ndr_err = ndr_push_struct_blob(srv_sig_blob, pac_data_raw,
-                                      iconv_convenience,
                                       srv_sig_wipe,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_SIGNATURE_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -258,7 +254,6 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
 
        /* push out the whole structure, but now with zero'ed signatures */
        ndr_err = ndr_push_struct_blob(&modified_pac_blob, pac_data_raw,
-                                      iconv_convenience,
                                       pac_data_raw,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_DATA_RAW);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -340,7 +335,6 @@ krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
 }
 
 _PUBLIC_  NTSTATUS kerberos_pac_logon_info(TALLOC_CTX *mem_ctx,
-                                 struct smb_iconv_convenience *iconv_convenience,
                                  struct PAC_LOGON_INFO **logon_info,
                                  DATA_BLOB blob,
                                  krb5_context context,
@@ -354,7 +348,6 @@ _PUBLIC_  NTSTATUS kerberos_pac_logon_info(TALLOC_CTX *mem_ctx,
        struct PAC_DATA *pac_data;
        int i;
        nt_status = kerberos_decode_pac(mem_ctx,
-                                       iconv_convenience,
                                        &pac_data,
                                        blob,
                                        context,
@@ -426,7 +419,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
 }
 
  krb5_error_code kerberos_encode_pac(TALLOC_CTX *mem_ctx,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                    struct PAC_DATA *pac_data,
                                    krb5_context context,
                                    const krb5_keyblock *krbtgt_keyblock,
@@ -489,7 +481,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
        memset(srv_checksum->signature.data, '\0', srv_checksum->signature.length);
 
        ndr_err = ndr_push_struct_blob(&tmp_blob, mem_ctx,
-                                      iconv_convenience,
                                       pac_data,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -514,7 +505,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
 
        /* And push it out again, this time to the world.  This relies on determanistic pointer values */
        ndr_err = ndr_push_struct_blob(&tmp_blob, mem_ctx,
-                                      iconv_convenience,
                                       pac_data,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_DATA);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -531,7 +521,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
 
 
  krb5_error_code kerberos_create_pac(TALLOC_CTX *mem_ctx,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     struct auth_serversupplied_info *server_info,
                                     krb5_context context,
                                     const krb5_keyblock *krbtgt_keyblock,
@@ -644,7 +633,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
        unix_to_nt_time(&LOGON_NAME->logon_time, tgs_authtime);
 
        ret = kerberos_encode_pac(mem_ctx,
-                                 iconv_convenience,
                                  pac_data,
                                  context,
                                  krbtgt_keyblock,
@@ -655,7 +643,6 @@ static krb5_error_code make_pac_checksum(TALLOC_CTX *mem_ctx,
 }
 
 krb5_error_code kerberos_pac_to_server_info(TALLOC_CTX *mem_ctx,
-                                               struct smb_iconv_convenience *iconv_convenience,
                                                krb5_pac pac,
                                                krb5_context context,
                                                struct auth_serversupplied_info **server_info)
@@ -685,7 +672,7 @@ krb5_error_code kerberos_pac_to_server_info(TALLOC_CTX *mem_ctx,
 
        pac_logon_info_in = data_blob_const(k5pac_logon_info_in.data, k5pac_logon_info_in.length);
 
-       ndr_err = ndr_pull_union_blob(&pac_logon_info_in, tmp_ctx, iconv_convenience, &info,
+       ndr_err = ndr_pull_union_blob(&pac_logon_info_in, tmp_ctx, &info,
                                      PAC_TYPE_LOGON_INFO,
                                      (ndr_pull_flags_fn_t)ndr_pull_PAC_INFO);
        krb5_data_free(&k5pac_logon_info_in);
@@ -716,7 +703,7 @@ krb5_error_code kerberos_pac_to_server_info(TALLOC_CTX *mem_ctx,
        pac_srv_checksum_in = data_blob_const(k5pac_srv_checksum_in.data, k5pac_srv_checksum_in.length);
 
        ndr_err = ndr_pull_struct_blob(&pac_srv_checksum_in, server_info_out,
-                                      iconv_convenience, &server_info_out->pac_srv_sig,
+                                      &server_info_out->pac_srv_sig,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_SIGNATURE_DATA);
        krb5_data_free(&k5pac_srv_checksum_in);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -735,7 +722,7 @@ krb5_error_code kerberos_pac_to_server_info(TALLOC_CTX *mem_ctx,
        pac_kdc_checksum_in = data_blob_const(k5pac_kdc_checksum_in.data, k5pac_kdc_checksum_in.length);
 
        ndr_err = ndr_pull_struct_blob(&pac_kdc_checksum_in, server_info_out,
-                                      iconv_convenience, &server_info_out->pac_kdc_sig,
+                                      &server_info_out->pac_kdc_sig,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_SIGNATURE_DATA);
        krb5_data_free(&k5pac_kdc_checksum_in);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -752,7 +739,6 @@ krb5_error_code kerberos_pac_to_server_info(TALLOC_CTX *mem_ctx,
 
 
 NTSTATUS kerberos_pac_blob_to_server_info(TALLOC_CTX *mem_ctx,
-                                                    struct smb_iconv_convenience *iconv_convenience,
                                                     DATA_BLOB pac_blob,
                                                     krb5_context context,
                                                     struct auth_serversupplied_info **server_info)
@@ -767,7 +753,7 @@ NTSTATUS kerberos_pac_blob_to_server_info(TALLOC_CTX *mem_ctx,
        }
 
 
-       ret = kerberos_pac_to_server_info(mem_ctx, iconv_convenience, pac, context, server_info);
+       ret = kerberos_pac_to_server_info(mem_ctx, pac, context, server_info);
        krb5_pac_free(context, pac);
        if (ret) {
                return map_nt_error_from_unix(ret);
index 173a8953906b8edc01b897cf55bbcaf55d17eb8d..7406a94275d4f20845b61817ba574d60ab97f328 100644 (file)
@@ -33,7 +33,7 @@
 #include "nsswitch/libwbclient/wbclient.h"
 #include "libcli/security/dom_sid.h"
 
-static NTSTATUS get_info3_from_ndr(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, struct winbindd_response *response, struct netr_SamInfo3 *info3)
+static NTSTATUS get_info3_from_ndr(TALLOC_CTX *mem_ctx, struct winbindd_response *response, struct netr_SamInfo3 *info3)
 {
        size_t len = response->length - sizeof(struct winbindd_response);
        if (len > 4) {
@@ -43,7 +43,7 @@ static NTSTATUS get_info3_from_ndr(TALLOC_CTX *mem_ctx, struct smb_iconv_conveni
                blob.data = (uint8_t *)(((char *)response->extra_data.data) + 4);
 
                ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, 
-                              iconv_convenience, info3,
+                              info3,
                              (ndr_pull_flags_fn_t)ndr_pull_netr_SamInfo3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return ndr_map_error2ntstatus(ndr_err);
@@ -57,7 +57,6 @@ static NTSTATUS get_info3_from_ndr(TALLOC_CTX *mem_ctx, struct smb_iconv_conveni
 }
 
 static NTSTATUS get_info3_from_wbcAuthUserInfo(TALLOC_CTX *mem_ctx,
-                                              struct smb_iconv_convenience *ic,
                                               struct wbcAuthUserInfo *info,
                                               struct netr_SamInfo3 *info3)
 {
@@ -197,7 +196,7 @@ static NTSTATUS winbind_check_password_samba3(struct auth_method_context *ctx,
        if (result == NSS_STATUS_SUCCESS && response.extra_data.data) {
                union netr_Validation validation;
 
-               nt_status = get_info3_from_ndr(mem_ctx, lp_iconv_convenience(ctx->auth_ctx->lp_ctx), &response, &info3);
+               nt_status = get_info3_from_ndr(mem_ctx, &response, &info3);
                SAFE_FREE(response.extra_data.data);
                NT_STATUS_NOT_OK_RETURN(nt_status); 
 
@@ -389,9 +388,7 @@ static NTSTATUS winbind_check_password_wbclient(struct auth_method_context *ctx,
                wbcFreeMemory(err);
                NT_STATUS_NOT_OK_RETURN(nt_status);
        }
-       nt_status = get_info3_from_wbcAuthUserInfo(mem_ctx,
-                               lp_iconv_convenience(ctx->auth_ctx->lp_ctx),
-                               info, &info3);
+       nt_status = get_info3_from_wbcAuthUserInfo(mem_ctx, info, &info3);
        wbcFreeMemory(info);
        NT_STATUS_NOT_OK_RETURN(nt_status);
 
index 414f08a6f64efa91de86b9ebdfe4678b0a416739..7667d9bf3e55eefe40c36968037c2e9f6386a352 100644 (file)
@@ -137,7 +137,7 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
                        enum ndr_err_code ndr_err;
                        
                        /* Rather than go via the string, just push into the NDR form */
-                       ndr_err = ndr_push_struct_blob(&sid_val, mem_ctx, NULL, &sid,
+                       ndr_err = ndr_push_struct_blob(&sid_val, mem_ctx, &sid,
                                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                return NT_STATUS_INVALID_PARAMETER;
@@ -427,8 +427,7 @@ void cldapd_netlogon_request(struct cldap_socket *cldap,
                                goto failed;
                        }
                        ndr_err = ndr_pull_struct_blob(&t->u.equality.value,
-                                                      domain_sid, NULL,
-                                                      domain_sid,
+                                                      domain_sid, domain_sid,
                                                       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                talloc_free(domain_sid);
@@ -472,10 +471,7 @@ void cldapd_netlogon_request(struct cldap_socket *cldap,
                goto failed;
        }
 
-       status = cldap_netlogon_reply(cldap,
-                                     lp_iconv_convenience(cldapd->task->lp_ctx),
-                                     message_id, src, version,
-                                     &netlogon);
+       status = cldap_netlogon_reply(cldap, message_id, src, version, &netlogon);
        if (!NT_STATUS_IS_OK(status)) {
                goto failed;
        }
index 302d470afdb747b0e88430afb58481c6ca657a4f..b804a15d1cb5f61c3a5d2595b72794a9c22b3c06 100644 (file)
@@ -360,7 +360,6 @@ static struct dd_iohandle * open_file(struct resolve_context *resolve_ctx,
                                      struct smbcli_options *smb_options,
                                      const char *socket_options,
                                      struct smbcli_session_options *smb_session_options,
-                                     struct smb_iconv_convenience *iconv_convenience,
                                      struct gensec_settings *gensec_settings)
 {
        int                     options = 0;
@@ -385,7 +384,6 @@ static struct dd_iohandle * open_file(struct resolve_context *resolve_ctx,
                                      check_arg_numeric("ibs"), options,
                                      socket_options,
                                      smb_options, smb_session_options,
-                                     iconv_convenience,
                                      gensec_settings);
        } else if (strcmp(which, "of") == 0) {
                options |= DD_WRITE;
@@ -394,7 +392,6 @@ static struct dd_iohandle * open_file(struct resolve_context *resolve_ctx,
                                      check_arg_numeric("obs"), options,
                                      socket_options,
                                      smb_options, smb_session_options,
-                                     iconv_convenience,
                                      gensec_settings);
        } else {
                SMB_ASSERT(0);
@@ -450,7 +447,7 @@ static int copy_files(struct tevent_context *ev, struct loadparm_context *lp_ctx
        if (!(ifile = open_file(lp_resolve_context(lp_ctx), ev, "if",
                                lp_smb_ports(lp_ctx), &options,
                                lp_socket_options(lp_ctx),
-                               &session_options, lp_iconv_convenience(lp_ctx),
+                               &session_options, 
                                lp_gensec_settings(lp_ctx, lp_ctx)))) {
                return(FILESYS_EXIT_CODE);
        }
@@ -459,7 +456,6 @@ static int copy_files(struct tevent_context *ev, struct loadparm_context *lp_ctx
                                lp_smb_ports(lp_ctx), &options,
                                lp_socket_options(lp_ctx),
                                &session_options,
-                               lp_iconv_convenience(lp_ctx),
                                lp_gensec_settings(lp_ctx, lp_ctx)))) {
                return(FILESYS_EXIT_CODE);
        }
index e39c046fe8e1dbbd9fbc7c3e57f7f196d2022bbb..4e9cb9dd9a3bbe03886480ed2120f920f6f0f08c 100644 (file)
@@ -100,7 +100,6 @@ struct dd_iohandle * dd_open_path(struct resolve_context *resolve_ctx,
                                const char *socket_options,
                                struct smbcli_options *smb_options,
                                struct smbcli_session_options *smb_session_options,
-                               struct smb_iconv_convenience *iconv_convenience,
                                struct gensec_settings *gensec_settings);
 bool dd_fill_block(struct dd_iohandle * h, uint8_t * buf,
                uint64_t * buf_size, uint64_t need_size, uint64_t block_size);
index 47caf6b835abcd16f684c2e40a9ceee60b15c74e..0ceb69e3b15ed7a232b0f998aeec65e041e1673d 100644 (file)
@@ -227,7 +227,6 @@ static struct smbcli_state * init_smb_session(struct resolve_context *resolve_ct
                                              const char *socket_options,
                                              struct smbcli_options *options,
                                              struct smbcli_session_options *session_options,
-                                             struct smb_iconv_convenience *iconv_convenience,
                                              struct gensec_settings *gensec_settings)
 {
        NTSTATUS                ret;
@@ -242,7 +241,6 @@ static struct smbcli_state * init_smb_session(struct resolve_context *resolve_ct
                                     cmdline_credentials, resolve_ctx,
                                     ev, options,
                                     session_options,
-                                    iconv_convenience,
                                     gensec_settings);
 
        if (!NT_STATUS_IS_OK(ret)) {
@@ -312,7 +310,6 @@ static struct dd_iohandle * open_cifs_handle(struct resolve_context *resolve_ctx
                                        const char *socket_options,
                                        struct smbcli_options *smb_options,
                                        struct smbcli_session_options *smb_session_options,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        struct gensec_settings *gensec_settings)
 {
        struct cifs_handle * smbh;
@@ -336,7 +333,6 @@ static struct dd_iohandle * open_cifs_handle(struct resolve_context *resolve_ctx
        if ((smbh->cli = init_smb_session(resolve_ctx, ev, host, ports, share,
                                          socket_options,
                                          smb_options, smb_session_options,
-                                         iconv_convenience,
                                          gensec_settings)) == NULL) {
                return(NULL);
        }
@@ -361,7 +357,6 @@ struct dd_iohandle * dd_open_path(struct resolve_context *resolve_ctx,
                                const char *socket_options,
                                struct smbcli_options *smb_options,
                                struct smbcli_session_options *smb_session_options,
-                               struct smb_iconv_convenience *iconv_convenience,
                                struct gensec_settings *gensec_settings)
 {
        if (file_exist(path)) {
@@ -382,7 +377,6 @@ struct dd_iohandle * dd_open_path(struct resolve_context *resolve_ctx,
                                                io_size, options, 
                                                socket_options, smb_options,
                                                smb_session_options,
-                                               iconv_convenience,
                                                gensec_settings));
                }
 
index 55a2d0c0d02c262a9ffb3570f61f79d1d843112e..cf834b9e1fa6b5c74fe7cc819343d574df649a24 100644 (file)
@@ -3055,7 +3055,6 @@ static bool do_connect(struct smbclient_context *ctx,
                       struct cli_credentials *cred, 
                       struct smbcli_options *options,
                       struct smbcli_session_options *session_options,
-                          struct smb_iconv_convenience *iconv_convenience,
                           struct gensec_settings *gensec_settings)
 {
        NTSTATUS status;
@@ -3078,7 +3077,6 @@ static bool do_connect(struct smbclient_context *ctx,
                                        socket_options,
                                        cred, resolve_ctx, 
                                        ev_ctx, options, session_options,
-                                       iconv_convenience,
                                        gensec_settings);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("Connection to \\\\%s\\%s failed - %s\n", 
@@ -3113,7 +3111,6 @@ static int do_message_op(const char *netbios_name, const char *desthost,
                         struct tevent_context *ev_ctx,
                         struct resolve_context *resolve_ctx,
                         struct smbcli_options *options,
-                        struct smb_iconv_convenience *iconv_convenience,
              const char *socket_options)
 {
        struct nbt_name called, calling;
@@ -3129,7 +3126,6 @@ static int do_message_op(const char *netbios_name, const char *desthost,
        if (!(cli = smbcli_state_init(NULL)) ||
            !smbcli_socket_connect(cli, server_name, destports,
                                   ev_ctx, resolve_ctx, options,
-                                  iconv_convenience,
                    socket_options)) {
                d_printf("Connection to %s failed\n", server_name);
                return 1;
@@ -3283,7 +3279,7 @@ static int do_message_op(const char *netbios_name, const char *desthost,
                                   lp_smb_ports(cmdline_lp_ctx), dest_ip,
                                   name_type, ev_ctx,
                                   lp_resolve_context(cmdline_lp_ctx),
-                                  &smb_options, lp_iconv_convenience(cmdline_lp_ctx),
+                                  &smb_options, 
                    lp_socket_options(cmdline_lp_ctx));
                return rc;
        }
@@ -3292,7 +3288,6 @@ static int do_message_op(const char *netbios_name, const char *desthost,
                        desthost, lp_smb_ports(cmdline_lp_ctx), service,
                        lp_socket_options(cmdline_lp_ctx),
                        cmdline_credentials, &smb_options, &smb_session_options,
-                       lp_iconv_convenience(cmdline_lp_ctx),
                        lp_gensec_settings(ctx, cmdline_lp_ctx)))
                return 1;
 
index 7857e1fa256d541dc931c7d4fde498687fc20cc4..ac0c73643f2018a677bbd9f97bf5b376444d6f2d 100644 (file)
@@ -69,7 +69,7 @@ int dsdb_get_sd_from_ldb_message(TALLOC_CTX *mem_ctx,
        if(!*sd) {
                return LDB_ERR_OPERATIONS_ERROR;
        }
-       ndr_err = ndr_pull_struct_blob(&sd_element->values[0], *sd, NULL, *sd,
+       ndr_err = ndr_pull_struct_blob(&sd_element->values[0], *sd, *sd,
                                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
 
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index df4e734252fdecc0b263368ea77f90189b807150..da4d0b39402519126273fb45768c5c6d5160c1c9 100644 (file)
@@ -385,7 +385,7 @@ struct dom_sid *samdb_result_dom_sid(TALLOC_CTX *mem_ctx, const struct ldb_messa
        if (sid == NULL) {
                return NULL;
        }
-       ndr_err = ndr_pull_struct_blob(v, sid, NULL, sid,
+       ndr_err = ndr_pull_struct_blob(v, sid, sid,
                                       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(sid);
@@ -816,7 +816,6 @@ int samdb_msg_add_dom_sid(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, stru
        enum ndr_err_code ndr_err;
 
        ndr_err = ndr_push_struct_blob(&v, mem_ctx, 
-                                      lp_iconv_convenience(ldb_get_opaque(sam_ldb, "loadparm")),
                                       sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -2494,7 +2493,7 @@ WERROR dsdb_loadreps(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx, struct ld
        for (i=0; i<(*count); i++) {
                enum ndr_err_code ndr_err;
                ndr_err = ndr_pull_struct_blob(&el->values[i], 
-                                              mem_ctx, lp_iconv_convenience(ldb_get_opaque(sam_ctx, "loadparm")),
+                                              mem_ctx, 
                                               &(*r)[i], 
                                               (ndr_pull_flags_fn_t)ndr_pull_repsFromToBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -2535,7 +2534,7 @@ WERROR dsdb_savereps(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx, struct ld
                struct ldb_val v;
                enum ndr_err_code ndr_err;
 
-               ndr_err = ndr_push_struct_blob(&v, tmp_ctx, lp_iconv_convenience(ldb_get_opaque(sam_ctx, "loadparm")),
+               ndr_err = ndr_push_struct_blob(&v, tmp_ctx, 
                                               &r[i], 
                                               (ndr_push_flags_fn_t)ndr_push_repsFromToBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -2981,7 +2980,7 @@ NTSTATUS dsdb_get_extended_dn_sid(struct ldb_dn *dn, struct dom_sid *sid, const
 
        tmp_ctx = talloc_new(NULL);
 
-       ndr_err = ndr_pull_struct_blob_all(sid_blob, tmp_ctx, NULL, sid,
+       ndr_err = ndr_pull_struct_blob_all(sid_blob, tmp_ctx, sid,
                                           (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS status = ndr_map_error2ntstatus(ndr_err);
@@ -3243,8 +3242,7 @@ int dsdb_load_udv_v2(struct ldb_context *samdb, struct ldb_dn *dn, TALLOC_CTX *m
                enum ndr_err_code ndr_err;
                struct replUpToDateVectorBlob ouv;
 
-               ndr_err = ndr_pull_struct_blob(ouv_value, r,
-                                              lp_iconv_convenience(ldb_get_opaque(samdb, "loadparm")), &ouv,
+               ndr_err = ndr_pull_struct_blob(ouv_value, r, &ouv,
                                               (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        talloc_free(r);
index 322ccc980c7787e5f80cfa6c73c74fd19c7790b4..170105642b24d916ce98c1f19b92fc2dc01eb755 100644 (file)
@@ -122,7 +122,7 @@ static WERROR get_repl_prop_metadata_ctr(TALLOC_CTX *mem_ctx,
        }
 
        ndr_err = ndr_pull_struct_blob(omd_value, mem_ctx,
-                                      lp_iconv_convenience(ldb_get_opaque(samdb, "loadparm")), obj_metadata_ctr,
+                                       obj_metadata_ctr,
                                       (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                DEBUG(0,(__location__ ": Failed to parse replPropertyMetaData for %s\n",
index b17a17d5a333e9c605c3682188ebd49322ca5840..cb45b41248fbd0dd1cb1ce86db1aad4213ad0659 100644 (file)
@@ -153,7 +153,7 @@ static WERROR dreplsrv_partition_add_source_dsa(struct dreplsrv_service *s,
        W_ERROR_HAVE_NO_MEMORY(source);
 
        ndr_err = ndr_pull_struct_blob(val, source, 
-                                      lp_iconv_convenience(s->task->lp_ctx), &source->_repsFromBlob,
+                                      &source->_repsFromBlob,
                                       (ndr_pull_flags_fn_t)ndr_pull_repsFromToBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
index 8fc5e3a47bb0dd0219c10901af1f97e2e02405c8..6c9baaa13a1d0a7c2cea9deb213e3a17bb4a7504 100644 (file)
@@ -230,7 +230,7 @@ static DATA_BLOB *get_new_descriptor(struct ldb_module *module,
                if (!user_descriptor) {
                        return NULL;
                }
-               ndr_err = ndr_pull_struct_blob(object, user_descriptor, NULL,
+               ndr_err = ndr_pull_struct_blob(object, user_descriptor, 
                                               user_descriptor,
                                               (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
 
@@ -247,7 +247,7 @@ static DATA_BLOB *get_new_descriptor(struct ldb_module *module,
                if (!old_descriptor) {
                        return NULL;
                }
-               ndr_err = ndr_pull_struct_blob(old_sd, old_descriptor, NULL,
+               ndr_err = ndr_pull_struct_blob(old_sd, old_descriptor, 
                                               old_descriptor,
                                               (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
 
@@ -262,7 +262,7 @@ static DATA_BLOB *get_new_descriptor(struct ldb_module *module,
                if (!parent_descriptor) {
                        return NULL;
                }
-               ndr_err = ndr_pull_struct_blob(parent, parent_descriptor, NULL,
+               ndr_err = ndr_pull_struct_blob(parent, parent_descriptor, 
                                               parent_descriptor,
                                               (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
 
@@ -305,7 +305,6 @@ static DATA_BLOB *get_new_descriptor(struct ldb_module *module,
        }
 
        ndr_err = ndr_push_struct_blob(linear_sd, mem_ctx,
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       final_sd,
                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -323,13 +322,12 @@ static DATA_BLOB *descr_get_descriptor_to_show(struct ldb_module *module,
        struct security_descriptor *old_sd, *final_sd;
        DATA_BLOB *linear_sd;
        enum ndr_err_code ndr_err;
-       struct ldb_context *ldb = ldb_module_get_ctx(module);
 
        old_sd = talloc(mem_ctx, struct security_descriptor);
        if (!old_sd) {
                return NULL;
        }
-       ndr_err = ndr_pull_struct_blob(sd, old_sd, NULL,
+       ndr_err = ndr_pull_struct_blob(sd, old_sd, 
                                       old_sd,
                                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
 
@@ -350,7 +348,6 @@ static DATA_BLOB *descr_get_descriptor_to_show(struct ldb_module *module,
        }
 
        ndr_err = ndr_push_struct_blob(linear_sd, mem_ctx,
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       final_sd,
                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 39af87091cccf165b10d4d3e8f7f8a28eabe9e50..12adf16181f711908002e78b8c3f94ba6b697684 100644 (file)
@@ -276,7 +276,7 @@ static int handle_dereference_fds(struct ldb_dn *dn,
                        return LDB_ERR_INVALID_DN_SYNTAX;
                }
 
-               ndr_err = ndr_push_struct_blob(&sid_blob, NULL, NULL, sid,
+               ndr_err = ndr_push_struct_blob(&sid_blob, NULL, sid,
                                                (ndr_push_flags_fn_t)ndr_push_dom_sid);
                talloc_free(sid);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index f9e7f52cd95b8015cecf0f184271f875eb6d9c30..de2c6da94c3a65b949921283b907032d80bbdf7a 100644 (file)
@@ -519,7 +519,7 @@ static int setup_primary_kerberos(struct setup_password_fields_io *io,
                }
 
                /* TODO: use ndr_pull_struct_blob_all(), when the ndr layer handles it correct with relative pointers */
-               ndr_err = ndr_pull_struct_blob(&blob, io->ac, lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), &_old_pkb,
+               ndr_err = ndr_pull_struct_blob(&blob, io->ac, &_old_pkb,
                                               (ndr_pull_flags_fn_t)ndr_pull_package_PrimaryKerberosBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        NTSTATUS status = ndr_map_error2ntstatus(ndr_err);
@@ -636,7 +636,6 @@ static int setup_primary_kerberos_newer(struct setup_password_fields_io *io,
 
                /* TODO: use ndr_pull_struct_blob_all(), when the ndr layer handles it correct with relative pointers */
                ndr_err = ndr_pull_struct_blob(&blob, io->ac,
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                               &_old_pkb,
                                               (ndr_pull_flags_fn_t)ndr_pull_package_PrimaryKerberosBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1068,7 +1067,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
        /* if there's an old supplementaCredentials blob then parse it */
        if (io->o.supplemental) {
                ndr_err = ndr_pull_struct_blob_all(io->o.supplemental, io->ac,
-                                                  lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                                   &_old_scb,
                                                   (ndr_pull_flags_fn_t)ndr_pull_supplementalCredentialsBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1148,7 +1146,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
                }
 
                ndr_err = ndr_push_struct_blob(&pknb_blob, io->ac,
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                               &pknb,
                                               (ndr_push_flags_fn_t)ndr_push_package_PrimaryKerberosBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1180,7 +1177,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
        }
 
        ndr_err = ndr_push_struct_blob(&pkb_blob, io->ac, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &pkb,
                                       (ndr_push_flags_fn_t)ndr_push_package_PrimaryKerberosBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1211,7 +1207,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
        }
 
        ndr_err = ndr_push_struct_blob(&pdb_blob, io->ac, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &pdb,
                                       (ndr_push_flags_fn_t)ndr_push_package_PrimaryWDigestBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1240,7 +1235,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
                pcb.cleartext   = *io->n.cleartext_utf16;
 
                ndr_err = ndr_push_struct_blob(&pcb_blob, io->ac, 
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                               &pcb,
                                               (ndr_push_flags_fn_t)ndr_push_package_PrimaryCLEARTEXTBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1266,7 +1260,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
         */
        pb.names = names;
        ndr_err = ndr_push_struct_blob(&pb_blob, io->ac, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), 
                                       &pb,
                                       (ndr_push_flags_fn_t)ndr_push_package_PackagesBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1294,7 +1287,6 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
        scb.sub.packages        = packages;
 
        ndr_err = ndr_push_struct_blob(&io->g.supplemental, io->ac, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &scb,
                                       (ndr_push_flags_fn_t)ndr_push_supplementalCredentialsBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1335,8 +1327,7 @@ static int setup_given_passwords(struct setup_password_fields_io *io,
                        ldb_oom(ldb);
                        return LDB_ERR_OPERATIONS_ERROR;
                }
-               if (!convert_string_talloc_convenience(io->ac,
-                                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
+               if (!convert_string_talloc(io->ac,
                                                       CH_UTF8, CH_UTF16,
                                                       g->cleartext_utf8->data,
                                                       g->cleartext_utf8->length,
@@ -1361,7 +1352,6 @@ static int setup_given_passwords(struct setup_password_fields_io *io,
                        return LDB_ERR_OPERATIONS_ERROR;
                }
                if (!convert_string_talloc_convenience(io->ac,
-                                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                                       CH_UTF16MUNGED, CH_UTF8,
                                                       g->cleartext_utf16->data,
                                                       g->cleartext_utf16->length,
index a6aeb5e58fa8825db3fa8848f026d4e7f31feaf0..72ffd0e21cbf6cd2f68b5c668fd4191027468464 100644 (file)
@@ -911,7 +911,6 @@ static int replmd_add(struct ldb_module *module, struct ldb_request *req)
 
        /* generated NDR encoded values */
        ndr_err = ndr_push_struct_blob(&nmd_value, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &nmd,
                                       (ndr_push_flags_fn_t)ndr_push_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1144,8 +1143,7 @@ static int replmd_update_rpmd(struct ldb_module *module,
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
-       ndr_err = ndr_pull_struct_blob(omd_value, msg,
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), &omd,
+       ndr_err = ndr_pull_struct_blob(omd_value, msg, &omd,
                                       (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                DEBUG(0,(__location__ ": Failed to parse replPropertyMetaData for %s\n",
@@ -1207,9 +1205,7 @@ static int replmd_update_rpmd(struct ldb_module *module,
                        return ret;
                }
 
-               ndr_err = ndr_push_struct_blob(md_value, msg, 
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
-                                              &omd,
+               ndr_err = ndr_push_struct_blob(md_value, msg, &omd,
                                               (ndr_push_flags_fn_t)ndr_push_replPropertyMetaDataBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        DEBUG(0,(__location__ ": Failed to marshall replPropertyMetaData for %s\n",
@@ -2749,9 +2745,7 @@ static int replmd_replicated_apply_add(struct replmd_replicated_request *ar)
        for (i=0; i < md->ctr.ctr1.count; i++) {
                md->ctr.ctr1.array[i].local_usn = ar->seq_num;
        }
-       ndr_err = ndr_push_struct_blob(&md_value, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
-                                      md,
+       ndr_err = ndr_push_struct_blob(&md_value, msg, md,
                                       (ndr_push_flags_fn_t)ndr_push_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -2860,8 +2854,7 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar)
        /* find existing meta data */
        omd_value = ldb_msg_find_ldb_val(ar->search_msg, "replPropertyMetaData");
        if (omd_value) {
-               ndr_err = ndr_pull_struct_blob(omd_value, ar,
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), &omd,
+               ndr_err = ndr_pull_struct_blob(omd_value, ar, &omd,
                                               (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -2969,9 +2962,7 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar)
        }
 
        /* create the meta data value */
-       ndr_err = ndr_push_struct_blob(&nmd_value, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
-                                      &nmd,
+       ndr_err = ndr_push_struct_blob(&nmd_value, msg, &nmd,
                                       (ndr_push_flags_fn_t)ndr_push_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -3192,8 +3183,7 @@ static int replmd_replicated_uptodate_modify(struct replmd_replicated_request *a
         */
        ouv_value = ldb_msg_find_ldb_val(ar->search_msg, "replUpToDateVector");
        if (ouv_value) {
-               ndr_err = ndr_pull_struct_blob(ouv_value, ar,
-                                              lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), &ouv,
+               ndr_err = ndr_pull_struct_blob(ouv_value, ar, &ouv,
                                               (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -3316,9 +3306,7 @@ static int replmd_replicated_uptodate_modify(struct replmd_replicated_request *a
        if (!msg) return replmd_replicated_request_werror(ar, WERR_NOMEM);
        msg->dn = ar->search_msg->dn;
 
-       ndr_err = ndr_push_struct_blob(&nuv_value, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), 
-                                      &nuv,
+       ndr_err = ndr_push_struct_blob(&nuv_value, msg, &nuv,
                                       (ndr_push_flags_fn_t)ndr_push_replUpToDateVectorBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -3355,7 +3343,7 @@ static int replmd_replicated_uptodate_modify(struct replmd_replicated_request *a
                        trf = talloc(ar, struct repsFromToBlob);
                        if (!trf) return replmd_replicated_request_werror(ar, WERR_NOMEM);
 
-                       ndr_err = ndr_pull_struct_blob(&orf_el->values[i], trf, lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), trf,
+                       ndr_err = ndr_pull_struct_blob(&orf_el->values[i], trf, trf,
                                                       (ndr_pull_flags_fn_t)ndr_pull_repsFromToBlob);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -3406,7 +3394,6 @@ static int replmd_replicated_uptodate_modify(struct replmd_replicated_request *a
 
        /* we now fill the value which is already attached to ldb_message */
        ndr_err = ndr_push_struct_blob(nrf_value, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &nrf,
                                       (ndr_push_flags_fn_t)ndr_push_repsFromToBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index a64062fcdc965c53e2f85346cd0a836571be1689..05aee7763883875384dca4489ee750fef14f6869 100644 (file)
@@ -72,7 +72,6 @@ static void ridalloc_poke_rid_manager(struct ldb_module *module)
        TALLOC_CTX *tmp_ctx = talloc_new(module);
 
        msg = messaging_client_init(tmp_ctx, lp_messaging_path(tmp_ctx, lp_ctx),
-                                   lp_iconv_convenience(lp_ctx),
                                    ldb_get_event_context(ldb));
        if (!msg) {
                DEBUG(3,(__location__ ": Failed to create messaging context\n"));
index 61013d133e8c386e71ac4caf951f6bf8035cdc0b..42245ce49112a9139f9d44f9bfbc92856899e1ab 100644 (file)
@@ -94,7 +94,7 @@ static void generate_sambaPrimaryGroupSID(struct ldb_module *module, const char
                return;
        }
 
-       ndr_err = ndr_pull_struct_blob(sidval, sid, NULL, sid, (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
+       ndr_err = ndr_pull_struct_blob(sidval, sid, sid, (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(sid);
                return;
@@ -188,7 +188,6 @@ static struct ldb_val encode_sid(struct ldb_module *module, TALLOC_CTX *ctx, con
        }
 
        ndr_err = ndr_push_struct_blob(&out, ctx, 
-                                      NULL,
                                       sid, (ndr_push_flags_fn_t)ndr_push_dom_sid);
        talloc_free(sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -210,7 +209,7 @@ static struct ldb_val decode_sid(struct ldb_module *module, TALLOC_CTX *ctx, con
                return out;
        }
 
-       ndr_err = ndr_pull_struct_blob(val, sid, NULL, sid,
+       ndr_err = ndr_pull_struct_blob(val, sid, sid,
                                       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                goto done;
index 4a50a3fa47cc27a12bd0c4862283005ef9c28876..4d1659df0b1f4823a72c41e1950af9f28468f6f4 100644 (file)
@@ -327,7 +327,7 @@ static bool samldb_msg_add_sid(struct ldb_message *msg,
        struct ldb_val v;
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_push_struct_blob(&v, msg, NULL, sid,
+       ndr_err = ndr_push_struct_blob(&v, msg, sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return false;
index b4a68769e63fbf4a664b50e65f40dcce4e15696d..4df6f1e38a43d26446cf6bf4211e7a536e1879fe 100644 (file)
@@ -215,7 +215,6 @@ static int dsdb_schema_from_db(struct ldb_module *module, struct ldb_dn *schema_
        }
 
        ret = dsdb_schema_from_ldb_results(tmp_ctx, ldb,
-                                          lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                           schema_res, a_res, c_res, schema, &error_string);
        if (ret != LDB_SUCCESS) {
                ldb_asprintf_errstring(ldb, 
index ac22eb9b3f2905608662b53033e7d2b9f0cdd1e8..a9c5e932a1e800e3ca290f1da2a56816278fd5fc 100644 (file)
@@ -100,7 +100,7 @@ WERROR dsdb_schema_info_from_blob(const DATA_BLOB *blob,
        W_ERROR_HAVE_NO_MEMORY(temp_ctx);
 
        ndr_err = ndr_pull_struct_blob_all(blob, temp_ctx,
-                                          lp_iconv_convenience(NULL), &schema_info_blob,
+                                          &schema_info_blob,
                                           (ndr_pull_flags_fn_t)ndr_pull_schemaInfoBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -140,7 +140,7 @@ WERROR dsdb_blob_from_schema_info(const struct dsdb_schema_info *schema_info,
        schema_info_blob.invocation_id  = schema_info->invocation_id;
 
        ndr_err = ndr_push_struct_blob(blob, mem_ctx,
-                                      lp_iconv_convenience(NULL), &schema_info_blob,
+                                      &schema_info_blob,
                                       (ndr_push_flags_fn_t)ndr_push_schemaInfoBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
index cdd37f094b88d88e5f251e9daa1343a45c987510..55e78ebf3af54286895b89b2070c852aab57fe53 100644 (file)
 #include "../lib/util/asn1.h"
 
 
-struct dsdb_schema *dsdb_new_schema(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience)
+struct dsdb_schema *dsdb_new_schema(TALLOC_CTX *mem_ctx)
 {
        struct dsdb_schema *schema = talloc_zero(mem_ctx, struct dsdb_schema);
        if (!schema) {
                return NULL;
        }
 
-       schema->iconv_convenience = iconv_convenience;
        return schema;
 }
 
@@ -66,7 +65,6 @@ WERROR dsdb_load_prefixmap_from_drsuapi(struct dsdb_schema *schema,
 }
 
 static WERROR _dsdb_prefixmap_from_ldb_val(const struct ldb_val *pfm_ldb_val,
-                                          struct smb_iconv_convenience *iconv_convenience,
                                           TALLOC_CTX *mem_ctx,
                                           struct dsdb_schema_prefixmap **_pfm)
 {
@@ -78,7 +76,7 @@ static WERROR _dsdb_prefixmap_from_ldb_val(const struct ldb_val *pfm_ldb_val,
        W_ERROR_HAVE_NO_MEMORY(temp_ctx);
 
        ndr_err = ndr_pull_struct_blob(pfm_ldb_val, temp_ctx,
-                               iconv_convenience, &pfm_blob,
+                               &pfm_blob,
                                (ndr_pull_flags_fn_t)ndr_pull_prefixMapBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS nt_status = ndr_map_error2ntstatus(ndr_err);
@@ -119,7 +117,6 @@ WERROR dsdb_load_oid_mappings_ldb(struct dsdb_schema *schema,
 
        /* fetch prefixMap */
        werr = _dsdb_prefixmap_from_ldb_val(prefixMap,
-                                           schema->iconv_convenience,
                                            mem_ctx, &pfm);
        W_ERROR_NOT_OK_GOTO(werr, DONE);
 
@@ -173,7 +170,7 @@ WERROR dsdb_get_oid_mappings_ldb(const struct dsdb_schema *schema,
        pfm.reserved    = 0;
        pfm.ctr.dsdb    = *ctr;
 
-       ndr_err = ndr_push_struct_blob(prefixMap, mem_ctx, schema->iconv_convenience, &pfm,
+       ndr_err = ndr_push_struct_blob(prefixMap, mem_ctx, &pfm,
                                        (ndr_push_flags_fn_t)ndr_push_prefixMapBlob);
        talloc_free(ctr);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -286,7 +283,6 @@ WERROR dsdb_write_prefixes_from_schema_to_ldb(TALLOC_CTX *mem_ctx, struct ldb_co
        pfm_blob.ctr.dsdb       = *ctr;
 
        ndr_err = ndr_push_struct_blob(&ndr_blob, temp_ctx,
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &pfm_blob,
                                       (ndr_push_flags_fn_t)ndr_push_prefixMapBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -326,7 +322,6 @@ WERROR dsdb_read_prefixes_from_ldb(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
        WERROR werr;
        int ldb_ret;
        const struct ldb_val *prefix_val;
-       struct smb_iconv_convenience *iconv_convenience;
        struct ldb_dn *schema_dn;
        struct ldb_result *schema_res = NULL;
        static const char *schema_attrs[] = {
@@ -358,10 +353,7 @@ WERROR dsdb_read_prefixes_from_ldb(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                return WERR_FOOBAR;
        }
 
-       iconv_convenience = lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm"));
-
        werr = _dsdb_prefixmap_from_ldb_val(prefix_val,
-                                           iconv_convenience,
                                            mem_ctx,
                                            _pfm);
        talloc_free(schema_res);
@@ -704,7 +696,6 @@ WERROR dsdb_class_from_ldb(struct dsdb_schema *schema,
 */
 
 int dsdb_schema_from_ldb_results(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
-                                struct smb_iconv_convenience *iconv_convenience, 
                                 struct ldb_result *schema_res,
                                 struct ldb_result *attrs_res, struct ldb_result *objectclass_res, 
                                 struct dsdb_schema **schema_out,
@@ -717,7 +708,7 @@ int dsdb_schema_from_ldb_results(TALLOC_CTX *mem_ctx, struct ldb_context *ldb,
        struct ldb_val info_val_default;
        struct dsdb_schema *schema;
 
-       schema = dsdb_new_schema(mem_ctx, iconv_convenience);
+       schema = dsdb_new_schema(mem_ctx);
        if (!schema) {
                dsdb_oom(error_string, mem_ctx);
                return LDB_ERR_OPERATIONS_ERROR;
@@ -892,7 +883,7 @@ static struct drsuapi_DsReplicaAttribute *dsdb_find_object_attr_name(struct dsdb
        } \
        if (_a && _a->value_ctr.num_values >= 1) { \
                size_t _ret; \
-               if (!convert_string_talloc_convenience(mem_ctx, s->iconv_convenience, CH_UTF16, CH_UNIX, \
+               if (!convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX, \
                                             _a->value_ctr.values[0].blob->data, \
                                             _a->value_ctr.values[0].blob->length, \
                                             (void **)discard_const(&(p)->elem), &_ret, false)) { \
@@ -1123,7 +1114,7 @@ WERROR dsdb_class_from_drsuapi(struct ldb_context *ldb,
        }
 
        status = dsdb_syntax_one_DN_drsuapi_to_ldb(mem_ctx, ldb, find_syntax_map_by_standard_oid(LDB_SYNTAX_DN), 
-                                                  schema->iconv_convenience, attr->value_ctr.values[0].blob, &blob);
+                                                  attr->value_ctr.values[0].blob, &blob);
        if (!W_ERROR_IS_OK(status)) {
                return status;
        }
index fe6ef42e8c39a471c2422effbc57e59b02415ad5..07d75c44a85f30f2babd4adaa3e8654a7cb00e4a 100644 (file)
@@ -589,7 +589,7 @@ WERROR dsdb_set_schema_from_ldif(struct ldb_context *ldb, const char *pf, const
                goto nomem;
        }
 
-       schema = dsdb_new_schema(mem_ctx, lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")));
+       schema = dsdb_new_schema(mem_ctx);
 
        schema->fsmo.we_are_master = true;
        schema->fsmo.master_dn = ldb_dn_new_fmt(schema, ldb, "@PROVISION_SCHEMA_MASTER");
index a0eed3d7c0d26295a8e35d8b3e25062ac9fd3efe..2e6f411a7aec1e320f9b01b431f9788a59f669ec 100644 (file)
@@ -1352,8 +1352,7 @@ static WERROR dsdb_syntax_UNICODE_drsuapi_to_ldb(struct ldb_context *ldb,
                        return WERR_FOOBAR;
                }
 
-               if (!convert_string_talloc_convenience(out->values, 
-                                               schema->iconv_convenience, 
+               if (!convert_string_talloc(out->values, 
                                                                        CH_UTF16, CH_UNIX,
                                            in->value_ctr.values[i].blob->data,
                                            in->value_ctr.values[i].blob->length,
@@ -1394,8 +1393,8 @@ static WERROR dsdb_syntax_UNICODE_ldb_to_drsuapi(struct ldb_context *ldb,
        for (i=0; i < in->num_values; i++) {
                out->value_ctr.values[i].blob   = &blobs[i];
 
-               if (!convert_string_talloc_convenience(blobs,
-                       schema->iconv_convenience, CH_UNIX, CH_UTF16,
+               if (!convert_string_talloc(blobs,
+                       CH_UNIX, CH_UTF16,
                        in->values[i].data, in->values[i].length,
                        (void **)&blobs[i].data, &blobs[i].length, false)) {
                                return WERR_FOOBAR;
@@ -1476,7 +1475,6 @@ static WERROR dsdb_syntax_UNICODE_validate_ldb(struct ldb_context *ldb,
 
 WERROR dsdb_syntax_one_DN_drsuapi_to_ldb(TALLOC_CTX *mem_ctx, struct ldb_context *ldb, 
                                         const struct dsdb_syntax *syntax, 
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         const DATA_BLOB *in, DATA_BLOB *out)
 {
        struct drsuapi_DsReplicaObjectIdentifier3 id3;
@@ -1504,7 +1502,7 @@ WERROR dsdb_syntax_one_DN_drsuapi_to_ldb(TALLOC_CTX *mem_ctx, struct ldb_context
        
        /* windows sometimes sends an extra two pad bytes here */
        ndr_err = ndr_pull_struct_blob(in,
-                                      tmp_ctx, iconv_convenience, &id3,
+                                      tmp_ctx, &id3,
                                       (ndr_pull_flags_fn_t)ndr_pull_drsuapi_DsReplicaObjectIdentifier3);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -1536,7 +1534,7 @@ WERROR dsdb_syntax_one_DN_drsuapi_to_ldb(TALLOC_CTX *mem_ctx, struct ldb_context
        
        if (id3.__ndr_size_sid) {
                DATA_BLOB sid_blob;
-               ndr_err = ndr_push_struct_blob(&sid_blob, tmp_ctx, iconv_convenience, &id3.sid,
+               ndr_err = ndr_push_struct_blob(&sid_blob, tmp_ctx, &id3.sid,
                                               (ndr_push_flags_fn_t)ndr_push_dom_sid);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -1575,7 +1573,6 @@ static WERROR dsdb_syntax_DN_drsuapi_to_ldb(struct ldb_context *ldb,
 
        for (i=0; i < out->num_values; i++) {
                WERROR status = dsdb_syntax_one_DN_drsuapi_to_ldb(out->values, ldb, attr->syntax, 
-                                                                 schema->iconv_convenience, 
                                                                  in->value_ctr.values[i].blob, 
                                                                  &out->values[i]);
                if (!W_ERROR_IS_OK(status)) {
@@ -1644,7 +1641,7 @@ static WERROR dsdb_syntax_DN_ldb_to_drsuapi(struct ldb_context *ldb,
 
                id3.dn = ldb_dn_get_linearized(dn);
 
-               ndr_err = ndr_push_struct_blob(&blobs[i], blobs, schema->iconv_convenience, &id3, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&blobs[i], blobs, &id3, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
                        talloc_free(tmp_ctx);
@@ -1712,7 +1709,6 @@ static WERROR dsdb_syntax_DN_validate_one_val(struct ldb_context *ldb,
                num_components++;
                ndr_err = ndr_pull_struct_blob_all(sid_blob,
                                                   tmp_ctx,
-                                                  schema->iconv_convenience,
                                                   &sid,
                                                   (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -1838,7 +1834,7 @@ static WERROR dsdb_syntax_DN_BINARY_drsuapi_to_ldb(struct ldb_context *ldb,
                
                /* windows sometimes sends an extra two pad bytes here */
                ndr_err = ndr_pull_struct_blob(in->value_ctr.values[i].blob,
-                                              tmp_ctx, schema->iconv_convenience, &id3,
+                                              tmp_ctx, &id3,
                                               (ndr_pull_flags_fn_t)ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -1869,7 +1865,7 @@ static WERROR dsdb_syntax_DN_BINARY_drsuapi_to_ldb(struct ldb_context *ldb,
 
                if (id3.__ndr_size_sid) {
                        DATA_BLOB sid_blob;
-                       ndr_err = ndr_push_struct_blob(&sid_blob, tmp_ctx, schema->iconv_convenience, &id3.sid,
+                       ndr_err = ndr_push_struct_blob(&sid_blob, tmp_ctx, &id3.sid,
                                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                status = ndr_map_error2ntstatus(ndr_err);
@@ -1954,7 +1950,7 @@ static WERROR dsdb_syntax_DN_BINARY_ldb_to_drsuapi(struct ldb_context *ldb,
                if (sid_blob) {
                        
                        ndr_err = ndr_pull_struct_blob_all(sid_blob, 
-                                                          tmp_ctx, schema->iconv_convenience, &id3.sid,
+                                                          tmp_ctx, &id3.sid,
                                                           (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                status = ndr_map_error2ntstatus(ndr_err);
@@ -1968,7 +1964,7 @@ static WERROR dsdb_syntax_DN_BINARY_ldb_to_drsuapi(struct ldb_context *ldb,
                /* get binary stuff */
                id3.binary = dsdb_dn->extra_part;
 
-               ndr_err = ndr_push_struct_blob(&blobs[i], blobs, schema->iconv_convenience, &id3, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary);
+               ndr_err = ndr_push_struct_blob(&blobs[i], blobs, &id3, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
                        talloc_free(tmp_ctx);
@@ -2139,7 +2135,7 @@ static WERROR dsdb_syntax_PRESENTATION_ADDRESS_drsuapi_to_ldb(struct ldb_context
                        return WERR_FOOBAR;
                }
 
-               if (!convert_string_talloc_convenience(out->values, schema->iconv_convenience, CH_UTF16, CH_UNIX,
+               if (!convert_string_talloc(out->values, CH_UTF16, CH_UNIX,
                                            in->value_ctr.values[i].blob->data+4,
                                            in->value_ctr.values[i].blob->length-4,
                                            (void **)&str, NULL, false)) {
@@ -2182,7 +2178,7 @@ static WERROR dsdb_syntax_PRESENTATION_ADDRESS_ldb_to_drsuapi(struct ldb_context
 
                out->value_ctr.values[i].blob   = &blobs[i];
 
-               if (!convert_string_talloc_convenience(blobs, schema->iconv_convenience, CH_UNIX, CH_UTF16,
+               if (!convert_string_talloc(blobs, CH_UNIX, CH_UTF16,
                                            in->values[i].data,
                                            in->values[i].length,
                                            (void **)&data, &ret, false)) {
index 33c4c8cdf66fc511b7c9785e37ad9cd7508ad2b2..97820c0c32c6f48b2470a44bc6a269846ef637f3 100644 (file)
@@ -192,7 +192,6 @@ static void samba_kdc_free_entry(krb5_context context, hdb_entry_ex *entry_ex)
 }
 
 static krb5_error_code samba_kdc_message2entry_keys(krb5_context context,
-                                             struct smb_iconv_convenience *iconv_convenience,
                                              TALLOC_CTX *mem_ctx,
                                              struct ldb_message *msg,
                                              unsigned int userAccountControl,
@@ -228,7 +227,7 @@ static krb5_error_code samba_kdc_message2entry_keys(krb5_context context,
 
        /* supplementalCredentials if present */
        if (sc_val) {
-               ndr_err = ndr_pull_struct_blob_all(sc_val, mem_ctx, iconv_convenience, &scb,
+               ndr_err = ndr_pull_struct_blob_all(sc_val, mem_ctx, &scb,
                                                   (ndr_pull_flags_fn_t)ndr_pull_supplementalCredentialsBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        dump_data(0, sc_val->data, sc_val->length);
@@ -277,7 +276,7 @@ static krb5_error_code samba_kdc_message2entry_keys(krb5_context context,
                }
 
                /* we cannot use ndr_pull_struct_blob_all() here, as w2k and w2k3 add padding bytes */
-               ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, iconv_convenience, &_pkb,
+               ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &_pkb,
                                               (ndr_pull_flags_fn_t)ndr_pull_package_PrimaryKerberosBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        ret = EINVAL;
@@ -701,8 +700,8 @@ static krb5_error_code samba_kdc_message2entry(krb5_context context,
        entry_ex->entry.generation = NULL;
 
        /* Get keys from the db */
-       ret = samba_kdc_message2entry_keys(context, p->kdc_db_ctx->ic_ctx, p,
-                                           msg, userAccountControl, entry_ex);
+       ret = samba_kdc_message2entry_keys(context, p, msg, userAccountControl,
+                                                                          entry_ex);
        if (ret) {
                /* Could be bougus data in the entry, or out of memory */
                goto out;
@@ -808,7 +807,7 @@ static krb5_error_code samba_kdc_trust_message2entry(krb5_context context,
                goto out;
        }
 
-       ndr_err = ndr_pull_struct_blob(password_val, mem_ctx, p->kdc_db_ctx->ic_ctx, &password_blob,
+       ndr_err = ndr_pull_struct_blob(password_val, mem_ctx, &password_blob,
                                           (ndr_pull_flags_fn_t)ndr_pull_trustAuthInOutBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                ret = EINVAL;
index 984999b83c872a7d6581c0a02b0eac2ae515ba5a..b824bb86b089edddb3576ca0c12c66e2d56958bc 100644 (file)
@@ -589,9 +589,7 @@ static NTSTATUS kdc_check_generic_kerberos(struct irpc_message *msg,
        /* There is no reply to this request */
        r->out.generic_reply = data_blob(NULL, 0);
 
-       ndr_err = ndr_pull_struct_blob(&r->in.generic_request, msg,
-                                      lp_iconv_convenience(kdc->task->lp_ctx),
-                                      &pac_validate,
+       ndr_err = ndr_pull_struct_blob(&r->in.generic_request, msg, &pac_validate,
                                       (ndr_pull_flags_fn_t)ndr_pull_PAC_Validate);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NT_STATUS_INVALID_PARAMETER;
index 2a932fa832bb7011cfeff5e55cccb6098fe24e33..8c203e555d8aa3143f2a6f7c90baf5e6ecb441ad 100644 (file)
@@ -34,7 +34,6 @@
 
 static
 NTSTATUS samba_get_logon_info_pac_blob(TALLOC_CTX *mem_ctx,
-                                      struct smb_iconv_convenience *ic,
                                       struct auth_serversupplied_info *info,
                                       DATA_BLOB *pac_data)
 {
@@ -59,7 +58,7 @@ NTSTATUS samba_get_logon_info_pac_blob(TALLOC_CTX *mem_ctx,
 
        pac_info.logon_info.info->info3 = *info3;
 
-       ndr_err = ndr_push_union_blob(pac_data, mem_ctx, ic, &pac_info,
+       ndr_err = ndr_push_union_blob(pac_data, mem_ctx, &pac_info,
                                      PAC_TYPE_LOGON_INFO,
                                      (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -154,9 +153,7 @@ NTSTATUS samba_kdc_get_pac_blob(TALLOC_CTX *mem_ctx,
                return nt_status;
        }
 
-       nt_status = samba_get_logon_info_pac_blob(mem_ctx,
-                                                 p->kdc_db_ctx->ic_ctx,
-                                                 server_info, pac_blob);
+       nt_status = samba_get_logon_info_pac_blob(mem_ctx, server_info, pac_blob);
        if (!NT_STATUS_IS_OK(nt_status)) {
                DEBUG(0, ("Building PAC failed: %s\n",
                          nt_errstr(nt_status)));
@@ -169,20 +166,19 @@ NTSTATUS samba_kdc_get_pac_blob(TALLOC_CTX *mem_ctx,
 
 NTSTATUS samba_kdc_update_pac_blob(TALLOC_CTX *mem_ctx,
                                   krb5_context context,
-                                  struct smb_iconv_convenience *ic,
                                   krb5_pac *pac, DATA_BLOB *pac_blob)
 {
        struct auth_serversupplied_info *server_info;
        krb5_error_code ret;
        NTSTATUS nt_status;
 
-       ret = kerberos_pac_to_server_info(mem_ctx, ic, *pac,
+       ret = kerberos_pac_to_server_info(mem_ctx, *pac,
                                          context, &server_info);
        if (ret) {
                return NT_STATUS_UNSUCCESSFUL;
        }
 
-       nt_status = samba_get_logon_info_pac_blob(mem_ctx, ic,
+       nt_status = samba_get_logon_info_pac_blob(mem_ctx, 
                                                  server_info, pac_blob);
 
        return nt_status;
index 9ebb4bb5c3d8c18dd3e4773ed846dec97605cfe7..5e21199488de7d65a92fc3ebc344af52bca1dd60 100644 (file)
@@ -57,7 +57,6 @@ static int ldif_write_NDR(struct ldb_context *ldb, void *mem_ctx,
        }
        p = talloc_size(mem_ctx, struct_size);
        err = ndr_pull_struct_blob(in, mem_ctx, 
-                                  lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), 
                                   p, pull_fn);
        if (err != NDR_ERR_SUCCESS) {
                /* fail in not in mask_error mode */
@@ -90,7 +89,7 @@ static int ldif_read_objectSid(struct ldb_context *ldb, void *mem_ctx,
        if (sid == NULL) {
                return -1;
        }
-       ndr_err = ndr_push_struct_blob(out, mem_ctx, NULL, sid,
+       ndr_err = ndr_push_struct_blob(out, mem_ctx, sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
        talloc_free(sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -112,7 +111,7 @@ int ldif_write_objectSid(struct ldb_context *ldb, void *mem_ctx,
        if (sid == NULL) {
                return -1;
        }
-       ndr_err = ndr_pull_struct_blob_all(in, sid, NULL, sid,
+       ndr_err = ndr_pull_struct_blob_all(in, sid, sid,
                                           (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(sid);
@@ -209,7 +208,7 @@ static int extended_dn_read_SID(struct ldb_context *ldb, void *mem_ctx,
                                     (const char *)in->data, in->length);
 
        /* Check it looks like a SID */
-       ndr_err = ndr_pull_struct_blob_all(out, mem_ctx, NULL, &sid,
+       ndr_err = ndr_pull_struct_blob_all(out, mem_ctx, &sid,
                                           (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return -1;
@@ -365,7 +364,7 @@ static int ldif_read_ntSecurityDescriptor(struct ldb_context *ldb, void *mem_ctx
                return -1;
        }
 
-       ndr_err = ndr_pull_struct_blob(in, sd, NULL, sd,
+       ndr_err = ndr_pull_struct_blob(in, sd, sd,
                                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                /* If this does not parse, then it is probably SDDL, and we should try it that way */
@@ -378,7 +377,7 @@ static int ldif_read_ntSecurityDescriptor(struct ldb_context *ldb, void *mem_ctx
                }
        }
 
-       ndr_err = ndr_push_struct_blob(out, mem_ctx, NULL, sd,
+       ndr_err = ndr_push_struct_blob(out, mem_ctx, sd,
                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor);
        talloc_free(sd);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -411,7 +410,7 @@ static int ldif_write_ntSecurityDescriptor(struct ldb_context *ldb, void *mem_ct
                return -1;
        }
        /* We can't use ndr_pull_struct_blob_all because this contains relative pointers */
-       ndr_err = ndr_pull_struct_blob(in, sd, NULL, sd,
+       ndr_err = ndr_pull_struct_blob(in, sd, sd,
                                           (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(sd);
@@ -588,7 +587,6 @@ static int ldif_read_prefixMap(struct ldb_context *ldb, void *mem_ctx,
        }
 
        ndr_err = ndr_push_struct_blob(out, mem_ctx, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), 
                                       blob,
                                       (ndr_push_flags_fn_t)ndr_push_prefixMapBlob);
        talloc_free(tmp_ctx);
@@ -633,7 +631,6 @@ static int ldif_write_prefixMap(struct ldb_context *ldb, void *mem_ctx,
                return -1;
        }
        ndr_err = ndr_pull_struct_blob_all(in, blob, 
-                                          lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")), 
                                           blob,
                                           (ndr_pull_flags_fn_t)ndr_pull_prefixMapBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index c82ad398ff41225c62f40f826f12ba0a53d2f2a5..e7c0b874c1d47678dde19a53c44cb6a6b60569f7 100644 (file)
@@ -97,11 +97,9 @@ NTSTATUS messaging_register_tmp(struct messaging_context *msg, void *private_dat
 struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, 
                                         const char *dir,
                                         struct server_id server_id, 
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct tevent_context *ev);
 struct messaging_context *messaging_client_init(TALLOC_CTX *mem_ctx, 
                                         const char *dir,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct tevent_context *ev);
 NTSTATUS messaging_send_ptr(struct messaging_context *msg, struct server_id server, 
                            uint32_t msg_type, void *ptr);
index 3850bcbc4918cad462463c6bca82bc41c909bac8..19d6971088b4983b513e9c12b004cbe20ce03c64 100644 (file)
@@ -47,7 +47,6 @@ struct messaging_context {
        struct idr_context *dispatch_tree;
        struct messaging_rec *pending;
        struct messaging_rec *retry_queue;
-       struct smb_iconv_convenience *iconv_convenience;
        struct irpc_list *irpc;
        struct idr_context *idr;
        const char **names;
@@ -544,7 +543,6 @@ static int messaging_destructor(struct messaging_context *msg)
 struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, 
                                         const char *dir,
                                         struct server_id server_id, 
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct tevent_context *ev)
 {
        struct messaging_context *msg;
@@ -573,7 +571,6 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
        msg->base_path     = talloc_reference(msg, dir);
        msg->path          = messaging_path(msg, server_id);
        msg->server_id     = server_id;
-       msg->iconv_convenience = iconv_convenience;
        msg->idr           = idr_init(msg);
        msg->dispatch_tree = idr_init(msg);
        msg->start_time    = timeval_current();
@@ -624,13 +621,12 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
 */
 struct messaging_context *messaging_client_init(TALLOC_CTX *mem_ctx, 
                                                const char *dir,
-                                               struct smb_iconv_convenience *iconv_convenience,
                                                struct tevent_context *ev)
 {
        struct server_id id;
        ZERO_STRUCT(id);
        id.id = random() % 0x10000000;
-       return messaging_init(mem_ctx, dir, id, iconv_convenience, ev);
+       return messaging_init(mem_ctx, dir, id, ev);
 }
 /*
   a list of registered irpc server functions
@@ -714,7 +710,7 @@ NTSTATUS irpc_send_reply(struct irpc_message *m, NTSTATUS status)
        m->header.status = status;
 
        /* setup the reply */
-       push = ndr_push_init_ctx(m->ndr, m->msg_ctx->iconv_convenience);
+       push = ndr_push_init_ctx(m->ndr);
        if (push == NULL) {
                status = NT_STATUS_NO_MEMORY;
                goto failed;
@@ -814,7 +810,7 @@ static void irpc_handler(struct messaging_context *msg_ctx, void *private_data,
 
        m->from = src;
 
-       m->ndr = ndr_pull_init_blob(packet, m, msg_ctx->iconv_convenience);
+       m->ndr = ndr_pull_init_blob(packet, m);
        if (m->ndr == NULL) goto failed;
 
        m->ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
@@ -906,7 +902,7 @@ struct irpc_request *irpc_call_send(struct messaging_context *msg_ctx,
        header.status     = NT_STATUS_OK;
 
        /* construct the irpc packet */
-       ndr = ndr_push_init_ctx(irpc, msg_ctx->iconv_convenience);
+       ndr = ndr_push_init_ctx(irpc);
        if (ndr == NULL) goto failed;
 
        ndr_err = ndr_push_irpc_header(ndr, NDR_SCALARS|NDR_BUFFERS, &header);
index cea3accce055e1a3c455377b93181c94821cc61b..ddcf945400a6155ed0db3d2c893a8360d290045d 100644 (file)
@@ -99,12 +99,10 @@ PyObject *py_messaging_connect(PyTypeObject *self, PyObject *args, PyObject *kwa
                ret->msg_ctx = messaging_init(ret->mem_ctx, 
                                            messaging_path,
                                            server_id,
-                                       py_iconv_convenience(ret->mem_ctx),
                                            ev);
        } else {
                ret->msg_ctx = messaging_client_init(ret->mem_ctx, 
                                            messaging_path,
-                                       py_iconv_convenience(ret->mem_ctx),
                                            ev);
        }
 
@@ -355,12 +353,10 @@ PyObject *py_irpc_connect(PyTypeObject *self, PyObject *args, PyObject *kwargs)
                ret->msg_ctx = messaging_init(ret->mem_ctx, 
                                            messaging_path,
                                            server_id,
-                                       py_iconv_convenience(ret->mem_ctx),
                                            ev);
        } else {
                ret->msg_ctx = messaging_client_init(ret->mem_ctx, 
                                            messaging_path,
-                                       py_iconv_convenience(ret->mem_ctx),
                                            ev);
        }
 
index 3eb23e0f7d53c90681b4791736391fc3cceb466f..87a3c7a124cae4162be2f83ebd43ef7fef3b2c0d 100644 (file)
@@ -222,7 +222,6 @@ static bool irpc_setup(struct torture_context *tctx, void **_data)
                       messaging_init(tctx, 
                                      lp_messaging_path(tctx, tctx->lp_ctx), 
                                      cluster_id(0, MSG_ID1),
-                                     lp_iconv_convenience(tctx->lp_ctx),
                                      data->ev),
                       "Failed to init first messaging context");
 
@@ -230,7 +229,6 @@ static bool irpc_setup(struct torture_context *tctx, void **_data)
                       messaging_init(tctx, 
                                      lp_messaging_path(tctx, tctx->lp_ctx),
                                      cluster_id(0, MSG_ID2), 
-                                     lp_iconv_convenience(tctx->lp_ctx),
                                      data->ev),
                       "Failed to init second messaging context");
 
index f61132caac07cb363181df1a1227bd5525c7da1f..96cb180ff7a01a5d7cc043af1c3635970aad3075 100644 (file)
@@ -72,9 +72,7 @@ static bool test_ping_speed(struct torture_context *tctx)
        ev = tctx->ev;
 
        msg_server_ctx = messaging_init(tctx, 
-                                       lp_messaging_path(tctx, tctx->lp_ctx), 
-                                       cluster_id(0, 1), 
-                                       lp_iconv_convenience(tctx->lp_ctx),
+                                       lp_messaging_path(tctx, tctx->lp_ctx), cluster_id(0, 1), 
                                        ev);
        
        torture_assert(tctx, msg_server_ctx != NULL, "Failed to init ping messaging context");
@@ -85,7 +83,6 @@ static bool test_ping_speed(struct torture_context *tctx)
        msg_client_ctx = messaging_init(tctx, 
                                        lp_messaging_path(tctx, tctx->lp_ctx), 
                                        cluster_id(0, 2), 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        ev);
 
        torture_assert(tctx, msg_client_ctx != NULL, 
index c9cb247071c21a544087b974a1b0e14026a7fc42..5763dff0d2d86735ac9789efb4102683fb8fb07d 100644 (file)
@@ -54,7 +54,7 @@ _PUBLIC_ WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location,
 
        if (!strncmp(peek, "regf", 4)) {
                close(fd);
-               return reg_open_regf_file(parent_ctx, location, lp_iconv_convenience(lp_ctx), root);
+               return reg_open_regf_file(parent_ctx, location, root);
        } else if (!strncmp(peek, "TDB file", 8)) {
                close(fd);
                return reg_open_ldb_file(parent_ctx, location, session_info,
index a01c3554c406f78530c2b0745eda35435c6d89c1..061d0fe52d4db8101e323c565877df48ade2e255 100644 (file)
 
 
 _PUBLIC_ WERROR reg_preg_diff_load(int fd,
-                                  struct smb_iconv_convenience *iconv_convenience, 
                                   const struct reg_diff_callbacks *callbacks,
                                   void *callback_data);
 
 _PUBLIC_ WERROR reg_dotreg_diff_load(int fd,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     const struct reg_diff_callbacks *callbacks,
                                     void *callback_data);
 
@@ -338,7 +336,6 @@ _PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
  * Load diff file
  */
 _PUBLIC_ WERROR reg_diff_load(const char *filename,
-                             struct smb_iconv_convenience *iconv_convenience,
                              const struct reg_diff_callbacks *callbacks,
                              void *callback_data)
 {
@@ -372,10 +369,10 @@ _PUBLIC_ WERROR reg_diff_load(const char *filename,
 #endif
        if (strncmp(hdr, "PReg", 4) == 0) {
                /* Must be a GPO Registry.pol file */
-               return reg_preg_diff_load(fd, iconv_convenience, callbacks, callback_data);
+               return reg_preg_diff_load(fd, callbacks, callback_data);
        } else {
                /* Must be a normal .REG file */
-               return reg_dotreg_diff_load(fd, iconv_convenience, callbacks, callback_data);
+               return reg_dotreg_diff_load(fd, callbacks, callback_data);
        }
 }
 
@@ -531,7 +528,6 @@ static WERROR reg_diff_apply_del_all_values(void *_ctx, const char *key_name)
  * Apply diff to a registry context
  */
 _PUBLIC_ WERROR reg_diff_apply(struct registry_context *ctx, 
-                                                          struct smb_iconv_convenience *iconv_convenience, 
                                                           const char *filename)
 {
        struct reg_diff_callbacks callbacks;
@@ -543,6 +539,5 @@ _PUBLIC_ WERROR reg_diff_apply(struct registry_context *ctx,
        callbacks.del_all_values = reg_diff_apply_del_all_values;
        callbacks.done = NULL;
 
-       return reg_diff_load(filename, iconv_convenience,
-                            &callbacks, ctx);
+       return reg_diff_load(filename, &callbacks, ctx);
 }
index 5bb955ebc3f906d39f84178da02d68119486ead2..70437a1087a49a5ba2944fe2b1462119def88742 100644 (file)
@@ -35,7 +35,6 @@
 
 struct dotreg_data {
        int fd;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 static WERROR reg_dotreg_diff_add_key(void *_data, const char *key_name)
@@ -61,7 +60,7 @@ static WERROR reg_dotreg_diff_set_value(void *_data, const char *path,
                                        uint32_t value_type, DATA_BLOB value)
 {
        struct dotreg_data *data = (struct dotreg_data *)_data;
-       char *data_string = reg_val_data_string(NULL, data->iconv_convenience,
+       char *data_string = reg_val_data_string(NULL, 
                                                value_type, value);
        W_ERROR_HAVE_NO_MEMORY(data_string);
        fdprintf(data->fd, "\"%s\"=%s:%s\n",
@@ -101,7 +100,6 @@ static WERROR reg_dotreg_diff_del_all_values(void *callback_data,
  * Save registry diff
  */
 _PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     struct reg_diff_callbacks **callbacks,
                                     void **callback_data)
 {
@@ -110,8 +108,6 @@ _PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
        data = talloc_zero(ctx, struct dotreg_data);
        *callback_data = data;
 
-       data->iconv_convenience = iconv_convenience;
-
        if (filename) {
                data->fd = open(filename, O_CREAT|O_WRONLY, 0755);
                if (data->fd < 0) {
@@ -140,7 +136,6 @@ _PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
  * Load diff file
  */
 _PUBLIC_ WERROR reg_dotreg_diff_load(int fd,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     const struct reg_diff_callbacks *callbacks,
                                     void *callback_data)
 {
@@ -248,7 +243,7 @@ _PUBLIC_ WERROR reg_dotreg_diff_load(int fd,
                        q++;
                }
 
-               reg_string_to_val(line, iconv_convenience, 
+               reg_string_to_val(line, 
                                  q?p:"REG_SZ", q?q:p,
                                  &value_type, &value);
 
index 625904bd52e6c5b07917dd3e665326d52b14737c..28b56dd7e95f3af843d6ae37bbd23cb95ab40fb9 100644 (file)
@@ -164,7 +164,6 @@ static WERROR reg_preg_diff_done(void *_data)
  * Save registry diff
  */
 _PUBLIC_ WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename,
-                                  struct smb_iconv_convenience *ic,
                                   struct reg_diff_callbacks **callbacks,
                                   void **callback_data)
 {
@@ -209,7 +208,6 @@ _PUBLIC_ WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename,
  * Load diff file
  */
 _PUBLIC_ WERROR reg_preg_diff_load(int fd,
-                                  struct smb_iconv_convenience *iconv_convenience, 
                                   const struct reg_diff_callbacks *callbacks,
                                   void *callback_data)
 {
index d4cdd895af90d1b3ddf359b9a6b1711ad56327aa..58894feb3a53cc3e9f85be408c7a0947b94a8d8e 100644 (file)
@@ -22,7 +22,6 @@
 #include <tevent.h>
 #include "libcli/util/pyerrors.h"
 #include "lib/registry/registry.h"
-#include "scripting/python/modules.h" /* for py_iconv_convenience() */
 #include "lib/talloc/pytalloc.h"
 #include "auth/credentials/pycredentials.h"
 #include "param/pyparam.h"
@@ -91,7 +90,7 @@ static PyObject *py_diff_apply(PyObject *self, PyObject *args)
        if (!PyArg_ParseTuple(args, "s", &filename))
                return NULL;
 
-       result = reg_diff_apply(ctx, py_iconv_convenience(NULL), filename);
+       result = reg_diff_apply(ctx, filename);
        PyErr_WERROR_IS_ERR_RAISE(result);
 
        Py_RETURN_NONE; 
index 3888b8e3ab271c72be936e635c37908ba9d9d8db..176b256c873dba3ca556cfe4dd6af73a694f4db0 100644 (file)
@@ -49,7 +49,6 @@ struct regf_data {
        int fd;
        struct hbin_block **hbins;
        struct regf_hdr *header;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 static WERROR regf_save_hbin(struct regf_data *data);
@@ -134,7 +133,7 @@ static DATA_BLOB hbin_get(const struct regf_data *data, uint32_t offset)
 static bool hbin_get_tdr(struct regf_data *regf, uint32_t offset,
                         TALLOC_CTX *ctx, tdr_pull_fn_t pull_fn, void *p)
 {
-       struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+       struct tdr_pull *pull = tdr_pull_init(regf);
 
        pull->data = hbin_get(regf, offset);
        if (!pull->data.data) {
@@ -272,7 +271,7 @@ static uint32_t hbin_store (struct regf_data *data, DATA_BLOB blob)
 static uint32_t hbin_store_tdr(struct regf_data *data,
                               tdr_push_fn_t push_fn, void *p)
 {
-       struct tdr_push *push = tdr_push_init(data, data->iconv_convenience);
+       struct tdr_push *push = tdr_push_init(data);
        uint32_t ret;
 
        if (NT_STATUS_IS_ERR(push_fn(push, p))) {
@@ -399,7 +398,7 @@ static uint32_t hbin_store_tdr_resize(struct regf_data *regf,
                                      tdr_push_fn_t push_fn,
                                      uint32_t orig_offset, void *p)
 {
-       struct tdr_push *push = tdr_push_init(regf, regf->iconv_convenience);
+       struct tdr_push *push = tdr_push_init(regf);
        uint32_t ret;
 
        if (NT_STATUS_IS_ERR(push_fn(push, p))) {
@@ -615,7 +614,7 @@ static WERROR regf_get_subkey_by_index(TALLOC_CTX *ctx,
 
        if (!strncmp((char *)data.data, "li", 2)) {
                struct li_block li;
-               struct tdr_pull *pull = tdr_pull_init(private_data->hive, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(private_data->hive);
 
                DEBUG(10, ("Subkeys in LI list\n"));
                pull->data = data;
@@ -636,7 +635,7 @@ static WERROR regf_get_subkey_by_index(TALLOC_CTX *ctx,
 
        } else if (!strncmp((char *)data.data, "lf", 2)) {
                struct lf_block lf;
-               struct tdr_pull *pull = tdr_pull_init(private_data->hive, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(private_data->hive);
 
                DEBUG(10, ("Subkeys in LF list\n"));
                pull->data = data;
@@ -657,7 +656,7 @@ static WERROR regf_get_subkey_by_index(TALLOC_CTX *ctx,
                key_off = lf.hr[idx].nk_offset;
        } else if (!strncmp((char *)data.data, "lh", 2)) {
                struct lh_block lh;
-               struct tdr_pull *pull = tdr_pull_init(private_data->hive, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(private_data->hive);
 
                DEBUG(10, ("Subkeys in LH list\n"));
                pull->data = data;
@@ -677,7 +676,7 @@ static WERROR regf_get_subkey_by_index(TALLOC_CTX *ctx,
                key_off = lh.hr[idx].nk_offset;
        } else if (!strncmp((char *)data.data, "ri", 2)) {
                struct ri_block ri;
-               struct tdr_pull *pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(ctx);
                uint16_t i;
                uint16_t sublist_count = 0;
 
@@ -811,7 +810,7 @@ static WERROR regf_match_subkey_by_name(TALLOC_CTX *ctx,
                return WERR_GENERAL_FAILURE;
        }
 
-       pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+       pull = tdr_pull_init(ctx);
 
        pull->data = subkey_data;
 
@@ -854,7 +853,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
 
        if (!strncmp((char *)data.data, "li", 2)) {
                struct li_block li;
-               struct tdr_pull *pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(ctx);
                uint16_t i;
 
                DEBUG(10, ("Subkeys in LI list\n"));
@@ -885,7 +884,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        return WERR_BADFILE;
        } else if (!strncmp((char *)data.data, "lf", 2)) {
                struct lf_block lf;
-               struct tdr_pull *pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(ctx);
                uint16_t i;
 
                DEBUG(10, ("Subkeys in LF list\n"));
@@ -920,7 +919,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        return WERR_BADFILE;
        } else if (!strncmp((char *)data.data, "lh", 2)) {
                struct lh_block lh;
-               struct tdr_pull *pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(ctx);
                uint16_t i;
                uint32_t hash;
 
@@ -957,7 +956,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        return WERR_BADFILE;
        } else if (!strncmp((char *)data.data, "ri", 2)) {
                struct ri_block ri;
-               struct tdr_pull *pull = tdr_pull_init(ctx, private_data->hive->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(ctx);
                uint16_t i, j;
 
                DEBUG(10, ("Subkeys in RI list\n"));
@@ -1062,7 +1061,7 @@ static WERROR regf_set_sec_desc(struct hive_key *key,
                     (tdr_pull_fn_t) tdr_pull_nk_block, &root);
 
        /* Push the security descriptor to a blob */
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, NULL, 
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, 
                                                          sec_desc, (ndr_push_flags_fn_t)ndr_push_security_descriptor))) {
                DEBUG(0, ("Unable to push security descriptor\n"));
                return WERR_GENERAL_FAILURE;
@@ -1215,7 +1214,7 @@ static WERROR regf_get_sec_desc(TALLOC_CTX *ctx, const struct hive_key *key,
 
        data.data = sk.sec_desc;
        data.length = sk.rec_size;
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_pull_struct_blob(&data, ctx, NULL, *sd,
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_pull_struct_blob(&data, ctx, *sd,
                                                  (ndr_pull_flags_fn_t)ndr_pull_security_descriptor))) {
                DEBUG(0, ("Error parsing security descriptor\n"));
                return WERR_GENERAL_FAILURE;
@@ -1299,7 +1298,7 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
        }
 
        if (!strncmp((char *)data.data, "li", 2)) {
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                struct li_block li;
 
                pull->data = data;
@@ -1328,7 +1327,7 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
 
                talloc_free(li.nk_offset);
        } else if (!strncmp((char *)data.data, "lf", 2)) {
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                struct lf_block lf;
 
                pull->data = data;
@@ -1354,7 +1353,7 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
 
                talloc_free(lf.hr);
        } else if (!strncmp((char *)data.data, "lh", 2)) {
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                struct lh_block lh;
 
                pull->data = data;
@@ -1403,7 +1402,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
 
        if (strncmp((char *)data.data, "li", 2) == 0) {
                struct li_block li;
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                uint16_t i;
                bool found_offset = false;
 
@@ -1447,7 +1446,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                                             list_offset, &li);
        } else if (strncmp((char *)data.data, "lf", 2) == 0) {
                struct lf_block lf;
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                uint16_t i;
                bool found_offset = false;
 
@@ -1493,7 +1492,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                                             list_offset, &lf);
        } else if (strncmp((char *)data.data, "lh", 2) == 0) {
                struct lh_block lh;
-               struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience);
+               struct tdr_pull *pull = tdr_pull_init(regf);
                uint16_t i;
                bool found_offset = false;
 
@@ -1889,7 +1888,7 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
 
 static WERROR regf_save_hbin(struct regf_data *regf)
 {
-       struct tdr_push *push = tdr_push_init(regf, regf->iconv_convenience);
+       struct tdr_push *push = tdr_push_init(regf);
        unsigned int i;
 
        W_ERROR_HAVE_NO_MEMORY(push);
@@ -1907,7 +1906,7 @@ static WERROR regf_save_hbin(struct regf_data *regf)
        regf->header->chksum = regf_hdr_checksum(push->data.data);
        talloc_free(push);
 
-       if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, regf->iconv_convenience,
+       if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd,
                                            (tdr_push_fn_t)tdr_push_regf_hdr,
                                            regf->header))) {
                DEBUG(0, ("Error writing registry file header\n"));
@@ -1920,7 +1919,7 @@ static WERROR regf_save_hbin(struct regf_data *regf)
        }
 
        for (i = 0; regf->hbins[i]; i++) {
-               if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, regf->iconv_convenience,
+               if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, 
                                                    (tdr_push_fn_t)tdr_push_hbin_block,
                                                    regf->hbins[i]))) {
                        DEBUG(0, ("Error writing HBIN block\n"));
@@ -1932,7 +1931,6 @@ static WERROR regf_save_hbin(struct regf_data *regf)
 }
 
 WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, 
-                           struct smb_iconv_convenience *iconv_convenience,
                            const char *location,
                            int minor_version, struct hive_key **key)
 {
@@ -1947,8 +1945,6 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx,
 
        regf = (struct regf_data *)talloc_zero(NULL, struct regf_data);
 
-       regf->iconv_convenience = iconv_convenience;
-
        W_ERROR_HAVE_NO_MEMORY(regf);
 
        DEBUG(5, ("Attempting to create registry file\n"));
@@ -2017,7 +2013,7 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx,
                                         NULL);
        
        /* Push the security descriptor to a blob */
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, NULL, 
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, 
                                     sd, (ndr_push_flags_fn_t)ndr_push_security_descriptor))) {
                DEBUG(0, ("Unable to push security descriptor\n"));
                return WERR_GENERAL_FAILURE;
@@ -2060,7 +2056,7 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx,
 }
 
 WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx, const char *location, 
-                         struct smb_iconv_convenience *iconv_convenience, struct hive_key **key)
+                         struct hive_key **key)
 {
        struct regf_data *regf;
        struct regf_hdr *regf_hdr;
@@ -2069,8 +2065,6 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx, const char *location,
 
        regf = (struct regf_data *)talloc_zero(parent_ctx, struct regf_data);
 
-       regf->iconv_convenience = iconv_convenience;
-
        W_ERROR_HAVE_NO_MEMORY(regf);
 
        DEBUG(5, ("Attempting to load registry file\n"));
@@ -2085,7 +2079,7 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx, const char *location,
                return WERR_GENERAL_FAILURE;
        }
 
-       pull = tdr_pull_init(regf, regf->iconv_convenience);
+       pull = tdr_pull_init(regf);
 
        pull->data.data = (uint8_t*)fd_load(regf->fd, &pull->data.length, 0, regf);
 
index e43b0b054c2a5f95ca4633464bb97f9c66bac173..76247528b2fc645d19e95a004ce5f08eb0124a33 100644 (file)
@@ -23,7 +23,6 @@
 
 struct registry_context;
 struct loadparm_context;
-struct smb_iconv_convenience;
 
 #include <talloc.h>
 #include "libcli/util/werror.h"
@@ -206,8 +205,7 @@ WERROR hive_key_flush(struct hive_key *key);
 WERROR reg_open_directory(TALLOC_CTX *parent_ctx,
                          const char *location, struct hive_key **key);
 WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
-                         const char *location, struct smb_iconv_convenience *iconv_convenience,
-                         struct hive_key **key);
+                         const char *location, struct hive_key **key);
 WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location,
                         struct auth_session_info *session_info,
                         struct cli_credentials *credentials,
@@ -219,7 +217,6 @@ WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location,
 WERROR reg_create_directory(TALLOC_CTX *parent_ctx,
                            const char *location, struct hive_key **key);
 WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx,
-                           struct smb_iconv_convenience *iconv_convenience,
                            const char *location,
                            int major_version,
                            struct hive_key **key);
@@ -453,19 +450,15 @@ WERROR reg_create_key(TALLOC_CTX *mem_ctx,
 
 /* Utility functions */
 const char *str_regtype(int type);
-bool push_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                DATA_BLOB *blob, const char *s);
-bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                      DATA_BLOB *blob, const char **a);
-bool pull_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                const DATA_BLOB *blob, const char **s);
-bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic,
-                      const DATA_BLOB *blob, const char ***a);
+bool push_reg_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char *s);
+bool push_reg_multi_sz(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, const char **a);
+bool pull_reg_sz(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const char **s);
+bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const char ***a);
 int regtype_by_string(const char *str);
-char *reg_val_data_string(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint32_t type, const DATA_BLOB data);
-char *reg_val_description(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const char *name,
+char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type, const DATA_BLOB data);
+char *reg_val_description(TALLOC_CTX *mem_ctx, const char *name,
                          uint32_t type, const DATA_BLOB data);
-bool reg_string_to_val(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, const char *type_str,
+bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str,
                       const char *data_str, uint32_t *type, DATA_BLOB *data);
 WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle,
                        const char *name, struct registry_key **result);
@@ -502,18 +495,16 @@ struct reg_diff_callbacks {
 };
 
 WERROR reg_diff_apply(struct registry_context *ctx, 
-                                         struct smb_iconv_convenience *ic, const char *filename);
+                                         const char *filename);
 
 WERROR reg_generate_diff(struct registry_context *ctx1,
                         struct registry_context *ctx2,
                         const struct reg_diff_callbacks *callbacks,
                         void *callback_data);
 WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
-                           struct smb_iconv_convenience *iconv_convenience,
                            struct reg_diff_callbacks **callbacks,
                            void **callback_data);
 WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename,
-                         struct smb_iconv_convenience *ic,
                          struct reg_diff_callbacks **callbacks,
                          void **callback_data);
 WERROR reg_generate_diff_key(struct registry_key *oldkey,
@@ -522,17 +513,14 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                             const struct reg_diff_callbacks *callbacks,
                             void *callback_data);
 WERROR reg_diff_load(const char *filename,
-                    struct smb_iconv_convenience *iconv_convenience,
                     const struct reg_diff_callbacks *callbacks,
                     void *callback_data);
 
 WERROR reg_dotreg_diff_load(int fd,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     const struct reg_diff_callbacks *callbacks,
                                     void *callback_data);
 
 WERROR reg_preg_diff_load(int fd,
-                  struct smb_iconv_convenience *iconv_convenience, 
                                   const struct reg_diff_callbacks *callbacks,
                                   void *callback_data);
 
index 4241ab5ee273211a21f46a9a16d72be26b5f366f..d6a5bd53f261fcff50598163415877bb9ff38751 100644 (file)
@@ -52,14 +52,11 @@ static bool test_generate_diff(struct torture_context *tctx, void *tcase_data)
 static bool test_diff_load(struct torture_context *tctx, void *tcase_data)
 {
        struct diff_tcase_data *td = tcase_data;
-       struct smb_iconv_convenience *ic;
        struct reg_diff_callbacks *callbacks;
        void *data;
        WERROR error;
 
-       ic = lp_iconv_convenience(tctx->lp_ctx);
-
-       error = reg_diff_load(td->filename, iconv_convenience, callbacks, data);
+       error = reg_diff_load(td->filename, callbacks, data);
        torture_assert_werr_ok(tctx, error, "reg_diff_load");
 
        return true;
@@ -71,7 +68,7 @@ static bool test_diff_apply(struct torture_context *tctx, void *tcase_data)
        struct registry_key *key;
        WERROR error;
 
-       error = reg_diff_apply(td->r1_ctx, lp_iconv_convenience(tctx->lp_ctx), td->filename);
+       error = reg_diff_apply(td->r1_ctx, td->filename);
        torture_assert_werr_ok(tctx, error, "reg_diff_apply");
 
        error = td->r1_ctx->ops->get_predefined_key(td->r1_ctx, HKEY_LOCAL_MACHINE, &key);
@@ -247,16 +244,14 @@ static bool diff_setup_tcase(struct torture_context *tctx, void **data)
 static bool diff_setup_preg_tcase (struct torture_context *tctx, void **data)
 {
        struct diff_tcase_data *td;
-       struct smb_iconv_convenience *ic;
        WERROR error;
 
        diff_setup_tcase(tctx, data);
        td = *data;
 
-       ic = lp_iconv_convenience(tctx->lp_ctx);
-
        td->filename = talloc_asprintf(tctx, "%s/test.pol", td->tempdir);
-       error = reg_preg_diff_save(tctx, td->filename, ic, &td->callbacks, &td->callback_data);
+       error = reg_preg_diff_save(tctx, td->filename,  &td->callbacks,
+                                                          &td->callback_data);
        torture_assert_werr_ok(tctx, error, "reg_preg_diff_save");
 
        return true;
@@ -265,16 +260,14 @@ static bool diff_setup_preg_tcase (struct torture_context *tctx, void **data)
 static bool diff_setup_dotreg_tcase (struct torture_context *tctx, void **data)
 {
        struct diff_tcase_data *td;
-       struct smb_iconv_convenience *ic;
        WERROR error;
 
        diff_setup_tcase(tctx, data);
        td = *data;
 
-       ic = lp_iconv_convenience(tctx->lp_ctx);
-       
        td->filename = talloc_asprintf(tctx, "%s/test.reg", td->tempdir);
-       error = reg_dotreg_diff_save(tctx, td->filename, ic, &td->callbacks, &td->callback_data);
+       error = reg_dotreg_diff_save(tctx, td->filename, &td->callbacks,
+                                                                &td->callback_data);
        torture_assert_werr_ok(tctx, error, "reg_dotreg_diff_save");
 
        return true;
index 75b6c7ff269f222e35c7a9adc507274ce69c9976..a69a6148d52c495a017a4a52e601c81ee87e2fce 100644 (file)
@@ -65,7 +65,7 @@ static bool test_reg_val_data_string_dword(struct torture_context *ctx)
        uint8_t d[] = { 0x20, 0x00, 0x00, 0x00 };
        DATA_BLOB db = { d, 4 };
        torture_assert_str_equal(ctx, "0x00000020",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_DWORD, db),
+                                reg_val_data_string(ctx, REG_DWORD, db),
                                 "dword failed");
        return true;
 }
@@ -75,7 +75,7 @@ static bool test_reg_val_data_string_dword_big_endian(struct torture_context *ct
        uint8_t d[] = { 0x20, 0x00, 0x00, 0x00 };
        DATA_BLOB db = { d, 4 };
        torture_assert_str_equal(ctx, "0x00000020",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_DWORD_BIG_ENDIAN, db),
+                                reg_val_data_string(ctx, REG_DWORD_BIG_ENDIAN, db),
                                 "dword failed");
        return true;
 }
@@ -85,7 +85,7 @@ static bool test_reg_val_data_string_qword(struct torture_context *ctx)
        uint8_t d[] = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
        DATA_BLOB db = { d, 8 };
        torture_assert_str_equal(ctx, "0x0000000000000020",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_QWORD, db),
+                                reg_val_data_string(ctx, REG_QWORD, db),
                                 "qword failed");
        return true;
 }
@@ -93,14 +93,14 @@ static bool test_reg_val_data_string_qword(struct torture_context *ctx)
 static bool test_reg_val_data_string_sz(struct torture_context *ctx)
 {
        DATA_BLOB db;
-       convert_string_talloc_convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,
+       convert_string_talloc(ctx, CH_UTF8, CH_UTF16,
                                          "bla", 3, (void **)&db.data, &db.length, false);
        torture_assert_str_equal(ctx, "bla",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_SZ, db),
+                                reg_val_data_string(ctx, REG_SZ, db),
                                 "sz failed");
        db.length = 4;
        torture_assert_str_equal(ctx, "bl",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_SZ, db),
+                                reg_val_data_string(ctx, REG_SZ, db),
                                 "sz failed");
        return true;
 }
@@ -110,7 +110,7 @@ static bool test_reg_val_data_string_binary(struct torture_context *ctx)
        uint8_t x[] = { 0x1, 0x2, 0x3, 0x4 };
        DATA_BLOB db = { x, 4 };
        torture_assert_str_equal(ctx, "01020304",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_BINARY, db),
+                                reg_val_data_string(ctx, REG_BINARY, db),
                                 "binary failed");
        return true;
 }
@@ -120,7 +120,7 @@ static bool test_reg_val_data_string_empty(struct torture_context *ctx)
 {
        DATA_BLOB db = { NULL, 0 };
        torture_assert_str_equal(ctx, "",
-                                reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx), REG_BINARY, db),
+                                reg_val_data_string(ctx, REG_BINARY, db),
                                 "empty failed");
        return true;
 }
@@ -128,12 +128,12 @@ static bool test_reg_val_data_string_empty(struct torture_context *ctx)
 static bool test_reg_val_description(struct torture_context *ctx)
 {
        DATA_BLOB data;
-       convert_string_talloc_convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,
+       convert_string_talloc(ctx, CH_UTF8, CH_UTF16,
                                            "stationary traveller",
                                            strlen("stationary traveller"),
                                            (void **)&data.data, &data.length, false);
        torture_assert_str_equal(ctx, "camel = REG_SZ : stationary traveller",
-                                reg_val_description(ctx, lp_iconv_convenience(ctx->lp_ctx), "camel", REG_SZ, data),
+                                reg_val_description(ctx, "camel", REG_SZ, data),
                                 "reg_val_description failed");
        return true;
 }
@@ -142,12 +142,12 @@ static bool test_reg_val_description(struct torture_context *ctx)
 static bool test_reg_val_description_nullname(struct torture_context *ctx)
 {
        DATA_BLOB data;
-       convert_string_talloc_convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,
+       convert_string_talloc(ctx, CH_UTF8, CH_UTF16,
                                            "west berlin",
                                            strlen("west berlin"),
                                            (void **)&data.data, &data.length, false);
        torture_assert_str_equal(ctx, "<No Name> = REG_SZ : west berlin",
-                                reg_val_description(ctx, lp_iconv_convenience(ctx->lp_ctx), NULL, REG_SZ, data),
+                                reg_val_description(ctx, NULL, REG_SZ, data),
                                 "description with null name failed");
        return true;
 }
index 905b9a97efc46074067468c235255a6e613da927..4ae9a5bcbf5d48c854c9370bd1bceaa04fb7294d 100644 (file)
@@ -435,8 +435,7 @@ static bool hive_setup_regf(struct torture_context *tctx, void **data)
 
        rmdir(dirname);
 
-       error = reg_create_regf_file(tctx, lp_iconv_convenience(tctx->lp_ctx),
-                                    dirname, 5, &key);
+       error = reg_create_regf_file(tctx, dirname, 5, &key);
        if (!W_ERROR_IS_OK(error)) {
                fprintf(stderr, "Unable to create new regf file\n");
                return false;
index 945b4729034dd4f5c49d8cea710c4a28913e91a9..bd58f7748fd9c240c5f85f2f6901263d64296682 100644 (file)
@@ -130,8 +130,7 @@ int main(int argc, const char **argv)
 
        poptFreeContext(pc);
 
-       error = reg_dotreg_diff_save(ctx, outputfile, lp_iconv_convenience(cmdline_lp_ctx), &callbacks,
-                                    &callback_data);
+       error = reg_dotreg_diff_save(ctx, outputfile, &callbacks, &callback_data);
        if (!W_ERROR_IS_OK(error)) {
                fprintf(stderr, "Problem saving registry diff to '%s': %s\n",
                        outputfile, win_errstr(error));
index 3f550e517e83f2851da5992663c4cbdf9f07aec6..a8c184311650c2ff499c2c4d2f12f6277f42eb10 100644 (file)
@@ -68,7 +68,7 @@ int main(int argc, char **argv)
 
        poptFreeContext(pc);
 
-       reg_diff_apply(h, lp_iconv_convenience(cmdline_lp_ctx), patch);
+       reg_diff_apply(h, patch);
 
        return 0;
 }
index b72b07574e7875c6d7380d357c9a53cdb101096e..3a8c62d1ce8564df102b51d7306d91cc6c714e9a 100644 (file)
@@ -195,9 +195,7 @@ static WERROR cmd_set(struct regshell_context *ctx, int argc, char **argv)
                return WERR_INVALID_PARAM;
        }
 
-       if (!reg_string_to_val(ctx, lp_iconv_convenience(cmdline_lp_ctx), 
-                              argv[2], argv[3], &val.data_type,
-                              &val.data)) {
+       if (!reg_string_to_val(ctx, argv[2], argv[3], &val.data_type, &val.data)) {
                fprintf(stderr, "Unable to interpret data\n");
                return WERR_INVALID_PARAM;
        }
@@ -259,7 +257,7 @@ static WERROR cmd_print(struct regshell_context *ctx, int argc, char **argv)
        }
 
        printf("%s\n%s\n", str_regtype(value_type),
-                  reg_val_data_string(ctx, lp_iconv_convenience(cmdline_lp_ctx), value_type, value_data));
+                  reg_val_data_string(ctx, value_type, value_data));
 
        return WERR_OK;
 }
@@ -290,7 +288,7 @@ static WERROR cmd_ls(struct regshell_context *ctx, int argc, char **argv)
        for (i = 0; W_ERROR_IS_OK(error = reg_key_get_value_by_index(ctx,
                ctx->current, i, &name, &valuetype, &valuedata)); i++)
                printf("V \"%s\" %s %s\n", name, str_regtype(valuetype),
-                          reg_val_data_string(ctx, lp_iconv_convenience(cmdline_lp_ctx), valuetype, valuedata));
+                          reg_val_data_string(ctx, valuetype, valuedata));
 
        return WERR_OK;
 }
index 3a7026b4a475f34614c1a1439d022db6fe126346..68579406722dcfa7103a92938c8a6d008aea3c99 100644 (file)
@@ -81,8 +81,7 @@ static void print_tree(unsigned int level, struct registry_key *p,
                        unsigned int j;
                        for(j = 0; j < level+1; j++) putchar(' ');
                        printf("%s\n",  reg_val_description(mem_ctx,
-                               lp_iconv_convenience(cmdline_lp_ctx), valuename,
-                               valuetype, valuedata));
+                               valuename, valuetype, valuedata));
                }
                talloc_free(mem_ctx);
 
index 62a94dfcc7ec74285d6dce2b89038dee7a162429..fce420e6256f9aca6f4051a6b3f8012ef5d798e2 100644 (file)
@@ -21,9 +21,7 @@
 #include "lib/registry/registry.h"
 #include "librpc/gen_ndr/winreg.h"
 
-_PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, 
-                                  struct smb_iconv_convenience *iconv_convenience,
-                                  uint32_t type,
+_PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type,
                                   const DATA_BLOB data)
 {
        char *ret = NULL;
@@ -34,13 +32,9 @@ _PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx,
        switch (type) {
                case REG_EXPAND_SZ:
                case REG_SZ:
-                       convert_string_talloc_convenience(mem_ctx,
-                                                         iconv_convenience,
-                                                         CH_UTF16, CH_UNIX,
-                                                         data.data,
-                                                         data.length,
-                                                         (void **)&ret,
-                                                         NULL, false);
+                       convert_string_talloc(mem_ctx,
+                                                         CH_UTF16, CH_UNIX, data.data, data.length,
+                                                         (void **)&ret, NULL, false);
                        break;
                case REG_DWORD:
                case REG_DWORD_BIG_ENDIAN:
@@ -73,21 +67,17 @@ _PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx,
 
 /** Generate a string that describes a registry value */
 _PUBLIC_ char *reg_val_description(TALLOC_CTX *mem_ctx, 
-                                  struct smb_iconv_convenience *iconv_convenience, 
                                   const char *name,
                                   uint32_t data_type,
                                   const DATA_BLOB data)
 {
        return talloc_asprintf(mem_ctx, "%s = %s : %s", name?name:"<No Name>",
                               str_regtype(data_type),
-                              reg_val_data_string(mem_ctx, iconv_convenience, data_type, data));
+                              reg_val_data_string(mem_ctx, data_type, data));
 }
 
-_PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, 
-                               struct smb_iconv_convenience *iconv_convenience,
-                               const char *type_str,
-                               const char *data_str, uint32_t *type,
-                               DATA_BLOB *data)
+_PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str,
+                               const char *data_str, uint32_t *type, DATA_BLOB *data)
 {
        *type = regtype_by_string(type_str);
 
@@ -99,10 +89,8 @@ _PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx,
        switch (*type) {
                case REG_SZ:
                case REG_EXPAND_SZ:
-                       return convert_string_talloc_convenience(mem_ctx,
-                                                                iconv_convenience,
-                                                                CH_UNIX, CH_UTF16,
-                                                                data_str,
+                       return convert_string_talloc(mem_ctx,
+                                                                CH_UNIX, CH_UTF16, data_str,
                                                                 strlen(data_str)+1,
                                                                 (void **)&data->data,
                                                                 &data->length, false);
index 1a5bd607b48b2fedbed6d4adffe98c77418b5d88..d670324c88cf161243bb99c3022583e710c9cac4 100644 (file)
@@ -35,7 +35,6 @@ bool smbcli_socket_connect(struct smbcli_state *cli, const char *server,
                           struct tevent_context *ev_ctx,
                           struct resolve_context *resolve_ctx,
                           struct smbcli_options *options,
-                          struct smb_iconv_convenience *iconv_convenience,
                const char *socket_options)
 {
        struct smbcli_socket *sock;
@@ -46,8 +45,7 @@ bool smbcli_socket_connect(struct smbcli_state *cli, const char *server,
 
        if (sock == NULL) return false;
        
-       cli->transport = smbcli_transport_init(sock, cli, true, options, 
-                                                                                  iconv_convenience);
+       cli->transport = smbcli_transport_init(sock, cli, true, options);
        if (!cli->transport) {
                return false;
        }
@@ -154,7 +152,6 @@ NTSTATUS smbcli_full_connection(TALLOC_CTX *parent_ctx,
                                struct tevent_context *ev,
                                struct smbcli_options *options,
                                struct smbcli_session_options *session_options,
-                               struct smb_iconv_convenience *iconv_convenience,
                                struct gensec_settings *gensec_settings)
 {
        struct smbcli_tree *tree;
@@ -169,7 +166,6 @@ NTSTATUS smbcli_full_connection(TALLOC_CTX *parent_ctx,
                                             credentials, resolve_ctx, ev,
                                             options,
                                             session_options,
-                                                iconv_convenience,
                                                 gensec_settings);
        if (!NT_STATUS_IS_OK(status)) {
                goto done;
index 14d82786359cac4f2787f98efec120dceb8a23d3..ab831df8ccb96f4991de29a3dceef7cf6d7531a8 100644 (file)
@@ -38,7 +38,7 @@ NTSTATUS dgram_mailslot_browse_send(struct nbt_dgram_socket *dgmsock,
        DATA_BLOB blob;
        TALLOC_CTX *tmp_ctx = talloc_new(dgmsock);
 
-       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, dgmsock->iconv_convenience, request,
+       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, request,
                                      (ndr_push_flags_fn_t)ndr_push_nbt_browse_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
@@ -66,7 +66,7 @@ NTSTATUS dgram_mailslot_browse_reply(struct nbt_dgram_socket *dgmsock,
        struct nbt_name myname;
        struct socket_address *dest;
 
-       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, dgmsock->iconv_convenience, reply,
+       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, reply,
                                      (ndr_push_flags_fn_t)ndr_push_nbt_browse_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
@@ -99,7 +99,7 @@ NTSTATUS dgram_mailslot_browse_parse(struct dgram_mailslot_handler *dgmslot,
        DATA_BLOB data = dgram_mailslot_data(dgram);
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_pull_struct_blob(&data, mem_ctx, dgmslot->dgmsock->iconv_convenience, pkt,
+       ndr_err = ndr_pull_struct_blob(&data, mem_ctx, pkt,
                                      (ndr_pull_flags_fn_t)ndr_pull_nbt_browse_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS status = ndr_map_error2ntstatus(ndr_err);
index 365960edb6d084bf7bfb22d6172447776ecffdd3..4dd17412afca6527d705f820467d8fffc965ceae 100644 (file)
@@ -71,7 +71,7 @@ static void dgm_socket_recv(struct nbt_dgram_socket *dgmsock)
        }
 
        /* parse the request */
-       ndr_err = ndr_pull_struct_blob(&blob, packet, dgmsock->iconv_convenience, packet,
+       ndr_err = ndr_pull_struct_blob(&blob, packet, packet,
                                      (ndr_pull_flags_fn_t)ndr_pull_nbt_dgram_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
@@ -157,8 +157,7 @@ static void dgm_socket_handler(struct tevent_context *ev, struct tevent_fd *fde,
   then operations will use that event context
 */
 struct nbt_dgram_socket *nbt_dgram_socket_init(TALLOC_CTX *mem_ctx, 
-                                             struct tevent_context *event_ctx,
-                                             struct smb_iconv_convenience *iconv_convenience)
+                                             struct tevent_context *event_ctx)
 {
        struct nbt_dgram_socket *dgmsock;
        NTSTATUS status;
@@ -183,7 +182,6 @@ struct nbt_dgram_socket *nbt_dgram_socket_init(TALLOC_CTX *mem_ctx,
        dgmsock->send_queue = NULL;
        dgmsock->incoming.handler = NULL;
        dgmsock->mailslot_handlers = NULL;
-       dgmsock->iconv_convenience = iconv_convenience;
        
        return dgmsock;
 
@@ -226,7 +224,7 @@ NTSTATUS nbt_dgram_send(struct nbt_dgram_socket *dgmsock,
        req->dest = dest;
        if (talloc_reference(req, dest) == NULL) goto failed;
 
-       ndr_err = ndr_push_struct_blob(&req->encoded, req, dgmsock->iconv_convenience, packet,
+       ndr_err = ndr_push_struct_blob(&req->encoded, req, packet,
                                      (ndr_push_flags_fn_t)ndr_push_nbt_dgram_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
index a17a6042d97edd8c4c9487d9ebcae12f6263ae39..d122281909749875713ac82288dff16d2c12ac13 100644 (file)
@@ -93,8 +93,7 @@ NTSTATUS dgram_set_incoming_handler(struct nbt_dgram_socket *dgmsock,
                                                    struct socket_address *),
                                    void *private_data);
 struct nbt_dgram_socket *nbt_dgram_socket_init(TALLOC_CTX *mem_ctx, 
-                                              struct tevent_context *event_ctx,
-                                              struct smb_iconv_convenience *);
+                                              struct tevent_context *event_ctx);
 
 const char *dgram_mailslot_name(struct nbt_dgram_packet *packet);
 struct dgram_mailslot_handler *dgram_mailslot_find(struct nbt_dgram_socket *dgmsock,
index 26b00bdafd5949dffccb7323ce9cf130778e4724..0aa68642487bb33de8bb3be1eea9b65f22baaa46 100644 (file)
@@ -40,9 +40,7 @@ NTSTATUS dgram_mailslot_netlogon_send(struct nbt_dgram_socket *dgmsock,
        DATA_BLOB blob;
        TALLOC_CTX *tmp_ctx = talloc_new(dgmsock);
 
-       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, 
-                                      dgmsock->iconv_convenience,
-                                      request,
+       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, request,
                                      (ndr_push_flags_fn_t)ndr_push_nbt_netlogon_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
@@ -74,8 +72,7 @@ NTSTATUS dgram_mailslot_netlogon_reply(struct nbt_dgram_socket *dgmsock,
        struct nbt_name myname;
        struct socket_address *dest;
 
-       status = push_nbt_netlogon_response(&blob, tmp_ctx, dgmsock->iconv_convenience,
-                                           reply);
+       status = push_nbt_netlogon_response(&blob, tmp_ctx, reply);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -110,8 +107,8 @@ NTSTATUS dgram_mailslot_netlogon_parse_request(struct dgram_mailslot_handler *dg
        DATA_BLOB data = dgram_mailslot_data(dgram);
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_pull_struct_blob(&data, mem_ctx, dgmslot->dgmsock->iconv_convenience, netlogon,
-                                     (ndr_pull_flags_fn_t)ndr_pull_nbt_netlogon_packet);
+       ndr_err = ndr_pull_struct_blob(&data, mem_ctx, netlogon,
+          (ndr_pull_flags_fn_t)ndr_pull_nbt_netlogon_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                NTSTATUS status = ndr_map_error2ntstatus(ndr_err);
                DEBUG(0,("Failed to parse netlogon packet of length %d: %s\n",
@@ -135,7 +132,7 @@ NTSTATUS dgram_mailslot_netlogon_parse_response(struct dgram_mailslot_handler *d
        NTSTATUS status;
        DATA_BLOB data = dgram_mailslot_data(dgram);
        
-       status = pull_nbt_netlogon_response(&data, mem_ctx, dgmslot->dgmsock->iconv_convenience, netlogon);
+       status = pull_nbt_netlogon_response(&data, mem_ctx, netlogon);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
index 04b25d37efa9a5c7734afe9744bf296a0d628013..bb4c77dab08c9e96a5d51b18465b351f2873e258 100644 (file)
@@ -40,8 +40,6 @@ struct finddcs_state {
        struct nbtd_getdcname r;
        struct nbt_name_status node_status;
 
-       struct smb_iconv_convenience *iconv_convenience;
-
        int num_dcs;
        struct nbt_dc_name *dcs;
        uint16_t nbt_port;
@@ -68,7 +66,6 @@ struct composite_context *finddcs_send(TALLOC_CTX *mem_ctx,
                                       const char *domain_name,
                                       int name_type,
                                       struct dom_sid *domain_sid,
-                                      struct smb_iconv_convenience *iconv_convenience,
                                       struct resolve_context *resolve_ctx,
                                       struct tevent_context *event_ctx,
                                       struct messaging_context *msg_ctx)
@@ -89,7 +86,6 @@ struct composite_context *finddcs_send(TALLOC_CTX *mem_ctx,
        state->nbt_port = nbt_port;
        state->my_netbios_name = talloc_strdup(state, my_netbios_name);
        state->domain_name = talloc_strdup(state, domain_name);
-       state->iconv_convenience = iconv_convenience;
        if (composite_nomem(state->domain_name, c)) return c;
 
        if (domain_sid) {
@@ -202,8 +198,7 @@ static void fallback_node_status(struct finddcs_state *state)
        state->node_status.in.timeout = 1;
        state->node_status.in.retries = 2;
 
-       nbtsock = nbt_name_socket_init(state, state->ctx->event_ctx, 
-                                      state->iconv_convenience);
+       nbtsock = nbt_name_socket_init(state, state->ctx->event_ctx);
        if (composite_nomem(nbtsock, state->ctx)) return;
        
        name_req = nbt_name_status_send(nbtsock, &state->node_status);
@@ -261,7 +256,6 @@ NTSTATUS finddcs(TALLOC_CTX *mem_ctx,
                 uint16_t nbt_port,
                 const char *domain_name, int name_type, 
                 struct dom_sid *domain_sid,
-                struct smb_iconv_convenience *iconv_convenience,
                 struct resolve_context *resolve_ctx,
                 struct tevent_context *event_ctx,
                 struct messaging_context *msg_ctx,
@@ -272,7 +266,6 @@ NTSTATUS finddcs(TALLOC_CTX *mem_ctx,
                                                   nbt_port,
                                                   domain_name, name_type,
                                                   domain_sid, 
-                                                  iconv_convenience,
                                                   resolve_ctx,
                                                   event_ctx, msg_ctx);
        return finddcs_recv(c, mem_ctx, num_dcs, dcs);
index f5e81cd6f6906db31f8784557b7b6522f3c5b851..7a3993c79bf5083ddddb3a9709e9f3266c96e02d 100644 (file)
@@ -75,8 +75,7 @@ static NTSTATUS smbcli_transport_finish_recv(void *private_data, DATA_BLOB blob)
 struct smbcli_transport *smbcli_transport_init(struct smbcli_socket *sock,
                                               TALLOC_CTX *parent_ctx, 
                                               bool primary, 
-                                              struct smbcli_options *options,
-                                                  struct smb_iconv_convenience *iconv_convenience)
+                                              struct smbcli_options *options)
 {
        struct smbcli_transport *transport;
 
@@ -91,7 +90,6 @@ struct smbcli_transport *smbcli_transport_init(struct smbcli_socket *sock,
        transport->negotiate.protocol = PROTOCOL_NT1;
        transport->options = *options;
        transport->negotiate.max_xmit = transport->options.max_xmit;
-       transport->iconv_convenience = iconv_convenience;
 
        /* setup the stream -> packet parser */
        transport->packet = packet_init(transport);
@@ -172,10 +170,10 @@ struct smbcli_request *smbcli_transport_connect_send(struct smbcli_transport *tr
        status = nbt_name_dup(transport, called, &transport->called);
        if (!NT_STATUS_IS_OK(status)) goto failed;
        
-       status = nbt_name_to_blob(tmp_ctx, transport->iconv_convenience, &calling_blob, calling);
+       status = nbt_name_to_blob(tmp_ctx, &calling_blob, calling);
        if (!NT_STATUS_IS_OK(status)) goto failed;
 
-       status = nbt_name_to_blob(tmp_ctx, transport->iconv_convenience, &called_blob, called);
+       status = nbt_name_to_blob(tmp_ctx, &called_blob, called);
        if (!NT_STATUS_IS_OK(status)) goto failed;
 
        /* allocate output buffer */
index a083396f3502ad0cfb2e689160284b2abdc744d4..cee1cd0bf04847d459db547547d77ceeec9b9321 100644 (file)
@@ -179,7 +179,6 @@ NTSTATUS smbcli_tree_full_connection(TALLOC_CTX *parent_ctx,
                                     struct tevent_context *ev,
                                     struct smbcli_options *options,
                                     struct smbcli_session_options *session_options,
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         struct gensec_settings *gensec_settings)
 {
        struct smb_composite_connect io;
@@ -205,7 +204,6 @@ NTSTATUS smbcli_tree_full_connection(TALLOC_CTX *parent_ctx,
        io.in.workgroup = "";
        io.in.options = *options;
        io.in.session_options = *session_options;
-       io.in.iconv_convenience = iconv_convenience;
        
        status = smb_composite_connect(&io, parent_ctx, resolve_ctx, ev);
        if (NT_STATUS_IS_OK(status)) {
index e13ba85361d02fdb44804fb33a3ad2be2cb3539d..c2de2cc7d22cacf26aaf81202ed7d73bb66db27c 100644 (file)
@@ -77,7 +77,7 @@ NTSTATUS smb_raw_query_secdesc_recv(struct smbcli_request *req,
 
        nt.out.data.length = IVAL(nt.out.params.data, 0);
 
-       ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx, NULL);
+       ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx);
        if (!ndr) {
                return NT_STATUS_INVALID_PARAMETER;
        }
@@ -135,7 +135,7 @@ struct smbcli_request *smb_raw_set_secdesc_send(struct smbcli_tree *tree,
        nt.in.params.data = params;
        nt.in.params.length = 8;
 
-       ndr = ndr_push_init_ctx(NULL, NULL);
+       ndr = ndr_push_init_ctx(NULL);
        if (!ndr) return NULL;
 
        ndr_err = ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, io->set_secdesc.in.sd);
index 1509c83e00d55a8749c0e59c913ff7e694052aeb..5797540edd0f63833a9851625a8f9327b28aaf54 100644 (file)
@@ -348,7 +348,7 @@ static struct smbcli_request *smb_raw_nttrans_create_send(struct smbcli_tree *tr
 
        if (parms->ntcreatex.in.sec_desc) {
                enum ndr_err_code ndr_err;
-               ndr_err = ndr_push_struct_blob(&sd_blob, mem_ctx, NULL,
+               ndr_err = ndr_push_struct_blob(&sd_blob, mem_ctx, 
                                               parms->ntcreatex.in.sec_desc,
                                               (ndr_push_flags_fn_t)ndr_push_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index f81a8071d1581b6c328194695f5fa7feeb997cc8..08598a2d64d070316f4dabcd7b8da4e535a3f575 100644 (file)
@@ -253,9 +253,9 @@ NTSTATUS smb_raw_fileinfo_passthru_parse(const DATA_BLOB *blob, TALLOC_CTX *mem_
                parms->query_secdesc.out.sd = talloc(mem_ctx, struct security_descriptor);
                NT_STATUS_HAVE_NO_MEMORY(parms->query_secdesc.out.sd);
 
-               ndr_err = ndr_pull_struct_blob(blob, mem_ctx, NULL, 
-                                              parms->query_secdesc.out.sd,
-                                              (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
+               ndr_err = ndr_pull_struct_blob(blob, mem_ctx,
+                       parms->query_secdesc.out.sd,
+                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return ndr_map_error2ntstatus(ndr_err);
                }
index 892d5e483b02eb4a5681e3cc79992868e6a8f514..6ad3e9ee8d9262af1a8e67466e9f7328496ca051 100644 (file)
@@ -99,8 +99,7 @@ bool smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
        case RAW_FILEINFO_SEC_DESC: {
                enum ndr_err_code ndr_err;
 
-               ndr_err = ndr_push_struct_blob(blob, mem_ctx, NULL,
-                                              parms->set_secdesc.in.sd,
+               ndr_err = ndr_push_struct_blob(blob, mem_ctx, parms->set_secdesc.in.sd,
                                               (ndr_push_flags_fn_t)ndr_push_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return false;
index 73085b87cbcec15afb46cf6eae2e6927a8f74bc7..64d72bcc51aa4f2a93d8ed94b040c7c6b2eace30 100644 (file)
@@ -163,8 +163,7 @@ struct composite_context *resolve_name_nbtlist_send(TALLOC_CTX *mem_ctx,
                return c;
        }
 
-       state->nbtsock = nbt_name_socket_init(state, event_ctx, 
-                                             global_iconv_convenience);
+       state->nbtsock = nbt_name_socket_init(state, event_ctx);
        if (composite_nomem(state->nbtsock, c)) return c;
 
        /* count the address_list size */
index c9fb4ea4e010575e7561d49a6bf73af0e3e9ba93..4e150641850ccef81fe019d4824871356da16611 100644 (file)
@@ -131,8 +131,7 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
        if (io->in.sec_desc) {
                enum ndr_err_code ndr_err;
                DATA_BLOB sd_blob;
-               ndr_err = ndr_push_struct_blob(&sd_blob, req, NULL,
-                                              io->in.sec_desc,
+               ndr_err = ndr_push_struct_blob(&sd_blob, req, io->in.sec_desc,
                                               (ndr_push_flags_fn_t)ndr_push_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        talloc_free(req);
index 16f2af9b3df701af5a382abb2dd6eea3f1385a7d..d36bf2691410d4b3c0a95b4a322a154cb16ab933 100644 (file)
@@ -323,7 +323,7 @@ static NTSTATUS connect_socket(struct composite_context *c,
 
        /* the socket is up - we can initialise the smbcli transport layer */
        state->transport = smbcli_transport_init(state->sock, state, true, 
-                                                &io->in.options, io->in.iconv_convenience);
+                                                &io->in.options);
        NT_STATUS_HAVE_NO_MEMORY(state->transport);
 
        if (is_ipaddress(state->sock->hostname) &&
index 50435cf00026468a9f1642ebacc04eafc55d2f88..4cfdf937259d141c2c5c9c3e81a3bb6af8fe5774 100644 (file)
@@ -79,8 +79,7 @@ static NTSTATUS smblsa_connect(struct smbcli_state *cli)
        }
        lsa->ipc_tree->tid = tcon.tconx.out.tid;
 
-       lsa->pipe = dcerpc_pipe_init(lsa, cli->transport->socket->event.ctx,
-                                                                cli->transport->iconv_convenience);
+       lsa->pipe = dcerpc_pipe_init(lsa, cli->transport->socket->event.ctx);
        if (lsa->pipe == NULL) {
                talloc_free(lsa);
                return NT_STATUS_NO_MEMORY;
index ec7e3798dcf3cfeea41ecf13a510f88644e3f129..75cb34f6327dfa6387d6628bb8e13d7ccee81c57 100644 (file)
@@ -45,8 +45,6 @@ struct wrepl_socket {
 #define WREPL_SOCKET_REQUEST_TIMEOUT   (60)
        uint32_t request_timeout;
 
-       struct smb_iconv_convenience *iconv_convenience;
-
        struct tevent_queue *request_queue;
 
        struct tstream_context *stream;
@@ -70,8 +68,7 @@ bool wrepl_socket_is_connected(struct wrepl_socket *wrepl_sock)
   operations will use that event context
 */
 struct wrepl_socket *wrepl_socket_init(TALLOC_CTX *mem_ctx,
-                                      struct tevent_context *event_ctx,
-                                      struct smb_iconv_convenience *iconv_convenience)
+                                      struct tevent_context *event_ctx)
 {
        struct wrepl_socket *wrepl_socket;
 
@@ -91,8 +88,6 @@ struct wrepl_socket *wrepl_socket_init(TALLOC_CTX *mem_ctx,
                goto failed;
        }
 
-       wrepl_socket->iconv_convenience = iconv_convenience;
-
        wrepl_socket->request_timeout   = WREPL_SOCKET_REQUEST_TIMEOUT;
 
        return wrepl_socket;
@@ -370,7 +365,6 @@ struct tevent_req *wrepl_request_send(TALLOC_CTX *mem_ctx,
 
        state->req.wrap.packet = *packet;
        ndr_err = ndr_push_struct_blob(&state->req.blob, state,
-                                      wrepl_socket->iconv_convenience,
                                       &state->req.wrap,
                                       (ndr_push_flags_fn_t)ndr_push_wrepl_wrap);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -540,7 +534,6 @@ static void wrepl_request_read_pdu_done(struct tevent_req *subreq)
        /* we have a full request - parse it */
        ndr_err = ndr_pull_struct_blob(&blob,
                                       state->rep.packet,
-                                      state->caller.wrepl_socket->iconv_convenience,
                                       state->rep.packet,
                                       (ndr_pull_flags_fn_t)ndr_pull_wrepl_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index a284b33e6ff08d4d43dd188d3949a524e0404335..6af52069d4e4ba3e8ba4bbbbbeb22ddd17c4fae7 100644 (file)
@@ -797,9 +797,7 @@ static void becomeDC_recv_cldap(struct tevent_req *req)
                                          struct libnet_BecomeDC_state);
        struct composite_context *c = s->creq;
 
-       c->status = cldap_netlogon_recv(req,
-                                       lp_iconv_convenience(s->libnet->lp_ctx),
-                                       s, &s->cldap.io);
+       c->status = cldap_netlogon_recv(req, s, &s->cldap.io);
        talloc_free(req);
        if (!composite_is_ok(c)) {
                DEBUG(0,("Failed to send, receive or parse CLDAP reply from server %s for our host %s: %s\n", 
@@ -1754,7 +1752,6 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
        struct drsuapi_DsReplicaObjectIdentifier *identifier;
        uint32_t num_attrs, i = 0;
        struct drsuapi_DsReplicaAttribute *attrs;
-       struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(s->libnet->lp_ctx);
        enum ndr_err_code ndr_err;
        bool w2k3;
        struct tevent_req *subreq;
@@ -1854,7 +1851,8 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                                               NULL);
                if (composite_nomem(v, c)) return;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, v,(ndr_push_flags_fn_t)ndr_push_security_descriptor);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, v,
+               (ndr_push_flags_fn_t)ndr_push_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -1919,8 +1917,8 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                }
                if (composite_nomem(v[0].dn, c)) return;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0], 
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0], 
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -1985,22 +1983,22 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                v[2].sid                = s->zero_sid;
                v[2].dn                 = s->forest.schema_dn_str;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
                }
 
-               ndr_err = ndr_push_struct_blob(&vd[1], vd, iconv_convenience, &v[1],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[1], vd, &v[1],
+               (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
                }
 
-               ndr_err = ndr_push_struct_blob(&vd[2], vd, iconv_convenience, &v[2],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[2], vd, &v[2],
+                  (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -2041,22 +2039,22 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                v[2].sid                = s->zero_sid;
                v[2].dn                 = s->forest.schema_dn_str;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
                }
 
-               ndr_err = ndr_push_struct_blob(&vd[1], vd, iconv_convenience, &v[1],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[1], vd, &v[1],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
                }
 
-               ndr_err = ndr_push_struct_blob(&vd[2], vd, iconv_convenience, &v[2],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[2], vd, &v[2],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -2089,8 +2087,8 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                v[0].sid                = s->zero_sid;
                v[0].dn                 = s->forest.schema_dn_str;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -2121,8 +2119,8 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                v[0].sid                = s->zero_sid;
                v[0].dn                 = s->domain.dn_str;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
@@ -2207,8 +2205,8 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
                v[0].sid                = s->zero_sid;
                v[0].dn                 = s->dest_dsa.computer_dn_str;
 
-               ndr_err = ndr_push_struct_blob(&vd[0], vd, iconv_convenience, &v[0],
-                                              (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
+               ndr_err = ndr_push_struct_blob(&vd[0], vd, &v[0],
+                       (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        c->status = ndr_map_error2ntstatus(ndr_err);
                        if (!composite_is_ok(c)) return;
index 0a8edef31168e548c51e4b453d83d01182da2a1b..21851d5ae89ef7616160ad2ea7714a1e3d16199d 100644 (file)
@@ -192,13 +192,14 @@ struct composite_context* libnet_LookupDCs_send(struct libnet_context *ctx,
 {
        struct composite_context *c;
        struct messaging_context *msg_ctx = 
-               messaging_client_init(mem_ctx, lp_messaging_path(mem_ctx, ctx->lp_ctx), 
-                                     lp_iconv_convenience(ctx->lp_ctx), ctx->event_ctx);
-
-       c = finddcs_send(mem_ctx, lp_netbios_name(ctx->lp_ctx), lp_nbt_port(ctx->lp_ctx),
-                        io->in.domain_name, io->in.name_type,
-                        NULL, lp_iconv_convenience(ctx->lp_ctx), 
-                        ctx->resolve_ctx, ctx->event_ctx, msg_ctx);
+               messaging_client_init(mem_ctx,
+                                                         lp_messaging_path(mem_ctx, ctx->lp_ctx), 
+                                                         ctx->event_ctx);
+
+       c = finddcs_send(mem_ctx, lp_netbios_name(ctx->lp_ctx),
+                                        lp_nbt_port(ctx->lp_ctx), io->in.domain_name,
+                                        io->in.name_type, NULL, ctx->resolve_ctx,
+                                        ctx->event_ctx, msg_ctx);
        return c;
 }
 
index 3147cbb0f91e0b03fbd5f369ed13e945c4fbe96f..bd6dfbf4217f7ea5e429c603d719dcbffc3431a5 100644 (file)
@@ -75,7 +75,7 @@ NTSTATUS libnet_FindSite(TALLOC_CTX *ctx, struct libnet_context *lctx, struct li
                r->out.error_string = NULL;
                return status;
        }
-       status = cldap_netlogon(cldap, lp_iconv_convenience(lctx->lp_ctx), tmp_ctx, &search);
+       status = cldap_netlogon(cldap, tmp_ctx, &search);
        if (!NT_STATUS_IS_OK(status)
            || !search.out.netlogon.data.nt5_ex.client_site) {
                /*
index b584c75be6b627887a6ea507650d8a210ac9fd75..66f73d594fc59a09203be9307807994f40fac18d 100644 (file)
@@ -298,9 +298,7 @@ static void unbecomeDC_recv_cldap(struct tevent_req *req)
                                            struct libnet_UnbecomeDC_state);
        struct composite_context *c = s->creq;
 
-       c->status = cldap_netlogon_recv(req,
-                                       lp_iconv_convenience(s->libnet->lp_ctx),
-                                       s, &s->cldap.io);
+       c->status = cldap_netlogon_recv(req, s, &s->cldap.io);
        talloc_free(req);
        if (!composite_is_ok(c)) return;
 
index 6d4481f97742bc370b1d3972445bcf67456bfb6f..d7ffcd79aac74e8ec82fb1a0c6710a8ffb9e3757 100644 (file)
@@ -423,7 +423,7 @@ static NTSTATUS vampire_schema_chunk(void *private_data,
        }
 
        if (!s->schema) {
-               s->self_made_schema = dsdb_new_schema(s, lp_iconv_convenience(s->lp_ctx));
+               s->self_made_schema = dsdb_new_schema(s);
 
                NT_STATUS_HAVE_NO_MEMORY(s->self_made_schema);
 
index cedc70bb03df77ae97d58294e833853337a1be39..01b8e32bea5b8d94e8a72bd8d834d07076bd3dc8 100644 (file)
@@ -167,7 +167,7 @@ import "nbt.idl";
        } wrepl_packet;
 
        typedef [flag(NDR_BIG_ENDIAN|NDR_PAHEX),public] struct {
-               [value(ndr_size_wrepl_packet(&packet, ndr->iconv_convenience, ndr->flags))] uint32 size;
+               [value(ndr_size_wrepl_packet(&packet, ndr->flags))] uint32 size;
                wrepl_packet    packet;
        } wrepl_wrap;
 
index dfa72b5262c71e7d623ecfb680eb3e0c890d68cc..08c3c7fc6e7c5a9a18022c2bf4bc1ee3e76cd17c 100644 (file)
@@ -81,8 +81,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len2 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience, chset, CH_UNIX, 
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
+                                                   chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    (len2 + c_len_term)*byte_mul,
                                                    (void **)&as, &ret, false)) {
@@ -117,8 +117,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len1 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience, 
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
                                                    chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    (len1 + c_len_term)*byte_mul,
@@ -155,8 +154,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len1 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience, 
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
                                                    chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    (len1 + c_len_term)*byte_mul,
@@ -189,8 +187,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len3 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience,
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
                                                    chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    (len3 + c_len_term)*byte_mul,
@@ -221,8 +218,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len3 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience, 
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
                                                    chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    len3,
@@ -241,8 +237,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                } else {
                        len1 = utf16_len_n(ndr->data+ndr->offset, ndr->data_size - ndr->offset);
                }
-               if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                           ndr->iconv_convenience, chset, CH_UNIX, 
+               if (!convert_string_talloc(ndr->current_mem_ctx,
+                                           chset, CH_UNIX, 
                                            ndr->data+ndr->offset, 
                                            len1,
                                            (void **)&as, &ret, false)) {
@@ -265,8 +261,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
                if (len1 == 0) {
                        as = talloc_strdup(ndr->current_mem_ctx, "");
                } else {
-                       if (!convert_string_talloc_convenience(ndr->current_mem_ctx,
-                                                   ndr->iconv_convenience,
+                       if (!convert_string_talloc(ndr->current_mem_ctx,
                                                    chset, CH_UNIX, 
                                                    ndr->data+ndr->offset, 
                                                    len1,
@@ -327,7 +322,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags,
        if (!(flags & LIBNDR_FLAG_STR_NOTERM)) {
                s_len++;
        }
-       if (!convert_string_talloc_convenience(ndr, ndr->iconv_convenience, CH_UNIX, chset, s, s_len, (void **)&dest, &d_len, false)) {
+       if (!convert_string_talloc(ndr, CH_UNIX, chset, s, s_len, (void **)&dest, &d_len, false)) {
                return ndr_push_error(ndr, NDR_ERR_CHARCNV, 
                                      "Bad character push conversion with flags 0x%x", flags);
        }
@@ -660,8 +655,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_charset(struct ndr_pull *ndr, int ndr_flags,
 
        NDR_PULL_NEED_BYTES(ndr, length*byte_mul);
 
-       if (!convert_string_talloc_convenience(ndr->current_mem_ctx, 
-                                   ndr->iconv_convenience,
+       if (!convert_string_talloc(ndr->current_mem_ctx, 
                                    chset, CH_UNIX, 
                                    ndr->data+ndr->offset, 
                                    length*byte_mul,
@@ -685,9 +679,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_charset(struct ndr_push *ndr, int ndr_flags,
        required = byte_mul * length;
        
        NDR_PUSH_NEED_BYTES(ndr, required);
-       if (!convert_string_convenience(ndr->iconv_convenience, CH_UNIX, chset, 
-                            var, strlen(var),
-                            ndr->data+ndr->offset, required, &ret, false)) {
+       ret = convert_string(CH_UNIX, chset, var, strlen(var),
+                            ndr->data+ndr->offset, required, false);
+       if (ret == -1) {
                return ndr_push_error(ndr, NDR_ERR_CHARCNV, 
                                      "Bad character conversion");
        }
index 95f83465fc2cb3234763f2def753c19e77bd54f9..7265105525a7986329b5108e9f80a2e9c63654ac 100644 (file)
@@ -55,8 +55,7 @@ static int dcerpc_connection_destructor(struct dcerpc_connection *conn)
    the event context is optional
 */
 static struct dcerpc_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx, 
-                                                struct tevent_context *ev,
-                                                struct smb_iconv_convenience *ic)
+                                                struct tevent_context *ev)
 {
        struct dcerpc_connection *c;
 
@@ -65,8 +64,6 @@ static struct dcerpc_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       c->iconv_convenience = talloc_reference(c, ic);
-
        c->event_ctx = ev;
 
        if (c->event_ctx == NULL) {
@@ -90,8 +87,7 @@ static struct dcerpc_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx,
 }
 
 /* initialise a dcerpc pipe. */
-_PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
-                                    struct smb_iconv_convenience *ic)
+_PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev)
 {
        struct dcerpc_pipe *p;
 
@@ -100,7 +96,7 @@ _PUBLIC_ struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent
                return NULL;
        }
 
-       p->conn = dcerpc_connection_init(p, ev, ic);
+       p->conn = dcerpc_connection_init(p, ev);
        if (p->conn == NULL) {
                talloc_free(p);
                return NULL;
@@ -177,7 +173,7 @@ void dcerpc_set_auth_length(DATA_BLOB *blob, uint16_t v)
 static struct ndr_pull *ndr_pull_init_flags(struct dcerpc_connection *c, 
                                            DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
 {
-       struct ndr_pull *ndr = ndr_pull_init_blob(blob, mem_ctx, c->iconv_convenience);
+       struct ndr_pull *ndr = ndr_pull_init_blob(blob, mem_ctx);
 
        if (ndr == NULL) return ndr;
 
@@ -328,7 +324,7 @@ static NTSTATUS ncacn_push_request_sign(struct dcerpc_connection *c,
 
        /* non-signed packets are simpler */
        if (sig_size == 0) {
-               return ncacn_push_auth(blob, mem_ctx, c->iconv_convenience, pkt, NULL);
+               return ncacn_push_auth(blob, mem_ctx, pkt, NULL);
        }
 
        switch (c->security_state.auth_info->auth_level) {
@@ -338,16 +334,16 @@ static NTSTATUS ncacn_push_request_sign(struct dcerpc_connection *c,
 
        case DCERPC_AUTH_LEVEL_CONNECT:
                /* TODO: let the gensec mech decide if it wants to generate a signature */
-               return ncacn_push_auth(blob, mem_ctx, c->iconv_convenience, pkt, NULL);
+               return ncacn_push_auth(blob, mem_ctx, pkt, NULL);
 
        case DCERPC_AUTH_LEVEL_NONE:
-               return ncacn_push_auth(blob, mem_ctx, c->iconv_convenience, pkt, NULL);
+               return ncacn_push_auth(blob, mem_ctx, pkt, NULL);
 
        default:
                return NT_STATUS_INVALID_LEVEL;
        }
 
-       ndr = ndr_push_init_ctx(mem_ctx, c->iconv_convenience);
+       ndr = ndr_push_init_ctx(mem_ctx);
        if (!ndr) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -718,7 +714,7 @@ struct composite_context *dcerpc_bind_send(struct dcerpc_pipe *p,
        pkt.u.bind.auth_info = data_blob(NULL, 0);
 
        /* construct the NDR form of the packet */
-       c->status = ncacn_push_auth(&blob, c, p->conn->iconv_convenience, &pkt,
+       c->status = ncacn_push_auth(&blob, c, &pkt,
                                    p->conn->security_state.auth_info);
        if (!composite_is_ok(c)) return c;
 
@@ -789,7 +785,6 @@ NTSTATUS dcerpc_auth3(struct dcerpc_pipe *p,
 
        /* construct the NDR form of the packet */
        status = ncacn_push_auth(&blob, mem_ctx,
-                                p->conn->iconv_convenience,
                                 &pkt,
                                 p->conn->security_state.auth_info);
        if (!NT_STATUS_IS_OK(status)) {
@@ -1049,7 +1044,7 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c)
        if (req->object) {
                pkt.u.request.object.object = *req->object;
                pkt.pfc_flags |= DCERPC_PFC_FLAG_OBJECT_UUID;
-               chunk_size -= ndr_size_GUID(req->object,NULL,0);
+               chunk_size -= ndr_size_GUID(req->object,0);
        }
 
        /* we send a series of pdus without waiting for a reply */
@@ -1202,7 +1197,7 @@ static NTSTATUS dcerpc_ndr_validate_in(struct dcerpc_connection *c,
                return ndr_map_error2ntstatus(ndr_err);
        }
 
-       push = ndr_push_init_ctx(mem_ctx, c->iconv_convenience);
+       push = ndr_push_init_ctx(mem_ctx);
        if (!push) {
                return NT_STATUS_NO_MEMORY;
        }       
@@ -1260,7 +1255,7 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_connection *c,
        }
        memcpy(st, struct_ptr, struct_size);
 
-       push = ndr_push_init_ctx(mem_ctx, c->iconv_convenience);
+       push = ndr_push_init_ctx(mem_ctx);
        if (!push) {
                return NT_STATUS_NO_MEMORY;
        }       
@@ -1291,7 +1286,7 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_connection *c,
                return ndr_map_error2ntstatus(ndr_err);
        }
 
-       push = ndr_push_init_ctx(mem_ctx, c->iconv_convenience);
+       push = ndr_push_init_ctx(mem_ctx);
        if (!push) {
                return NT_STATUS_NO_MEMORY;
        }       
@@ -1363,7 +1358,7 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
        call = &table->calls[opnum];
 
        /* setup for a ndr_push_* call */
-       push = ndr_push_init_ctx(mem_ctx, p->conn->iconv_convenience);
+       push = ndr_push_init_ctx(mem_ctx);
        if (!push) {
                return NULL;
        }
@@ -1666,7 +1661,7 @@ struct composite_context *dcerpc_alter_context_send(struct dcerpc_pipe *p,
        pkt.u.alter.auth_info = data_blob(NULL, 0);
 
        /* construct the NDR form of the packet */
-       c->status = ncacn_push_auth(&blob, mem_ctx, p->conn->iconv_convenience, &pkt,
+       c->status = ncacn_push_auth(&blob, mem_ctx, &pkt,
                                    p->conn->security_state.auth_info);
        if (!composite_is_ok(c)) return c;
 
index 69de8c54672c1c827eed4b8b09c9b8cac2ac5c14..b1875045bd5c27533c3a3e26cd4b8038ff91697e 100644 (file)
@@ -64,7 +64,6 @@ struct dcerpc_connection {
        struct dcerpc_security security_state;
        const char *binding_string;
        struct tevent_context *event_ctx;
-       struct smb_iconv_convenience *iconv_convenience;
 
        /** Directory in which to save ndrdump-parseable files */
        const char *packet_log_dir;
@@ -271,8 +270,7 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
                                                TALLOC_CTX *mem_ctx, 
                                                void *r);
 const char *dcerpc_server_name(struct dcerpc_pipe *p);
-struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
-                                    struct smb_iconv_convenience *ic);
+struct dcerpc_pipe *dcerpc_pipe_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev);
 NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
                              struct smbcli_tree *tree,
                              const char *pipe_name);
index 1b1f039004ffbdbfa93a75952cc093e33a25b60e..bd371be2d3aac26af3079512f0c3c9911382f443 100644 (file)
@@ -121,7 +121,6 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb_send(TALLOC_CT
        conn->in.service_type           = NULL;
        conn->in.workgroup              = lp_workgroup(lp_ctx);
        conn->in.gensec_settings = lp_gensec_settings(conn, lp_ctx);
-       conn->in.iconv_convenience = lp_iconv_convenience(lp_ctx);
 
        lp_smbcli_options(lp_ctx, &conn->in.options);
        lp_smbcli_session_options(lp_ctx, &conn->in.session_options);
@@ -743,7 +742,7 @@ _PUBLIC_ struct composite_context* dcerpc_pipe_connect_b_send(TALLOC_CTX *parent
        c->private_data = s;
 
        /* initialise dcerpc pipe structure */
-       s->pipe = dcerpc_pipe_init(c, ev, lp_iconv_convenience(lp_ctx));
+       s->pipe = dcerpc_pipe_init(c, ev);
        if (composite_nomem(s->pipe, c)) return c;
 
        if (DEBUGLEVEL >= 10)
index 1d76c65f403e4c212821017abdaaa48935d60822..5f355a59379c7a164f99b47570e5f39cfeed4f73 100644 (file)
@@ -73,7 +73,7 @@ _PUBLIC_ struct composite_context* dcerpc_secondary_connection_send(struct dcerp
        s->binding  = b;
 
        /* initialise second dcerpc pipe based on primary pipe's event context */
-       s->pipe2 = dcerpc_pipe_init(c, s->pipe->conn->event_ctx, s->pipe->conn->iconv_convenience);
+       s->pipe2 = dcerpc_pipe_init(c, s->pipe->conn->event_ctx);
        if (composite_nomem(s->pipe2, c)) return c;
 
        if (DEBUGLEVEL >= 10)
index b71e3060e1c6e5b7cf4f05f5bec04653ff22612b..5873e9dd95e4a0700ab44cae010c70c10cd5660b 100644 (file)
@@ -51,14 +51,13 @@ const struct ndr_interface_call *dcerpc_iface_find_call(const struct ndr_interfa
    push a ncacn_packet into a blob, potentially with auth info
 */
 NTSTATUS ncacn_push_auth(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, 
-                        struct smb_iconv_convenience *iconv_convenience,
                         struct ncacn_packet *pkt,
                         struct dcerpc_auth *auth_info)
 {
        struct ndr_push *ndr;
        enum ndr_err_code ndr_err;
 
-       ndr = ndr_push_init_ctx(mem_ctx, iconv_convenience);
+       ndr = ndr_push_init_ctx(mem_ctx);
        if (!ndr) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -827,7 +826,7 @@ NTSTATUS dcerpc_pull_auth_trailer(struct ncacn_packet *pkt,
 
        *auth_length = pkt_auth_blob->length - pad;
 
-       ndr = ndr_pull_init_blob(pkt_auth_blob, mem_ctx, NULL);
+       ndr = ndr_pull_init_blob(pkt_auth_blob, mem_ctx);
        if (!ndr) {
                return NT_STATUS_NO_MEMORY;
        }
index 277b64741d1890adb7e8f1c706958e9e48a9ad37..4a3bd133685558ca653465085b284cf7d326a6a7 100644 (file)
@@ -75,9 +75,7 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
 
        if (strcmp("0.0.0.0", iface->netmask) != 0) {
                /* listen for broadcasts on port 138 */
-               bcast_dgmsock = nbt_dgram_socket_init(iface, 
-                                                     nbtsrv->task->event_ctx,
-                                                     lp_iconv_convenience(nbtsrv->task->lp_ctx));
+               bcast_dgmsock = nbt_dgram_socket_init(iface, nbtsrv->task->event_ctx);
                if (!bcast_dgmsock) {
                        talloc_free(tmp_ctx);
                        return NT_STATUS_NO_MEMORY;
@@ -104,8 +102,7 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
        }
 
        /* listen for unicasts on port 138 */
-       iface->dgmsock = nbt_dgram_socket_init(iface, nbtsrv->task->event_ctx,
-                                              lp_iconv_convenience(nbtsrv->task->lp_ctx));
+       iface->dgmsock = nbt_dgram_socket_init(iface, nbtsrv->task->event_ctx);
        if (!iface->dgmsock) {
                talloc_free(tmp_ctx);
                return NT_STATUS_NO_MEMORY;
index 99c5886fd9d3b97eff5ee95b9b9807fee7de418b..19639dd167eca7ee53f28faacfe5406bd8e53cb6 100644 (file)
@@ -186,7 +186,7 @@ static NTSTATUS nbtd_add_socket(struct nbtd_server *nbtsrv,
                struct nbt_name_socket *bcast_nbtsock;
 
                /* listen for broadcasts on port 137 */
-               bcast_nbtsock = nbt_name_socket_init(iface, nbtsrv->task->event_ctx, lp_iconv_convenience(nbtsrv->task->lp_ctx));
+               bcast_nbtsock = nbt_name_socket_init(iface, nbtsrv->task->event_ctx);
                if (!bcast_nbtsock) {
                        talloc_free(iface);
                        return NT_STATUS_NO_MEMORY;
@@ -212,8 +212,7 @@ static NTSTATUS nbtd_add_socket(struct nbtd_server *nbtsrv,
        }
 
        /* listen for unicasts on port 137 */
-       iface->nbtsock = nbt_name_socket_init(iface, nbtsrv->task->event_ctx, 
-                                             lp_iconv_convenience(nbtsrv->task->lp_ctx));
+       iface->nbtsock = nbt_name_socket_init(iface, nbtsrv->task->event_ctx);
        if (!iface->nbtsock) {
                talloc_free(iface);
                return NT_STATUS_NO_MEMORY;
index cc135397bbcc31c0254bfba904b81ea327b11750..6a628e491a09d285c3dba20939f27afc533c8f50 100644 (file)
@@ -80,9 +80,7 @@ static NTSTATUS signing_failure(struct ntp_signd_connection *ntp_signdconn,
        signed_reply.packet_id = packet_id;
        signed_reply.signed_packet = data_blob(NULL, 0);
        
-       ndr_err = ndr_push_struct_blob(output, mem_ctx,
-                                      lp_iconv_convenience(ntp_signdconn->ntp_signd->task->lp_ctx),
-                                      &signed_reply,
+       ndr_err = ndr_push_struct_blob(output, mem_ctx, &signed_reply,
                                       (ndr_push_flags_fn_t)ndr_push_signed_reply);
 
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -114,7 +112,6 @@ static NTSTATUS ntp_signd_process(struct ntp_signd_connection *ntp_signd_conn,
        int ret;
 
        ndr_err = ndr_pull_struct_blob_all(input, mem_ctx,
-                                          lp_iconv_convenience(ntp_signd_conn->ntp_signd->task->lp_ctx),
                                           &sign_request,
                                           (ndr_pull_flags_fn_t)ndr_pull_sign_request);
 
@@ -244,9 +241,7 @@ static NTSTATUS ntp_signd_process(struct ntp_signd_connection *ntp_signd_conn,
 
 
        /* Place it into the packet for the wire */
-       ndr_err = ndr_push_struct_blob(output, mem_ctx,
-                                      lp_iconv_convenience(ntp_signd_conn->ntp_signd->task->lp_ctx),
-                                      &signed_reply,
+       ndr_err = ndr_push_struct_blob(output, mem_ctx, &signed_reply,
                                       (ndr_push_flags_fn_t)ndr_push_signed_reply);
 
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 32d1332cce861af448daed816461f9f7d7a66c1f..ef456f05dff93a129a18c45af5994eaeb5dd2ae5 100644 (file)
@@ -180,7 +180,7 @@ static WERROR sptr_PrintServerData(struct ntptr_GenericHandle *server,
                os.build                = server_info->version_build;
                os.extra_string         = "";
 
-               ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx), &os, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
+               ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return WERR_GENERAL_FAILURE;
                }
@@ -203,7 +203,7 @@ static WERROR sptr_PrintServerData(struct ntptr_GenericHandle *server,
                os_ex.product_type      = 0;
                os_ex.reserved          = 0;
 
-               ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx), &os_ex, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
+               ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os_ex, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return WERR_GENERAL_FAILURE;
                }
@@ -240,7 +240,7 @@ static WERROR sptr_GetPrintServerData(struct ntptr_GenericHandle *server, TALLOC
                return result;
        }
 
-       ndr_err = ndr_push_union_blob(&blob, mem_ctx, lp_iconv_convenience(server->ntptr->lp_ctx),
+       ndr_err = ndr_push_union_blob(&blob, mem_ctx, 
                                      &data, *r->out.type, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return WERR_GENERAL_FAILURE;
index 7c6615e3a614f0db585d1f89e9b3b1f9e356bb8c..fdf3aeb3056441df6514eac5ae45f4d5277febcc 100644 (file)
@@ -46,7 +46,6 @@ struct notify_context {
        struct notify_array *array;
        int seqnum;
        struct sys_notify_context *sys_notify_ctx;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 
@@ -113,7 +112,6 @@ struct notify_context *notify_init(TALLOC_CTX *mem_ctx, struct server_id server,
        notify->messaging_ctx = messaging_ctx;
        notify->list = NULL;
        notify->array = NULL;
-       notify->iconv_convenience = lp_iconv_convenience(lp_ctx);
        notify->seqnum = tdb_get_seqnum(notify->w->tdb);
 
        talloc_set_destructor(notify, notify_destructor);
@@ -178,8 +176,7 @@ static NTSTATUS notify_load(struct notify_context *notify)
        blob.data = dbuf.dptr;
        blob.length = dbuf.dsize;
 
-       ndr_err = ndr_pull_struct_blob(&blob, notify->array, notify->iconv_convenience,
-                                      notify->array,
+       ndr_err = ndr_pull_struct_blob(&blob, notify->array, notify->array,
                                       (ndr_pull_flags_fn_t)ndr_pull_notify_array);
        free(dbuf.dptr);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -227,7 +224,7 @@ static NTSTATUS notify_save(struct notify_context *notify)
        tmp_ctx = talloc_new(notify);
        NT_STATUS_HAVE_NO_MEMORY(tmp_ctx);
 
-       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, notify->iconv_convenience, notify->array,
+       ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, notify->array,
                                       (ndr_push_flags_fn_t)ndr_push_notify_array);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
@@ -263,7 +260,7 @@ static void notify_handler(struct messaging_context *msg_ctx, void *private_data
                return;
        }
 
-       ndr_err = ndr_pull_struct_blob(data, tmp_ctx, notify->iconv_convenience, &ev,
+       ndr_err = ndr_pull_struct_blob(data, tmp_ctx, &ev,
                                      (ndr_pull_flags_fn_t)ndr_pull_notify_event);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
@@ -560,7 +557,7 @@ static void notify_send(struct notify_context *notify, struct notify_entry *e,
 
        tmp_ctx = talloc_new(notify);
 
-       ndr_err = ndr_push_struct_blob(&data, tmp_ctx, notify->iconv_convenience, &ev, (ndr_push_flags_fn_t)ndr_push_notify_event);
+       ndr_err = ndr_push_struct_blob(&data, tmp_ctx, &ev, (ndr_push_flags_fn_t)ndr_push_notify_event);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(tmp_ctx);
                return;
index 8f5d10f902808f8d76177246d3f9a62abc2495a4..944ec866314fb0ea4c6d7eb6315b489053d90cb2 100644 (file)
@@ -246,7 +246,7 @@ static NTSTATUS odb_pull_record(struct odb_lock *lck, struct opendb_file *file)
        blob.data = dbuf.dptr;
        blob.length = dbuf.dsize;
 
-       ndr_err = ndr_pull_struct_blob(&blob, lck, lp_iconv_convenience(lck->odb->ntvfs_ctx->lp_ctx), file, (ndr_pull_flags_fn_t)ndr_pull_opendb_file);
+       ndr_err = ndr_pull_struct_blob(&blob, lck, file, (ndr_pull_flags_fn_t)ndr_pull_opendb_file);
        free(dbuf.dptr);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);
@@ -274,7 +274,7 @@ static NTSTATUS odb_push_record(struct odb_lock *lck, struct opendb_file *file)
                return NT_STATUS_OK;
        }
 
-       ndr_err = ndr_push_struct_blob(&blob, lck, lp_iconv_convenience(lck->odb->ntvfs_ctx->lp_ctx), file, (ndr_push_flags_fn_t)ndr_push_opendb_file);
+       ndr_err = ndr_push_struct_blob(&blob, lck, file, (ndr_push_flags_fn_t)ndr_push_opendb_file);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);
        }
index a40fb54e9a32ac94fe44e8645713655c23a4d708..259dcccb7132d00cc00ce6bb734720f84012354d 100644 (file)
@@ -124,10 +124,10 @@ static struct rap_call *new_rap_srv_call(TALLOC_CTX *mem_ctx,
 
        call->mem_ctx = mem_ctx;
 
-       call->ndr_pull_param = ndr_pull_init_blob(&trans->in.params, mem_ctx, lp_iconv_convenience(lp_ctx));
+       call->ndr_pull_param = ndr_pull_init_blob(&trans->in.params, mem_ctx);
        call->ndr_pull_param->flags = RAPNDR_FLAGS;
 
-       call->ndr_pull_data = ndr_pull_init_blob(&trans->in.data, mem_ctx, lp_iconv_convenience(lp_ctx));
+       call->ndr_pull_data = ndr_pull_init_blob(&trans->in.data, mem_ctx);
        call->ndr_pull_data->flags = RAPNDR_FLAGS;
 
        call->heap = talloc(mem_ctx, struct rap_string_heap);
@@ -454,8 +454,8 @@ NTSTATUS ipc_rap_call(TALLOC_CTX *mem_ctx, struct tevent_context *event_ctx, str
        NDR_RETURN(ndr_pull_string(call->ndr_pull_param, NDR_SCALARS,
                                  &call->datadesc));
 
-       call->ndr_push_param = ndr_push_init_ctx(call, lp_iconv_convenience(lp_ctx));
-       call->ndr_push_data = ndr_push_init_ctx(call, lp_iconv_convenience(lp_ctx));
+       call->ndr_push_param = ndr_push_init_ctx(call);
+       call->ndr_push_data = ndr_push_init_ctx(call);
 
        if ((call->ndr_push_param == NULL) || (call->ndr_push_data == NULL))
                return NT_STATUS_NO_MEMORY;
@@ -480,8 +480,8 @@ NTSTATUS ipc_rap_call(TALLOC_CTX *mem_ctx, struct tevent_context *event_ctx, str
        result_param = ndr_push_blob(call->ndr_push_param);
        result_data = ndr_push_blob(call->ndr_push_data);
 
-       final_param = ndr_push_init_ctx(call, lp_iconv_convenience(lp_ctx));
-       final_data = ndr_push_init_ctx(call, lp_iconv_convenience(lp_ctx));
+       final_param = ndr_push_init_ctx(call);
+       final_data = ndr_push_init_ctx(call);
 
        if ((final_param == NULL) || (final_data == NULL))
                return NT_STATUS_NO_MEMORY;
index 8c9e8e91ce4edb6355e1120aecfc1b87939ac734..1455424abe9d123917e6693e5eaca93aff256c0e 100644 (file)
@@ -244,8 +244,6 @@ static NTSTATUS ipc_open(struct ntvfs_module_context *ntvfs,
        struct pipe_state *p;
        struct ipc_private *ipriv = talloc_get_type_abort(ntvfs->private_data,
                                    struct ipc_private);
-       struct smb_iconv_convenience *smb_ic
-               = lp_iconv_convenience(ipriv->ntvfs->ctx->lp_ctx);
        struct ntvfs_handle *h;
        struct ipc_open_state *state;
        struct tevent_req *subreq;
@@ -352,7 +350,6 @@ skip:
 
        subreq = tstream_npa_connect_send(p,
                                          ipriv->ntvfs->ctx->event_ctx,
-                                         smb_ic,
                                          directory,
                                          fname,
                                          client_addr,
index e4448d3442b431f43a927305484258afa380da49..5296811f022934583af7a2f0feed4a3a8a73e06c 100644 (file)
@@ -95,7 +95,6 @@ NTSTATUS pvfs_do_rename(struct pvfs_state *pvfs,
   resolve a wildcard rename pattern. This works on one component of the name
 */
 static const char *pvfs_resolve_wildcard_component(TALLOC_CTX *mem_ctx, 
-                                                  struct smb_iconv_convenience *iconv_convenience,
                                                   const char *fname, 
                                                   const char *pattern)
 {
@@ -115,16 +114,16 @@ static const char *pvfs_resolve_wildcard_component(TALLOC_CTX *mem_ctx,
        while (*p2) {
                codepoint_t c1, c2;
                size_t c_size1, c_size2;
-               c1 = next_codepoint_convenience(iconv_convenience, p1, &c_size1);
-               c2 = next_codepoint_convenience(iconv_convenience, p2, &c_size2);
+               c1 = next_codepoint(p1, &c_size1);
+               c2 = next_codepoint(p2, &c_size2);
                if (c2 == '?') {
-                       d += push_codepoint_convenience(iconv_convenience, d, c1);
+                       d += push_codepoint(d, c1);
                } else if (c2 == '*') {
                        memcpy(d, p1, strlen(p1));
                        d += strlen(p1);
                        break;
                } else {
-                       d += push_codepoint_convenience(iconv_convenience, d, c2);
+                       d += push_codepoint(d, c2);
                }
 
                p1 += c_size1;
@@ -142,7 +141,6 @@ static const char *pvfs_resolve_wildcard_component(TALLOC_CTX *mem_ctx,
   resolve a wildcard rename pattern.
 */
 static const char *pvfs_resolve_wildcard(TALLOC_CTX *mem_ctx, 
-                                        struct smb_iconv_convenience *iconv_convenience,
                                         const char *fname, 
                                         const char *pattern)
 {
@@ -175,8 +173,8 @@ static const char *pvfs_resolve_wildcard(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       base1 = pvfs_resolve_wildcard_component(mem_ctx, iconv_convenience, base1, base2);
-       ext1 = pvfs_resolve_wildcard_component(mem_ctx, iconv_convenience, ext1, ext2);
+       base1 = pvfs_resolve_wildcard_component(mem_ctx, base1, base2);
+       ext1 = pvfs_resolve_wildcard_component(mem_ctx, ext1, ext2);
        if (base1 == NULL || ext1 == NULL) {
                return NULL;
        }
@@ -283,7 +281,7 @@ static NTSTATUS pvfs_rename_one(struct pvfs_state *pvfs,
        NTSTATUS status;
 
        /* resolve the wildcard pattern for this name */
-       fname2 = pvfs_resolve_wildcard(mem_ctx, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx), fname1, fname2);
+       fname2 = pvfs_resolve_wildcard(mem_ctx, fname1, fname2);
        if (fname2 == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
index 9613b7078aacc5873ab87111e8a2034a5ce1c061..0da64a790dabb5a6db381dda5eb1362008cd0e4d 100644 (file)
@@ -186,8 +186,7 @@ static NTSTATUS pvfs_case_search(struct pvfs_state *pvfs,
 /*
   parse a alternate data stream name
 */
-static NTSTATUS parse_stream_name(struct smb_iconv_convenience *ic,
-                                 struct pvfs_filename *name,
+static NTSTATUS parse_stream_name(struct pvfs_filename *name,
                                  const char *s)
 {
        char *p, *stream_name;
@@ -203,7 +202,7 @@ static NTSTATUS parse_stream_name(struct smb_iconv_convenience *ic,
 
        while (*p) {
                size_t c_size;
-               codepoint_t c = next_codepoint_convenience(ic, p, &c_size);
+               codepoint_t c = next_codepoint(p, &c_size);
 
                switch (c) {
                case '/':
@@ -259,7 +258,6 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
                               unsigned int flags, struct pvfs_filename *name)
 {
        char *ret, *p, *p_start;
-       struct smb_iconv_convenience *ic = NULL;
        NTSTATUS status;
 
        name->original_name = talloc_strdup(name, cifs_name);
@@ -300,10 +298,9 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
           for legal characters */
        p_start = p;
 
-       ic = lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx);
        while (*p) {
                size_t c_size;
-               codepoint_t c = next_codepoint_convenience(ic, p, &c_size);
+               codepoint_t c = next_codepoint(p, &c_size);
 
                if (c <= 0x1F) {
                        return NT_STATUS_OBJECT_NAME_INVALID;
@@ -336,7 +333,7 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
                        if (name->has_wildcard) {
                                return NT_STATUS_OBJECT_NAME_INVALID;
                        }
-                       status = parse_stream_name(ic, name, p);
+                       status = parse_stream_name(name, p);
                        if (!NT_STATUS_IS_OK(status)) {
                                return status;
                        }
@@ -388,7 +385,6 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
   return NULL if it can't be reduced
 */
 static NTSTATUS pvfs_reduce_name(TALLOC_CTX *mem_ctx, 
-                                struct smb_iconv_convenience *iconv_convenience, 
                                 const char **fname, unsigned int flags)
 {
        codepoint_t c;
@@ -401,7 +397,7 @@ static NTSTATUS pvfs_reduce_name(TALLOC_CTX *mem_ctx,
        if (s == NULL) return NT_STATUS_NO_MEMORY;
 
        for (num_components=1, p=s; *p; p += c_size) {
-               c = next_codepoint_convenience(iconv_convenience, p, &c_size);
+               c = next_codepoint(p, &c_size);
                if (c == '\\') num_components++;
        }
 
@@ -413,7 +409,7 @@ static NTSTATUS pvfs_reduce_name(TALLOC_CTX *mem_ctx,
 
        components[0] = s;
        for (i=0, p=s; *p; p += c_size) {
-               c = next_codepoint_convenience(iconv_convenience, p, &c_size);
+               c = next_codepoint(p, &c_size);
                if (c == '\\') {
                        *p = 0;
                        components[++i] = p+1;
@@ -539,7 +535,7 @@ NTSTATUS pvfs_resolve_name(struct pvfs_state *pvfs,
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_PATH_SYNTAX_BAD)) {
                /* it might contain .. components which need to be reduced */
-               status = pvfs_reduce_name(*name, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx), &cifs_name, flags);
+               status = pvfs_reduce_name(*name, &cifs_name, flags);
                if (!NT_STATUS_IS_OK(status)) {
                        return status;
                }
index 530def9163063dde0787e86a656f2e69459718cb..fc1cad18949028d471c9ebf7e04d4233d8e08b46 100644 (file)
@@ -104,8 +104,6 @@ struct pvfs_mangle_context {
 
        /* this is used to reverse the base 36 mapping */
        unsigned char base_reverse[256];
-
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 
@@ -390,7 +388,7 @@ static bool is_legal_name(struct pvfs_mangle_context *ctx, const char *name)
 {
        while (*name) {
                size_t c_size;
-               codepoint_t c = next_codepoint_convenience(ctx->iconv_convenience, name, &c_size);
+               codepoint_t c = next_codepoint(name, &c_size);
                if (c == INVALID_CODEPOINT) {
                        return false;
                }
@@ -615,8 +613,6 @@ NTSTATUS pvfs_mangle_init(struct pvfs_state *pvfs)
                return NT_STATUS_NO_MEMORY;
        }
 
-       ctx->iconv_convenience = lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx);
-
        /* by default have a max of 512 entries in the cache. */
        ctx->cache_size = lp_parm_int(pvfs->ntvfs->ctx->lp_ctx, NULL, "mangle", "cachesize", 512);
 
index 1ca09402a322aa3275da4428eeb6e7a1dde6defc..1eb7c318680b55268dc8d40626ed08c71eafef60 100644 (file)
@@ -117,8 +117,8 @@ NTSTATUS pvfs_xattr_ndr_load(struct pvfs_state *pvfs,
        }
 
        /* pull the blob */
-       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx), 
-                                      p, (ndr_pull_flags_fn_t)pull_fn);
+       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, p,
+                                                                  (ndr_pull_flags_fn_t)pull_fn);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);
        }
@@ -140,7 +140,7 @@ NTSTATUS pvfs_xattr_ndr_save(struct pvfs_state *pvfs,
        NTSTATUS status;
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, lp_iconv_convenience(pvfs->ntvfs->ctx->lp_ctx), p, (ndr_push_flags_fn_t)push_fn);
+       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, p, (ndr_push_flags_fn_t)push_fn);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(mem_ctx);
                return ndr_map_error2ntstatus(ndr_err);
index a9ce470e920b6a4d0497334d09859927b4905219..1264106a6038bff132d832fedb136f9c3e83aa70 100644 (file)
@@ -520,6 +520,7 @@ struct loadparm_context {
        struct loadparm_global *globals;
        struct loadparm_service **services;
        struct loadparm_service *sDefault;
+       struct smb_iconv_convenience *iconv_convenience;
        int iNumServices;
        struct loadparm_service *currentService;
        bool bInGlobalSection;
@@ -530,7 +531,6 @@ struct loadparm_context {
                time_t modtime;
        } *file_lists;
        unsigned int flags[NUMPARAMETERS];
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 
@@ -2782,7 +2782,6 @@ struct gensec_settings *lp_gensec_settings(TALLOC_CTX *mem_ctx, struct loadparm_
                return NULL;
        SMB_ASSERT(lp_ctx != NULL);
        settings->lp_ctx = talloc_reference(settings, lp_ctx);
-       settings->iconv_convenience = lp_iconv_convenience(lp_ctx);
        settings->target_hostname = lp_parm_string(lp_ctx, NULL, "gensec", "target_hostname");
        return settings;
 }
index 2962bcdc1f056d65643f791521162b89eebba710..47a3f6b842c961052c541621f07a93f497a26abe 100644 (file)
@@ -182,7 +182,7 @@ struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       ndr_err = ndr_pull_struct_blob(v, result, NULL, result,
+       ndr_err = ndr_pull_struct_blob(v, result, result,
                                       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                *errstring = talloc_asprintf(mem_ctx, "Failed to parse SID on record for %s in %s", 
index 0b0e3f22b6364d908f41d2c038a8a643594a82ed..774309996dd7b2bb1a7465b894127f478cf19ed2 100644 (file)
@@ -486,7 +486,7 @@ static NTSTATUS dcesrv_fault(struct dcesrv_call_state *call, uint32_t fault_code
                return NT_STATUS_NO_MEMORY;
        }
 
-       status = ncacn_push_auth(&rep->blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx), &pkt, NULL);
+       status = ncacn_push_auth(&rep->blob, call, &pkt, NULL);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -531,7 +531,7 @@ static NTSTATUS dcesrv_bind_nak(struct dcesrv_call_state *call, uint32_t reason)
                return NT_STATUS_NO_MEMORY;
        }
 
-       status = ncacn_push_auth(&rep->blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx), &pkt, NULL);
+       status = ncacn_push_auth(&rep->blob, call, &pkt, NULL);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -732,7 +732,8 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
                return NT_STATUS_NO_MEMORY;
        }
 
-       status = ncacn_push_auth(&rep->blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx), &pkt, call->conn->auth_state.auth_info);
+       status = ncacn_push_auth(&rep->blob, call, &pkt,
+                                                        call->conn->auth_state.auth_info);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(call->context);
                call->context = NULL;
@@ -923,7 +924,7 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call)
                return NT_STATUS_NO_MEMORY;
        }
 
-       status = ncacn_push_auth(&rep->blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx), &pkt, call->conn->auth_state.auth_info);
+       status = ncacn_push_auth(&rep->blob, call, &pkt, call->conn->auth_state.auth_info);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -962,8 +963,7 @@ static NTSTATUS dcesrv_request(struct dcesrv_call_state *call)
                return dcesrv_fault(call, DCERPC_FAULT_UNK_IF);
        }
 
-       pull = ndr_pull_init_blob(&call->pkt.u.request.stub_and_verifier, call,
-                                 lp_iconv_convenience(call->conn->dce_ctx->lp_ctx));
+       pull = ndr_pull_init_blob(&call->pkt.u.request.stub_and_verifier, call);
        NT_STATUS_HAVE_NO_MEMORY(pull);
 
        pull->flags |= LIBNDR_FLAG_REF_ALLOC;
@@ -1023,7 +1023,7 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call)
        }
 
        /* form the reply NDR */
-       push = ndr_push_init_ctx(call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx));
+       push = ndr_push_init_ctx(call);
        NT_STATUS_HAVE_NO_MEMORY(push);
 
        /* carry over the pointer count to the reply in case we are
index 59d8be3e24bdda1a58d226af1c3ccbf0cfb65cc0..4915c3ccbc928056bf77720947bd85a1893745c0 100644 (file)
@@ -383,7 +383,7 @@ bool dcesrv_auth_response(struct dcesrv_call_state *call,
 
        /* non-signed packets are simple */
        if (sig_size == 0) {
-               status = ncacn_push_auth(blob, call, lp_iconv_convenience(dce_conn->dce_ctx->lp_ctx), pkt, NULL);
+               status = ncacn_push_auth(blob, call, pkt, NULL);
                return NT_STATUS_IS_OK(status);
        }
 
@@ -397,18 +397,18 @@ bool dcesrv_auth_response(struct dcesrv_call_state *call,
                 * TODO: let the gensec mech decide if it wants to generate a signature
                 *       that might be needed for schannel...
                 */
-               status = ncacn_push_auth(blob, call, lp_iconv_convenience(dce_conn->dce_ctx->lp_ctx), pkt, NULL);
+               status = ncacn_push_auth(blob, call, pkt, NULL);
                return NT_STATUS_IS_OK(status);
 
        case DCERPC_AUTH_LEVEL_NONE:
-               status = ncacn_push_auth(blob, call, lp_iconv_convenience(dce_conn->dce_ctx->lp_ctx), pkt, NULL);
+               status = ncacn_push_auth(blob, call, pkt, NULL);
                return NT_STATUS_IS_OK(status);
 
        default:
                return false;
        }
 
-       ndr = ndr_push_init_ctx(call, lp_iconv_convenience(dce_conn->dce_ctx->lp_ctx));
+       ndr = ndr_push_init_ctx(call);
        if (!ndr) {
                return false;
        }
index 354ebf0f852087061c956d60ee6906f2b91e2848..a9bb1c0b4e88cc11e3d4fdfda156009b7da40dbd 100644 (file)
@@ -136,8 +136,7 @@ static WERROR get_nc_changes_build_object(struct drsuapi_DsReplicaObjectListItem
                return WERR_OK;
        }
 
-       ndr_err = ndr_pull_struct_blob(md_value, obj,
-                                      lp_iconv_convenience(ldb_get_opaque(sam_ctx, "loadparm")), &md,
+       ndr_err = ndr_pull_struct_blob(md_value, obj, &md,
                                       (ndr_pull_flags_fn_t)ndr_pull_replPropertyMetaDataBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return WERR_DS_DRA_INTERNAL_ERROR;
index 8ab3cbfe6bd00e27a93bcf38903f129db5f5e166..2483d680e0682f366c5c9eaa36d58d62e13ec8dc 100644 (file)
@@ -749,7 +749,6 @@ static NTSTATUS get_trustdom_auth_blob(struct dcesrv_call_state *dce_call,
 
        arcfour_crypt_blob(auth_blob->data, auth_blob->length, &session_key);
        ndr_err = ndr_pull_struct_blob(auth_blob, mem_ctx,
-                                      lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx),
                                       auth_struct,
                                       (ndr_pull_flags_fn_t)ndr_pull_trustDomainPasswords);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -797,7 +796,6 @@ static NTSTATUS get_trustauth_inout_blob(struct dcesrv_call_state *dce_call,
                ioblob.previous->array[i].AuthType = 0;
        }
        ndr_err = ndr_push_struct_blob(trustauth_blob, mem_ctx,
-                                      lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx),
                                       &ioblob,
                                       (ndr_push_flags_fn_t)ndr_push_trustAuthInOutBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -3920,7 +3918,6 @@ static int dns_cmp(const char *s1, size_t l1,
 
 /* decode all TDOs forest trust info blobs */
 static NTSTATUS get_ft_info(TALLOC_CTX *mem_ctx,
-                           struct smb_iconv_convenience *ic,
                            struct ldb_message *msg,
                            struct ForestTrustInfo *info)
 {
@@ -3932,8 +3929,7 @@ static NTSTATUS get_ft_info(TALLOC_CTX *mem_ctx,
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
        }
        /* ldb_val is equivalent to DATA_BLOB */
-       ndr_err = ndr_pull_struct_blob_all(ft_blob, mem_ctx, ic,
-                                          info,
+       ndr_err = ndr_pull_struct_blob_all(ft_blob, mem_ctx, info,
                                           (ndr_pull_flags_fn_t)ndr_pull_ForestTrustInfo);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NT_STATUS_INVALID_DOMAIN_STATE;
@@ -4242,8 +4238,6 @@ static NTSTATUS dcesrv_lsa_lsaRSetForestTrustInformation(struct dcesrv_call_stat
 {
        struct dcesrv_handle *h;
        struct lsa_policy_state *p_state;
-       struct loadparm_context *lp_ctx = dce_call->conn->dce_ctx->lp_ctx;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(lp_ctx);
        const char *trust_attrs[] = { "trustPartner", "trustAttributes",
                                      "msDS-TrustForestTrustInfo", NULL };
        struct ldb_message **dom_res = NULL;
@@ -4356,7 +4350,7 @@ static NTSTATUS dcesrv_lsa_lsaRSetForestTrustInformation(struct dcesrv_call_stat
                        return NT_STATUS_NO_MEMORY;
                }
 
-               nt_status = get_ft_info(mem_ctx, ic, dom_res[i], fti);
+               nt_status = get_ft_info(mem_ctx, dom_res[i], fti);
                if (!NT_STATUS_IS_OK(nt_status)) {
                        if (NT_STATUS_EQUAL(nt_status,
                            NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
@@ -4385,8 +4379,7 @@ static NTSTATUS dcesrv_lsa_lsaRSetForestTrustInformation(struct dcesrv_call_stat
 
        /* not just a check, write info back */
 
-       ndr_err = ndr_push_struct_blob(&ft_blob, mem_ctx, ic,
-                                      nfti,
+       ndr_err = ndr_push_struct_blob(&ft_blob, mem_ctx, nfti,
                                       (ndr_push_flags_fn_t)ndr_push_ForestTrustInfo);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NT_STATUS_INVALID_PARAMETER;
index 3842429b8e77543644c9b3194adddd821b268851..011341641a5179c4ccdc5c9058ebf8b29aeb0fe0 100644 (file)
@@ -249,7 +249,6 @@ static NTSTATUS dcesrv_netr_ServerAuthenticate3(struct dcesrv_call_state *dce_ca
        creds->sid = samdb_result_dom_sid(creds, msgs[0], "objectSid");
 
        nt_status = schannel_save_creds_state(mem_ctx,
-                                             lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx),
                                              lp_private_dir(dce_call->conn->dce_ctx->lp_ctx),
                                              creds);
 
@@ -362,7 +361,6 @@ static NTSTATUS dcesrv_netr_creds_server_step_check(struct dcesrv_call_state *dc
        }
 
        nt_status = schannel_check_creds_state(mem_ctx,
-                                              lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx),
                                               lp_private_dir(dce_call->conn->dce_ctx->lp_ctx),
                                               computer_name,
                                               received_authenticator,
@@ -714,7 +712,6 @@ static NTSTATUS dcesrv_netr_LogonSamLogonEx(struct dcesrv_call_state *dce_call,
        struct netlogon_creds_CredentialState *creds;
 
        nt_status = schannel_get_creds_state(mem_ctx,
-                                            lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx),
                                             lp_private_dir(dce_call->conn->dce_ctx->lp_ctx),
                                             r->in.computer_name, &creds);
        if (!NT_STATUS_IS_OK(nt_status)) {
index 6f4df00f9d921d8a3c7e5a9ed6af352a3838c1f9..05e45d852906a4b7ed0907dfd274362fa1746c18 100644 (file)
@@ -135,7 +135,6 @@ static void dcesrv_sock_reply_done(struct tevent_req *subreq)
 
 struct dcerpc_read_ncacn_packet_state {
        struct {
-               struct smb_iconv_convenience *smb_iconv_c;
        } caller;
        DATA_BLOB buffer;
        struct ncacn_packet *pkt;
@@ -150,8 +149,7 @@ static void dcerpc_read_ncacn_packet_done(struct tevent_req *subreq);
 
 static struct tevent_req *dcerpc_read_ncacn_packet_send(TALLOC_CTX *mem_ctx,
                                                 struct tevent_context *ev,
-                                                struct tstream_context *stream,
-                                                struct smb_iconv_convenience *ic)
+                                                struct tstream_context *stream)
 {
        struct tevent_req *req;
        struct dcerpc_read_ncacn_packet_state *state;
@@ -163,7 +161,6 @@ static struct tevent_req *dcerpc_read_ncacn_packet_send(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       state->caller.smb_iconv_c = ic;
        state->buffer = data_blob_const(NULL, 0);
        state->pkt = talloc(state, struct ncacn_packet);
        if (tevent_req_nomem(state->pkt, req)) {
@@ -260,9 +257,7 @@ static void dcerpc_read_ncacn_packet_done(struct tevent_req *subreq)
                return;
        }
 
-       ndr = ndr_pull_init_blob(&state->buffer,
-                                state->pkt,
-                                state->caller.smb_iconv_c);
+       ndr = ndr_pull_init_blob(&state->buffer, state->pkt);
        if (tevent_req_nomem(ndr, req)) {
                return;
        }
@@ -392,8 +387,7 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
 
        subreq = dcerpc_read_ncacn_packet_send(dcesrv_conn,
                                               dcesrv_conn->event_ctx,
-                                              dcesrv_conn->stream,
-                                              lp_iconv_convenience(lp_ctx));
+                                              dcesrv_conn->stream);
        if (!subreq) {
                status = NT_STATUS_NO_MEMORY;
                DEBUG(0,("dcesrv_sock_accept: dcerpc_read_fragment_buffer_send(%s)\n",
@@ -413,7 +407,6 @@ static void dcesrv_read_fragment_done(struct tevent_req *subreq)
        struct ncacn_packet *pkt;
        DATA_BLOB buffer;
        NTSTATUS status;
-       struct loadparm_context *lp_ctx = dce_conn->dce_ctx->lp_ctx;
 
        status = dcerpc_read_ncacn_packet_recv(subreq, dce_conn,
                                               &pkt, &buffer);
@@ -431,8 +424,7 @@ static void dcesrv_read_fragment_done(struct tevent_req *subreq)
 
        subreq = dcerpc_read_ncacn_packet_send(dce_conn,
                                               dce_conn->event_ctx,
-                                              dce_conn->stream,
-                                              lp_iconv_convenience(lp_ctx));
+                                              dce_conn->stream);
        if (!subreq) {
                status = NT_STATUS_NO_MEMORY;
                dcesrv_terminate_connection(dce_conn, nt_errstr(status));
index 0fe8e0eb9b67d135f06bfcd2500edf196c5f16e0..f6212da2502f8c175abb2264a4de442f9879cd98 100644 (file)
@@ -33,11 +33,11 @@ enum spoolss_handle {
        SPOOLSS_NOTIFY
 };
 
-#define SPOOLSS_BUFFER_UNION(fn,ic,info,level) \
-       ((info)?ndr_size_##fn(info, level, ic, 0):0)
+#define SPOOLSS_BUFFER_UNION(fn,info,level) \
+       ((info)?ndr_size_##fn(info, level, 0):0)
 
-#define SPOOLSS_BUFFER_UNION_ARRAY(fn,ic,info,level,count) \
-       ((info)?ndr_size_##fn##_info(dce_call, ic, level, count, info):0)
+#define SPOOLSS_BUFFER_UNION_ARRAY(fn,info,level,count) \
+       ((info)?ndr_size_##fn##_info(dce_call, level, count, info):0)
 
 #define SPOOLSS_BUFFER_OK(val_true,val_false) ((r->in.offered >= *r->out.needed)?val_true:val_false)
 
@@ -238,7 +238,6 @@ static WERROR dcesrv_spoolss_EnumPrinters(struct dcesrv_call_state *dce_call, TA
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.server);
        W_ERROR_NOT_OK_RETURN(status);
@@ -246,7 +245,7 @@ static WERROR dcesrv_spoolss_EnumPrinters(struct dcesrv_call_state *dce_call, TA
        status = ntptr_EnumPrinters(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinters, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinters, *r->out.info, r->in.level, *r->out.count);
        *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
@@ -374,7 +373,6 @@ static WERROR dcesrv_spoolss_EnumPrinterDrivers(struct dcesrv_call_state *dce_ca
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.server);
        W_ERROR_NOT_OK_RETURN(status);
@@ -382,7 +380,7 @@ static WERROR dcesrv_spoolss_EnumPrinterDrivers(struct dcesrv_call_state *dce_ca
        status = ntptr_EnumPrinterDrivers(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinterDrivers, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinterDrivers, *r->out.info, r->in.level, *r->out.count);
        *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
@@ -407,7 +405,6 @@ static WERROR dcesrv_spoolss_GetPrinterDriverDirectory(struct dcesrv_call_state
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.server);
        W_ERROR_NOT_OK_RETURN(status);
@@ -415,7 +412,7 @@ static WERROR dcesrv_spoolss_GetPrinterDriverDirectory(struct dcesrv_call_state
        status = ntptr_GetPrinterDriverDirectory(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_DriverDirectoryInfo, ic, r->out.info, r->in.level);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_DriverDirectoryInfo, r->out.info, r->in.level);
        r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -459,7 +456,6 @@ static WERROR dcesrv_spoolss_GetPrintProcessorDirectory(struct dcesrv_call_state
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.server);
        W_ERROR_NOT_OK_RETURN(status);
@@ -467,7 +463,7 @@ static WERROR dcesrv_spoolss_GetPrintProcessorDirectory(struct dcesrv_call_state
        status = ntptr_GetPrintProcessorDirectory(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_PrintProcessorDirectoryInfo, ic, r->out.info, r->in.level);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_PrintProcessorDirectoryInfo, r->out.info, r->in.level);
        r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -721,7 +717,6 @@ static WERROR dcesrv_spoolss_GetForm(struct dcesrv_call_state *dce_call, TALLOC_
        struct ntptr_GenericHandle *handle;
        struct dcesrv_handle *h;
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx);
 
        DCESRV_PULL_HANDLE_WERR(h, r->in.handle, DCESRV_HANDLE_ANY);
        handle = talloc_get_type(h->data, struct ntptr_GenericHandle);
@@ -742,7 +737,7 @@ static WERROR dcesrv_spoolss_GetForm(struct dcesrv_call_state *dce_call, TALLOC_
                        return WERR_FOOBAR;
        }
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_FormInfo, ic, r->out.info, r->in.level);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION(spoolss_FormInfo, r->out.info, r->in.level);
        r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -789,7 +784,6 @@ static WERROR dcesrv_spoolss_EnumForms(struct dcesrv_call_state *dce_call, TALLO
        struct ntptr_GenericHandle *handle;
        struct dcesrv_handle *h;
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(dce_call->conn->dce_ctx->lp_ctx);
 
        DCESRV_PULL_HANDLE_WERR(h, r->in.handle, DCESRV_HANDLE_ANY);
        handle = talloc_get_type(h->data, struct ntptr_GenericHandle);
@@ -809,7 +803,7 @@ static WERROR dcesrv_spoolss_EnumForms(struct dcesrv_call_state *dce_call, TALLO
                        return WERR_FOOBAR;
        }
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumForms, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumForms, *r->out.info, r->in.level, *r->out.count);
        *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
@@ -824,7 +818,6 @@ static WERROR dcesrv_spoolss_EnumPorts(struct dcesrv_call_state *dce_call, TALLO
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.servername);
        W_ERROR_NOT_OK_RETURN(status);
@@ -832,7 +825,7 @@ static WERROR dcesrv_spoolss_EnumPorts(struct dcesrv_call_state *dce_call, TALLO
        status = ntptr_EnumPorts(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPorts, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPorts, *r->out.info, r->in.level, *r->out.count);
        *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
@@ -847,7 +840,6 @@ static WERROR dcesrv_spoolss_EnumMonitors(struct dcesrv_call_state *dce_call, TA
 {
        struct ntptr_context *ntptr = talloc_get_type(dce_call->context->private_data, struct ntptr_context);
        WERROR status;
-       struct smb_iconv_convenience *ic = lp_iconv_convenience(ntptr->lp_ctx);
 
        status = dcesrv_spoolss_check_server_name(dce_call, mem_ctx, r->in.servername);
        W_ERROR_NOT_OK_RETURN(status);
@@ -855,7 +847,7 @@ static WERROR dcesrv_spoolss_EnumMonitors(struct dcesrv_call_state *dce_call, TA
        status = ntptr_EnumMonitors(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumMonitors, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumMonitors, *r->out.info, r->in.level, *r->out.count);
        *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
index c639c634d19e1fe17af43d7fff0b6b3fda809f85..575902a164e85ff0475e1f8ef9b3f6b45bb19a37 100644 (file)
@@ -141,7 +141,7 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
                        if (sdblob.data == NULL) {
                                return WERR_INVALID_PARAM;
                        }
-                       ndr_err = ndr_pull_struct_blob_all(&sdblob, mem_ctx, NULL, &sd,
+                       ndr_err = ndr_pull_struct_blob_all(&sdblob, mem_ctx, &sd,
                                                           (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                return WERR_INVALID_PARAM;
index c73cfff19c03a5e4e53de31e62ac67ccb9afd8a8..8e3c0a21c279b8e0bb830bcb8cc6ec4579bbbfa6 100644 (file)
@@ -23,7 +23,4 @@
 void py_load_samba_modules(void);
 bool py_update_path(const char *bindir);
 
-#define py_iconv_convenience(mem_ctx) smb_iconv_convenience_reinit(mem_ctx, "ASCII",  \
-                                                                  PyUnicode_GetDefaultEncoding(), true, NULL)
-
 #endif /* __SAMBA_PYTHON_MODULES_H__ */ 
index 5fba041e1eb5f4ce38dc8d9db1c5ca810d823b2d..cfef9d18a42f4fe84f9fb8aaa776bc09dd73081b 100644 (file)
@@ -159,7 +159,7 @@ static NTSTATUS nttrans_create(struct smbsrv_request *req,
                if (io->ntcreatex.in.sec_desc == NULL) {
                        return NT_STATUS_NO_MEMORY;
                }
-               ndr_err = ndr_pull_struct_blob(&blob, io, NULL,
+               ndr_err = ndr_pull_struct_blob(&blob, io, 
                                               io->ntcreatex.in.sec_desc,
                                               (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -206,7 +206,7 @@ static NTSTATUS nttrans_query_sec_desc_send(struct nttrans_op *op)
        NT_STATUS_NOT_OK_RETURN(status);
        params = op->trans->out.params.data;
 
-       ndr_err = ndr_push_struct_blob(&op->trans->out.data, op, NULL,
+       ndr_err = ndr_push_struct_blob(&op->trans->out.data, op, 
                                       io->query_secdesc.out.sd,
                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -272,7 +272,7 @@ static NTSTATUS nttrans_set_sec_desc(struct smbsrv_request *req,
        io->set_secdesc.in.sd = talloc(io, struct security_descriptor);
        NT_STATUS_HAVE_NO_MEMORY(io->set_secdesc.in.sd);
 
-       ndr_err = ndr_pull_struct_blob(&trans->in.data, req, NULL,
+       ndr_err = ndr_pull_struct_blob(&trans->in.data, req, 
                                       io->set_secdesc.in.sd,
                                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 3084236355eb1289823eac566f99f9f513c4bc50..5e4f35e02b71d57169c84c7add4d1b5c16ff9b65 100644 (file)
@@ -150,7 +150,7 @@ static NTSTATUS smb2srv_getinfo_security_send(struct smb2srv_getinfo_op *op)
        union smb_fileinfo *io = talloc_get_type(op->io_ptr, union smb_fileinfo);
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_push_struct_blob(&op->info->out.blob, op->req, NULL,
+       ndr_err = ndr_push_struct_blob(&op->info->out.blob, op->req, 
                                       io->query_secdesc.out.sd,
                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -316,7 +316,7 @@ static NTSTATUS smb2srv_setinfo_security(struct smb2srv_setinfo_op *op, uint8_t
                io->set_secdesc.in.sd = talloc(io, struct security_descriptor);
                NT_STATUS_HAVE_NO_MEMORY(io->set_secdesc.in.sd);
 
-               ndr_err = ndr_pull_struct_blob(&op->info->in.blob, io, NULL,
+               ndr_err = ndr_pull_struct_blob(&op->info->in.blob, io, 
                                               io->set_secdesc.in.sd,
                                               (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 26d0a3e8e04868b3e41618eed58e2e9d1aa577c8..f6460e0ee72de0e6e1829c75293419c0c61c3463 100644 (file)
@@ -109,7 +109,7 @@ void smb2srv_create_recv(struct smb2srv_request *req)
                                smb2srv_send_error(req,  NT_STATUS_NO_MEMORY);
                                return;
                        }
-                       ndr_err = ndr_pull_struct_blob(&io->smb2.in.blobs.blobs[i].data, io, NULL,
+                       ndr_err = ndr_pull_struct_blob(&io->smb2.in.blobs.blobs[i].data, io, 
                                                       io->smb2.in.sec_desc,
                                                       (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 149421532f2f4fd2bc9d7b9fd6968c017155816a..88917c4f388b50a98fc138b2a8309ad14b2c9e1b 100644 (file)
@@ -219,9 +219,7 @@ static NTSTATUS setup_parent_messaging(struct tevent_context *event_ctx,
 
        msg = messaging_init(talloc_autofree_context(), 
                             lp_messaging_path(event_ctx, lp_ctx),
-                            cluster_id(0, SAMBA_PARENT_TASKID),
-                            lp_iconv_convenience(lp_ctx),
-                            event_ctx);
+                            cluster_id(0, SAMBA_PARENT_TASKID), event_ctx);
        NT_STATUS_HAVE_NO_MEMORY(msg);
 
        irpc_add_name(msg, "samba");
index bce663ba8ec1bc28545f0b27d8ccf4a46a94a6e5..d78fd72cc2018c87d4521f68231e84263cebaf3d 100644 (file)
@@ -211,7 +211,6 @@ static void named_pipe_auth_request(struct tevent_req *subreq)
        ndr_err = ndr_pull_struct_blob_all(
                        &call->in,
                        pipe_conn,
-                       lp_iconv_convenience(conn->lp_ctx),
                        &pipe_request,
                        (ndr_pull_flags_fn_t) ndr_pull_named_pipe_auth_req);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -480,7 +479,6 @@ static void named_pipe_auth_request(struct tevent_req *subreq)
 reply:
        /* create the output */
        ndr_err = ndr_push_struct_blob(&call->out, pipe_conn,
-                       lp_iconv_convenience(conn->lp_ctx),
                        &pipe_reply,
                        (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_rep);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 043720597c9b27a6d6338edd4d196e552be1d299..8c38f27d74697b696817d95366e418cb14e02eeb 100644 (file)
@@ -188,9 +188,7 @@ static void stream_new_connection(struct tevent_context *ev,
        /* setup to receive internal messages on this connection */
        srv_conn->msg_ctx = messaging_init(srv_conn, 
                                           lp_messaging_path(srv_conn, lp_ctx),
-                                          srv_conn->server_id, 
-                                          lp_iconv_convenience(lp_ctx),
-                                          ev);
+                                          srv_conn->server_id, ev);
        if (!srv_conn->msg_ctx) {
                stream_terminate_connection(srv_conn, "messaging_init() failed");
                return;
index d5d3eef59cefe8aee01611ce18ed2f8a3ea5207c..55f2fa24b8659d82b9a7c3a81655074fab2397ca 100644 (file)
@@ -81,7 +81,6 @@ static void task_server_callback(struct tevent_context *event_ctx,
        task->msg_ctx = messaging_init(task, 
                                       lp_messaging_path(task, task->lp_ctx),
                                       task->server_id, 
-                                      lp_iconv_convenience(task->lp_ctx),
                                       task->event_ctx);
        if (!task->msg_ctx) {
                task_server_terminate(task, "messaging_init() failed", true);
index 182478a46579d688a95188322ca5cde202546996..2223f391614fd63e0d104e4a172025faeb0b8429 100644 (file)
@@ -114,7 +114,6 @@ static bool torture_pac_self_check(struct torture_context *tctx)
 
        /* OK, go ahead and make a PAC */
        ret = kerberos_create_pac(mem_ctx, 
-                                 lp_iconv_convenience(tctx->lp_ctx),
                                  server_info, 
                                  smb_krb5_context->krb5_context,  
                                  &krbtgt_keyblock,
@@ -141,7 +140,6 @@ static bool torture_pac_self_check(struct torture_context *tctx)
 
        /* Now check that we can read it back (using full decode and validate) */
        nt_status = kerberos_decode_pac(mem_ctx, 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        &pac_data,
                                        tmp_blob,
                                        smb_krb5_context->krb5_context,
@@ -165,7 +163,6 @@ static bool torture_pac_self_check(struct torture_context *tctx)
 
        /* Now check we can read it back (using Heimdal's pac parsing) */
        nt_status = kerberos_pac_blob_to_server_info(mem_ctx, 
-                                                    lp_iconv_convenience(tctx->lp_ctx),
                                                     tmp_blob, 
                                                     smb_krb5_context->krb5_context,
                                                     &server_info_out);
@@ -189,7 +186,6 @@ static bool torture_pac_self_check(struct torture_context *tctx)
 
        /* Now check that we can read it back (yet again) */
        nt_status = kerberos_pac_logon_info(mem_ctx, 
-                                           lp_iconv_convenience(tctx->lp_ctx),
                                            &logon_info,
                                            tmp_blob,
                                            smb_krb5_context->krb5_context,
@@ -409,7 +405,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
 
        /* Decode and verify the signaure on the PAC */
        nt_status = kerberos_decode_pac(mem_ctx, 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        &pac_data,
                                        tmp_blob,
                                        smb_krb5_context->krb5_context,
@@ -430,7 +425,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
 
        /* Now check we can read it back (using Heimdal's pac parsing) */
        nt_status = kerberos_pac_blob_to_server_info(mem_ctx, 
-                                                    lp_iconv_convenience(tctx->lp_ctx),
                                                     tmp_blob, 
                                                     smb_krb5_context->krb5_context,
                                                     &server_info_out);
@@ -468,7 +462,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
 
        /* Parse the PAC again, for the logon info this time (using Samba4's parsing) */
        nt_status = kerberos_pac_logon_info(mem_ctx, 
-                                           lp_iconv_convenience(tctx->lp_ctx),
                                            &logon_info,
                                            tmp_blob,
                                            smb_krb5_context->krb5_context,
@@ -533,7 +526,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
        }
 
        ret = kerberos_encode_pac(mem_ctx, 
-                                 lp_iconv_convenience(tctx->lp_ctx),
                                  pac_data,
                                  smb_krb5_context->krb5_context,
                                  krbtgt_keyblock_p,
@@ -585,7 +577,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
        }
 
        ret = kerberos_create_pac(mem_ctx, 
-                                 lp_iconv_convenience(tctx->lp_ctx),
                                  server_info_out,
                                  smb_krb5_context->krb5_context,
                                  krbtgt_keyblock_p,
@@ -611,7 +602,7 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
         */
        if (tmp_blob.length != validate_blob.length) {
                ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, 
-                                              lp_iconv_convenience(tctx->lp_ctx), &pac_data2,
+                                              &pac_data2,
                                               (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA);
                nt_status = ndr_map_error2ntstatus(ndr_err);
                torture_assert_ntstatus_ok(tctx, nt_status, "can't parse the PAC");
@@ -633,7 +624,7 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
 
        if (memcmp(tmp_blob.data, validate_blob.data, tmp_blob.length) != 0) {
                ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, 
-                                              lp_iconv_convenience(tctx->lp_ctx), &pac_data2,
+                                              &pac_data2,
                                               (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA);
                nt_status = ndr_map_error2ntstatus(ndr_err);
                torture_assert_ntstatus_ok(tctx, nt_status, "can't parse the PAC");
@@ -659,7 +650,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
 
        /* Break the auth time, to ensure we check this vital detail (not setting this caused all the pain in the first place... */
        nt_status = kerberos_decode_pac(mem_ctx, 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        &pac_data,
                                        tmp_blob,
                                        smb_krb5_context->krb5_context,
@@ -697,7 +687,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
        }
 
        nt_status = kerberos_decode_pac(mem_ctx, 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        &pac_data,
                                        tmp_blob,
                                        smb_krb5_context->krb5_context,
@@ -717,7 +706,6 @@ static bool torture_pac_saved_check(struct torture_context *tctx)
        tmp_blob.data[tmp_blob.length - 2]++;
 
        nt_status = kerberos_decode_pac(mem_ctx, 
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        &pac_data,
                                        tmp_blob,
                                        smb_krb5_context->krb5_context,
index 309a394476ca11c5592be77ea6e03e13270ab94e..b2d523283a54b4c8faec2931e5b964d40ffbca2f 100644 (file)
@@ -55,7 +55,6 @@ static struct smbcli_state *open_nbt_connection(struct torture_context *tctx)
 
        if (!smbcli_socket_connect(cli, host, lp_smb_ports(tctx->lp_ctx), tctx->ev,
                                   lp_resolve_context(tctx->lp_ctx), &options, 
-                                  lp_iconv_convenience(tctx->lp_ctx),
                    lp_socket_options(tctx->lp_ctx))) {
                torture_comment(tctx, "Failed to connect with %s\n", host);
                goto failed;
index 37c1f43c39f0f884bb3f19eee27a2c62336132b0..a4d8674db9b8e9fac766908dc2eb2b03d4c4563f 100644 (file)
@@ -435,8 +435,7 @@ static NTSTATUS try_nttrans_len(struct smbcli_state *cli,
 /****************************************************************************
 check for existance of a nttrans call
 ****************************************************************************/
-static bool scan_nttrans(struct smb_iconv_convenience *iconv_convenience,
-                        struct smbcli_state *cli, int op, int level,
+static bool scan_nttrans(struct smbcli_state *cli, int op, int level,
                        int fnum, int dnum, const char *fname)
 {
        int data_len = 0;
@@ -546,7 +545,6 @@ bool torture_nttrans_scan(struct torture_context *torture,
 {
        int op, level;
        const char *fname = "\\scanner.dat";
-       struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(torture->lp_ctx);
        int fnum, dnum;
 
        fnum = smbcli_open(cli->tree, fname, O_RDWR | O_CREAT | O_TRUNC, 
@@ -556,18 +554,15 @@ bool torture_nttrans_scan(struct torture_context *torture,
        for (op=OP_MIN; op<=OP_MAX; op++) {
                printf("Scanning op=%d\n", op);
                for (level = 0; level <= 50; level++) {
-                       scan_nttrans(iconv_convenience,
-                                    cli, op, level, fnum, dnum, fname);
+                       scan_nttrans(cli, op, level, fnum, dnum, fname);
                }
 
                for (level = 0x100; level <= 0x130; level++) {
-                       scan_nttrans(iconv_convenience,
-                                    cli, op, level, fnum, dnum, fname);
+                       scan_nttrans(cli, op, level, fnum, dnum, fname);
                }
 
                for (level = 1000; level < 1050; level++) {
-                       scan_nttrans(iconv_convenience,
-                                    cli, op, level, fnum, dnum, fname);
+                       scan_nttrans(cli, op, level, fnum, dnum, fname);
                }
        }
 
index 158418a284d543cc399101217551dfd7a93eea1e..682bc0963eb48ed57a29d415e99aa9131db0979b 100644 (file)
@@ -49,9 +49,9 @@ bool torture_utable(struct torture_context *tctx,
                SSVAL(c2, 0, c);
                strncpy(fname, "\\utable\\x", sizeof(fname)-1);
                p = fname+strlen(fname);
-               convert_string_convenience(lp_iconv_convenience(tctx->lp_ctx), CH_UTF16, CH_UNIX, 
+               len = convert_string(CH_UTF16, CH_UNIX, 
                                     c2, 2, 
-                                    p, sizeof(fname)-strlen(fname), &len, false);
+                                    p, sizeof(fname)-strlen(fname), false);
                p[len] = 0;
                strncat(fname,"_a_long_extension",sizeof(fname)-1);
 
@@ -97,7 +97,7 @@ bool torture_utable(struct torture_context *tctx,
 }
 
 
-static char *form_name(struct smb_iconv_convenience *iconv_convenience, int c)
+static char *form_name(int c)
 {
        static char fname[256];
        uint8_t c2[4];
@@ -108,9 +108,11 @@ static char *form_name(struct smb_iconv_convenience *iconv_convenience, int c)
        p = fname+strlen(fname);
        SSVAL(c2, 0, c);
 
-       convert_string_convenience(iconv_convenience, CH_UTF16, CH_UNIX, 
+       len = convert_string(CH_UTF16, CH_UNIX, 
                             c2, 2, 
-                            p, sizeof(fname)-strlen(fname), &len, false);
+                            p, sizeof(fname)-strlen(fname), false);
+       if (len == -1)
+               return NULL;
        p[len] = 0;
        return fname;
 }
@@ -138,7 +140,7 @@ bool torture_casetable(struct torture_context *tctx,
 
                torture_comment(tctx, "%04x (%c)\n", c, isprint(c)?c:'.');
 
-               fname = form_name(lp_iconv_convenience(tctx->lp_ctx), c);
+               fname = form_name(c);
                fnum = smbcli_nt_create_full(cli->tree, fname, 0,
 #if 0
                                             SEC_RIGHT_MAXIMUM_ALLOWED, 
index 4282e26a6c7814637e89719760f999b17a1a61ce..a4521eb675d360252a46c65ce53a5ef6d793c3fd 100644 (file)
@@ -500,7 +500,7 @@ static bool torture_drs_unit_pfm_to_from_ldb_val(struct torture_context *tctx, s
        mem_ctx = talloc_new(tctx);
        torture_assert(tctx, mem_ctx, "Unexpected: Have no memory!");
 
-       schema = dsdb_new_schema(mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
+       schema = dsdb_new_schema(mem_ctx);
        torture_assert(tctx, schema, "Unexpected: failed to allocate schema object");
 
        /* set priv->pfm_full as prefixMap for new schema object */
@@ -552,7 +552,7 @@ static bool torture_drs_unit_pfm_read_write_ldb(struct torture_context *tctx, st
        torture_assert(tctx, mem_ctx, "Unexpected: Have no memory!");
 
        /* makeup a dsdb_schema to test with */
-       schema = dsdb_new_schema(mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
+       schema = dsdb_new_schema(mem_ctx);
        torture_assert(tctx, schema, "Unexpected: failed to allocate schema object");
        /* set priv->pfm_full as prefixMap for new schema object */
        schema->prefixmap = priv->pfm_full;
@@ -606,7 +606,7 @@ static bool torture_drs_unit_dsdb_create_prefix_mapping(struct torture_context *
        torture_assert(tctx, mem_ctx, "Unexpected: Have no memory!");
 
        /* makeup a dsdb_schema to test with */
-       schema = dsdb_new_schema(mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
+       schema = dsdb_new_schema(mem_ctx);
        torture_assert(tctx, schema, "Unexpected: failed to allocate schema object");
        /* set priv->pfm_full as prefixMap for new schema object */
        schema->schema_info = priv->schi_default_str;
index f197b479e981e567a10bba0db288793162ae45b5..a69e8a80ccd0b9bf8a1d9020d0693ccfad06f861 100644 (file)
@@ -513,7 +513,7 @@ static bool torture_drs_unit_schemainfo_setup(struct torture_context *tctx,
        torture_assert(tctx, priv->ldb_module, "Not enough memory!");
 
        /* create schema mockup object */
-       priv->schema = dsdb_new_schema(priv, lp_iconv_convenience(tctx->lp_ctx));
+       priv->schema = dsdb_new_schema(priv);
 
        /* pre-cache invocationId for samdb_ntds_invocation_id()
         * to work with our mock ldb */
index 4b7128f3abbe26b0dcce7ecb7a5bb15c2f5e30e7..10a1370b9d860620003e4bb5777027c0f98c3829 100644 (file)
@@ -247,7 +247,6 @@ static bool connect_servers(struct tevent_context *ev,
                                                                     lp_resolve_context(lp_ctx), ev,
                                                                     &smb_options,
                                                                     &smb_session_options,
-                                                                        lp_iconv_convenience(lp_ctx),
                                                                         lp_gensec_settings(lp_ctx, lp_ctx));
                        }
                        if (!NT_STATUS_IS_OK(status)) {
index 05af0a64038a367d6cd525d6f8e9e65ab9f81ce0..73bbcd15cbdbc263fc4a53e25617c8b6f5d84dd1 100644 (file)
@@ -45,7 +45,6 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        struct netlogon_samlogon_response n1;
        struct GUID guid;
        int i;
-       struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(tctx->lp_ctx);
        struct tsocket_address *dest_addr;
        int ret;
 
@@ -69,7 +68,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
 
        printf("Trying without any attributes\n");
        search = empty_search;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
        n1 = search.out.netlogon;
@@ -82,7 +81,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        for (i=0;i<256;i++) {
                search.in.version = i;
                printf("Trying netlogon level %d\n", i);
-               status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+               status = cldap_netlogon(cldap, tctx, &search);
                CHECK_STATUS(status, NT_STATUS_OK);
        }
 
@@ -90,42 +89,42 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        for (i=0;i<31;i++) {
                search.in.version = (1<<i);
                printf("Trying netlogon level 0x%x\n", i);
-               status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+               status = cldap_netlogon(cldap, tctx, &search);
                CHECK_STATUS(status, NT_STATUS_OK);
        }
 
        search.in.version = NETLOGON_NT_VERSION_5|NETLOGON_NT_VERSION_5EX|NETLOGON_NT_VERSION_IP;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
        printf("Trying with User=NULL\n");
        search.in.user = NULL;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
 
        printf("Trying with User=Administrator\n");
        search.in.user = "Administrator";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
 
        search.in.version = NETLOGON_NT_VERSION_5;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
        printf("Trying with User=NULL\n");
        search.in.user = NULL;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
 
        printf("Trying with User=Administrator\n");
        search.in.user = "Administrator";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
@@ -135,7 +134,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        printf("Trying with a GUID\n");
        search.in.realm       = NULL;
        search.in.domain_guid = GUID_string(tctx, &n1.data.nt5_ex.domain_uuid);
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
        CHECK_STRING(GUID_string(tctx, &search.out.netlogon.data.nt5_ex.domain_uuid), search.in.domain_guid);
@@ -144,13 +143,13 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        guid = GUID_random();
        search.in.user        = NULL;
        search.in.domain_guid = GUID_string(tctx, &guid);
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
 
        printf("Trying with a AAC\n");
        search.in.acct_control = ACB_WSTRUST|ACB_SVRTRUST;
        search.in.realm = n1.data.nt5_ex.dns_domain;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
@@ -158,7 +157,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        printf("Trying with a zero AAC\n");
        search.in.acct_control = 0x0;
        search.in.realm = n1.data.nt5_ex.dns_domain;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
@@ -167,7 +166,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        search.in.acct_control = 0x0;
        search.in.user = "Administrator";
        search.in.realm = n1.data.nt5_ex.dns_domain;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "Administrator");
@@ -176,7 +175,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        search.in.user = NULL;
        search.in.acct_control = 0xFF00FF00;
        search.in.realm = n1.data.nt5_ex.dns_domain;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
@@ -184,7 +183,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        printf("Trying with a user only\n");
        search = empty_search;
        search.in.user = "Administrator";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
@@ -196,7 +195,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
 
        printf("Trying with just a bad username\n");
        search.in.user = "___no_such_user___";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
@@ -210,12 +209,12 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        printf("Trying with just a bad domain\n");
        search = empty_search;
        search.in.realm = "___no_such_domain___";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
 
        printf("Trying with a incorrect domain and correct guid\n");
        search.in.domain_guid = GUID_string(tctx, &n1.data.nt5_ex.domain_uuid);
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
@@ -228,7 +227,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
 
        printf("Trying with a incorrect domain and incorrect guid\n");
        search.in.domain_guid = GUID_string(tctx, &guid);
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
@@ -242,7 +241,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        printf("Trying with a incorrect GUID and correct domain\n");
        search.in.domain_guid = GUID_string(tctx, &guid);
        search.in.realm = n1.data.nt5_ex.dns_domain;
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
@@ -255,7 +254,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
 
        printf("Proof other results\n");
        search.in.user = "Administrator";
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.forest, n1.data.nt5_ex.dns_domain);
        CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
@@ -279,7 +278,6 @@ static bool test_cldap_netlogon_flags(struct torture_context *tctx,
        struct cldap_netlogon search;
        struct netlogon_samlogon_response n1;
        uint32_t server_type;
-       struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(tctx->lp_ctx);
        struct tsocket_address *dest_addr;
        int ret;
 
@@ -302,7 +300,7 @@ static bool test_cldap_netlogon_flags(struct torture_context *tctx,
        search.in.version = NETLOGON_NT_VERSION_5 | NETLOGON_NT_VERSION_5EX;
        search.in.map_response = true;
 
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
        n1 = search.out.netlogon;
@@ -399,7 +397,6 @@ static bool test_cldap_netlogon_flag_ds_dns_forest(struct torture_context *tctx,
        struct cldap_netlogon search;
        uint32_t server_type;
        struct netlogon_samlogon_response n1;
-       struct smb_iconv_convenience *iconv_convenience = lp_iconv_convenience(tctx->lp_ctx);
        bool result = true;
        struct tsocket_address *dest_addr;
        int ret;
@@ -423,7 +420,7 @@ static bool test_cldap_netlogon_flag_ds_dns_forest(struct torture_context *tctx,
        search.in.version = NETLOGON_NT_VERSION_5 | NETLOGON_NT_VERSION_5EX;
        search.in.map_response = true;
 
-       status = cldap_netlogon(cldap, iconv_convenience, tctx, &search);
+       status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
        n1 = search.out.netlogon;
index a63c78944b098cbb4d598da563a793db5090e451..27c0746e9ac46592505758c8be2f0fbe156c8636 100644 (file)
@@ -40,9 +40,7 @@ static void request_netlogon_handler(struct tevent_req *req)
        NTSTATUS status;
        TALLOC_CTX *tmp_ctx = talloc_new(NULL);
        io.in.version = 6;
-       status = cldap_netlogon_recv(req,
-                                    lp_iconv_convenience(state->tctx->lp_ctx),
-                                    tmp_ctx, &io);
+       status = cldap_netlogon_recv(req, tmp_ctx, &io);
        talloc_free(req);
        if (NT_STATUS_IS_OK(status)) {
                state->pass_count++;
index 0921cf779be8c92cedc679f6f5ec2e8d44897e14..76eb45c5c1cb39947f86b192b96a7c1b1d10c20e 100644 (file)
@@ -65,7 +65,7 @@ static bool test_check_uptodatevector(struct torture_context *torture,
        utdv_val1 = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector");
        if (utdv_val1) {
                ndr_err = ndr_pull_struct_blob_all(utdv_val1, torture, 
-                                                  lp_iconv_convenience(torture->lp_ctx), &utdv1,
+                                                  &utdv1,
                                                   (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        return false;
@@ -111,7 +111,7 @@ static bool test_check_uptodatevector(struct torture_context *torture,
                utdv_val = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector");
                if (utdv_val) {
                        ndr_err = ndr_pull_struct_blob_all(utdv_val, torture, 
-                                                          lp_iconv_convenience(torture->lp_ctx), &utdv,
+                                                          &utdv,
                                                           (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                return false;
index dd9e173b54f365ae3cf0027998522e192c6e6f2b..b674e0eddb5acde080df414756055700715a40e4 100644 (file)
@@ -398,7 +398,7 @@ static NTSTATUS test_become_dc_schema_chunk(void *private_data,
        }
 
        if (!s->schema) {
-               s->self_made_schema = dsdb_new_schema(s, lp_iconv_convenience(s->lp_ctx));
+               s->self_made_schema = dsdb_new_schema(s);
 
                NT_STATUS_HAVE_NO_MEMORY(s->self_made_schema);
 
index b3ee8fc28f9d47b8105d4f35fd7bf1074a29f9d0..a09b54cfd625cdb0b2555295fb8971fddf9f007c 100644 (file)
@@ -167,7 +167,6 @@ static struct smbcli_state *connect_one(struct tevent_context *ev,
                                                servers[snum], 
                                                lp_resolve_context(lp_ctx),
                                                ev, &options, &session_options,
-                                               lp_iconv_convenience(lp_ctx),
                                                lp_gensec_settings(mem_ctx, lp_ctx));
                if (!NT_STATUS_IS_OK(status)) {
                        sleep(2);
index 0dd6a8f92977c8f45d9c79d099a9ae4615cf33a7..e61eb868a4324707480a92e5ade7de0d92d24e8c 100644 (file)
@@ -77,7 +77,6 @@ static struct smbcli_state *connect_one(struct resolve_context *resolve_ctx,
                                        const char *socket_options,
                                        struct smbcli_options *options,
                                        struct smbcli_session_options *session_options,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        struct gensec_settings *gensec_settings)
 {
        struct smbcli_state *c;
@@ -99,7 +98,6 @@ static struct smbcli_state *connect_one(struct resolve_context *resolve_ctx,
                                        socket_options,
                                        cmdline_credentials, resolve_ctx, ev,
                                        options, session_options,
-                                       iconv_convenience,
                                        gensec_settings);
 
        if (!NT_STATUS_IS_OK(status)) {
@@ -372,7 +370,6 @@ static void usage(poptContext pc)
        cli = connect_one(lp_resolve_context(lp_ctx), ev, mem_ctx, share, 
                          lp_smb_ports(lp_ctx), lp_socket_options(lp_ctx), 
                          &options, &session_options,
-                         lp_iconv_convenience(lp_ctx),
                          lp_gensec_settings(mem_ctx, lp_ctx));
        if (!cli) {
                DEBUG(0,("Failed to connect to %s\n", share));
index 09aaa41c68e0821d63d98b94ede68d90d8dcba29..7d1199ec2ac4f2c2153e5818234e516f9d1190e0 100644 (file)
@@ -64,8 +64,7 @@ static void netlogon_handler(struct dgram_mailslot_handler *dgmslot,
 static bool nbt_test_netlogon(struct torture_context *tctx)
 {
        struct dgram_mailslot_handler *dgmslot;
-       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev, 
-                                                                lp_iconv_convenience(tctx->lp_ctx));
+       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev);
        struct socket_address *dest;
        const char *myaddress;
        struct nbt_netlogon_packet logon;
@@ -155,8 +154,7 @@ static bool nbt_test_netlogon(struct torture_context *tctx)
 static bool nbt_test_netlogon2(struct torture_context *tctx)
 {
        struct dgram_mailslot_handler *dgmslot;
-       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev,
-                                                                lp_iconv_convenience(tctx->lp_ctx));
+       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev);
        struct socket_address *dest;
        const char *myaddress;
        struct nbt_netlogon_packet logon;
@@ -425,8 +423,7 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
 static bool nbt_test_ntlogon(struct torture_context *tctx)
 {
        struct dgram_mailslot_handler *dgmslot;
-       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev,
-                                                                lp_iconv_convenience(tctx->lp_ctx));
+       struct nbt_dgram_socket *dgmsock = nbt_dgram_socket_init(tctx, tctx->ev);
        struct socket_address *dest;
        struct test_join *join_ctx;
        const struct dom_sid *dom_sid;
index aee0c5435815c7e1c8d04b4b32fbd9ecef94c2bc..1dcfa563df681907c43f629018ec7a07291fcd1b 100644 (file)
@@ -27,7 +27,7 @@
 
 struct nbt_name_socket *torture_init_nbt_socket(struct torture_context *tctx)
 {
-       return nbt_name_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       return nbt_name_socket_init(tctx, tctx->ev);
 }
 
 bool torture_nbt_get_name(struct torture_context *tctx, 
index bea3d4f9cff8d604ddb0e67a436dcd0815cb6576..226f388f352b2ce538d91c4af0ace2536a0d0138 100644 (file)
@@ -225,7 +225,7 @@ static void generate_request(struct nbt_name_socket *nbtsock, struct wins_state
 */
 static bool bench_wins(struct torture_context *tctx)
 {
-       struct nbt_name_socket *nbtsock = nbt_name_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       struct nbt_name_socket *nbtsock = nbt_name_socket_init(tctx, tctx->ev);
        int num_sent=0;
        struct timeval tv = timeval_current();
        bool ret = true;
index 9a7be03199525ede32a9cf2bcaccd2127cbf61ef..b8152f79d60e21a1c72a1a3051264a6c72b9fd51 100644 (file)
@@ -102,8 +102,8 @@ static bool test_assoc_ctx1(struct torture_context *tctx)
 
        torture_comment(tctx, "Test if assoc_ctx is only valid on the conection it was created on\n");
 
-       wrepl_socket1 = wrepl_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
-       wrepl_socket2 = wrepl_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       wrepl_socket1 = wrepl_socket_init(tctx, tctx->ev);
+       wrepl_socket2 = wrepl_socket_init(tctx, tctx->ev);
 
        torture_comment(tctx, "Setup 2 wrepl connections\n");
        status = wrepl_connect(wrepl_socket1, wrepl_best_ip(tctx->lp_ctx, address), address);
@@ -193,7 +193,7 @@ static bool test_assoc_ctx2(struct torture_context *tctx)
 
        torture_comment(tctx, "Test if we always get back the same assoc_ctx\n");
 
-       wrepl_socket = wrepl_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       wrepl_socket = wrepl_socket_init(tctx, tctx->ev);
        
        torture_comment(tctx, "Setup wrepl connections\n");
        status = wrepl_connect(wrepl_socket, wrepl_best_ip(tctx->lp_ctx, address), address);
@@ -262,7 +262,7 @@ static bool test_wins_replication(struct torture_context *tctx)
 
        torture_comment(tctx, "Test one pull replication cycle\n");
 
-       wrepl_socket = wrepl_socket_init(tctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       wrepl_socket = wrepl_socket_init(tctx, tctx->ev);
        
        torture_comment(tctx, "Setup wrepl connections\n");
        status = wrepl_connect(wrepl_socket, wrepl_best_ip(tctx->lp_ctx, address), address);
@@ -555,7 +555,7 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(
        if (!ctx) return NULL;
 
        ctx->address    = address;
-       ctx->pull       = wrepl_socket_init(ctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       ctx->pull       = wrepl_socket_init(ctx, tctx->ev);
        if (!ctx->pull) return NULL;
 
        torture_comment(tctx, "Setup wrepl conflict pull connection\n");
@@ -612,7 +612,7 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(
 
        talloc_free(pull_table.out.partners);
 
-       ctx->nbtsock = nbt_name_socket_init(ctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       ctx->nbtsock = nbt_name_socket_init(ctx, tctx->ev);
        if (!ctx->nbtsock) return NULL;
 
        load_interfaces(tctx, lp_interfaces(tctx->lp_ctx), &ifaces);
@@ -630,7 +630,7 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(
        status = socket_listen(ctx->nbtsock->sock, ctx->myaddr, 0, 0);
        if (!NT_STATUS_IS_OK(status)) return NULL;
 
-       ctx->nbtsock_srv = nbt_name_socket_init(ctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       ctx->nbtsock_srv = nbt_name_socket_init(ctx, tctx->ev);
        if (!ctx->nbtsock_srv) return NULL;
 
        /* Make a port 137 version of ctx->myaddr */
@@ -647,13 +647,13 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(
        }
 
        if (ctx->myaddr2 && ctx->nbtsock_srv) {
-               ctx->nbtsock2 = nbt_name_socket_init(ctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+               ctx->nbtsock2 = nbt_name_socket_init(ctx, tctx->ev);
                if (!ctx->nbtsock2) return NULL;
 
                status = socket_listen(ctx->nbtsock2->sock, ctx->myaddr2, 0, 0);
                if (!NT_STATUS_IS_OK(status)) return NULL;
 
-               ctx->nbtsock_srv2 = nbt_name_socket_init(ctx, ctx->nbtsock_srv->event_ctx, lp_iconv_convenience(tctx->lp_ctx));
+               ctx->nbtsock_srv2 = nbt_name_socket_init(ctx, ctx->nbtsock_srv->event_ctx);
                if (!ctx->nbtsock_srv2) return NULL;
 
                /* Make a port 137 version of ctx->myaddr2 */
@@ -724,7 +724,7 @@ static bool test_wrepl_update_one(struct torture_context *tctx,
        uint32_t assoc_ctx;
        NTSTATUS status;
 
-       wrepl_socket = wrepl_socket_init(ctx, tctx->ev, lp_iconv_convenience(tctx->lp_ctx));
+       wrepl_socket = wrepl_socket_init(ctx, tctx->ev);
 
        status = wrepl_connect(wrepl_socket, wrepl_best_ip(tctx->lp_ctx, ctx->address), ctx->address);
        CHECK_STATUS(tctx, status, NT_STATUS_OK);
index 24f5fba28293bc0e7907f2eae5428b1ccd9ba7e1..6068e108b5adf5fab033cfb1af743822c3f9a0c8 100644 (file)
@@ -38,7 +38,7 @@ static bool wrap_ndr_pull_test(struct torture_context *tctx,
        bool (*check_fn) (struct torture_context *ctx, void *data) = test->fn;
        const struct ndr_pull_test_data *data = (const struct ndr_pull_test_data *)test->data;
        void *ds = talloc_zero_size(tctx, data->struct_size);
-       struct ndr_pull *ndr = ndr_pull_init_blob(&(data->data), tctx, lp_iconv_convenience(tctx->lp_ctx));
+       struct ndr_pull *ndr = ndr_pull_init_blob(&(data->data), tctx);
 
        ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
 
@@ -97,7 +97,7 @@ static bool test_check_string_terminator(struct torture_context *tctx)
        /* Simple test */
        blob = strhex_to_data_blob(tctx, "0000");
        
-       ndr = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
+       ndr = ndr_pull_init_blob(&blob, mem_ctx);
 
        torture_assert_ndr_success(tctx, ndr_check_string_terminator(ndr, 1, 2),
                                   "simple check_string_terminator test failed");
@@ -115,7 +115,7 @@ static bool test_check_string_terminator(struct torture_context *tctx)
        talloc_free(ndr);
 
        blob = strhex_to_data_blob(tctx, "11220000");
-       ndr = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
+       ndr = ndr_pull_init_blob(&blob, mem_ctx);
 
        torture_assert_ndr_success(tctx,
                ndr_check_string_terminator(ndr, 4, 1),
index bf631f4445a6a788190caec62c425f7c90bdf3eb..9b4b9c3a4e9898b38df9dc174f89259d676c00a0 100644 (file)
@@ -137,7 +137,6 @@ static bool test_ntp_signd(struct torture_context *tctx,
        
        ndr_err = ndr_push_struct_blob(&sign_req_blob,
                                       mem_ctx,
-                                      NULL,
                                       &sign_req,
                                       (ndr_push_flags_fn_t)ndr_push_sign_request);
        torture_assert(tctx,
@@ -246,7 +245,6 @@ static bool test_ntp_signd(struct torture_context *tctx,
        torture_comment(tctx, "Validating the reply buffer\n");
        ndr_err = ndr_pull_struct_blob_all(&signd_client->reply,
                                           mem_ctx,
-                                          lp_iconv_convenience(tctx->lp_ctx),
                                           &signed_reply,
                                           (ndr_pull_flags_fn_t)ndr_pull_signed_reply);
        torture_assert(tctx, NDR_ERR_CODE_IS_SUCCESS(ndr_err),
index a8a30366cf057b2fca9eb9140370918b2f838508..e2ef9663be3592dd1954957b537f65b02cfae8ef 100644 (file)
@@ -87,7 +87,7 @@ static bool test_netprintqenum(struct torture_context *tctx,
                        "Testing rap_NetPrintQEnum level %d\n", r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                        "smbcli_rap_netprintqenum failed");
                torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                        "failed to enum printq");
@@ -116,7 +116,7 @@ static bool test_netprintqgetinfo(struct torture_context *tctx,
        r_enum.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r_enum),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r_enum),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r_enum.out.status),
                "failed to enum printq");
@@ -133,7 +133,7 @@ static bool test_netprintqgetinfo(struct torture_context *tctx,
                                r.in.PrintQueueName, r.in.level);
 
                        torture_assert_ntstatus_ok(tctx,
-                               smbcli_rap_netprintqgetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                               smbcli_rap_netprintqgetinfo(cli->tree, tctx, &r),
                                "smbcli_rap_netprintqgetinfo failed");
 
                        switch (r.in.level) {
@@ -158,7 +158,7 @@ static bool test_netprintjob_pause(struct torture_context *tctx,
        torture_comment(tctx, "Testing rap_NetPrintJobPause(%d)\n", r.in.JobID);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobpause(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobpause(cli->tree, tctx, &r),
                "smbcli_rap_netprintjobpause failed");
 
        return true;
@@ -175,7 +175,7 @@ static bool test_netprintjob_continue(struct torture_context *tctx,
        torture_comment(tctx, "Testing rap_NetPrintJobContinue(%d)\n", r.in.JobID);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobcontinue(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobcontinue(cli->tree, tctx, &r),
                "smbcli_rap_netprintjobcontinue failed");
 
        return true;
@@ -192,7 +192,7 @@ static bool test_netprintjob_delete(struct torture_context *tctx,
        torture_comment(tctx, "Testing rap_NetPrintJobDelete(%d)\n", r.in.JobID);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobdelete(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobdelete(cli->tree, tctx, &r),
                "smbcli_rap_netprintjobdelete failed");
 
        return true;
@@ -227,7 +227,7 @@ static bool test_netprintq_pause(struct torture_context *tctx,
        torture_comment(tctx, "Testing rap_NetPrintQueuePause(%s)\n", r.in.PrintQueueName);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqueuepause(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqueuepause(cli->tree, tctx, &r),
                "smbcli_rap_netprintqueuepause failed");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "smbcli_rap_netprintqueuepause failed");
@@ -246,7 +246,7 @@ static bool test_netprintq_resume(struct torture_context *tctx,
        torture_comment(tctx, "Testing rap_NetPrintQueueResume(%s)\n", r.in.PrintQueueName);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqueueresume(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqueueresume(cli->tree, tctx, &r),
                "smbcli_rap_netprintqueueresume failed");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "smbcli_rap_netprintqueueresume failed");
@@ -264,7 +264,7 @@ static bool test_netprintq(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "failed to enum printq");
@@ -302,7 +302,7 @@ static bool test_netprintjobenum_args(struct torture_context *tctx,
                "Testing rap_NetPrintJobEnum(%s) level %d\n", r.in.PrintQueueName, r.in.level);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobenum(cli->tree, tctx, &r),
                "smbcli_rap_netprintjobenum failed");
 
        if (count_p) {
@@ -334,7 +334,7 @@ static bool test_netprintjobenum_one(struct torture_context *tctx,
                        "Testing rap_NetPrintJobEnum(%s) level %d\n", r.in.PrintQueueName, r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintjobenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintjobenum(cli->tree, tctx, &r),
                        "smbcli_rap_netprintjobenum failed");
        }
 
@@ -359,7 +359,7 @@ static bool test_netprintjobgetinfo_byid(struct torture_context *tctx,
                torture_comment(tctx, "Testing rap_NetPrintJobGetInfo(%d) level %d\n", r.in.JobID, r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintjobgetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintjobgetinfo(cli->tree, tctx, &r),
                        "smbcli_rap_netprintjobgetinfo failed");
        }
 
@@ -387,7 +387,7 @@ static bool test_netprintjobsetinfo_byid(struct torture_context *tctx,
                torture_comment(tctx, "Testing rap_NetPrintJobSetInfo(%d) level %d\n", r.in.JobID, r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintjobsetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintjobsetinfo(cli->tree, tctx, &r),
                        "smbcli_rap_netprintjobsetinfo failed");
        }
 
@@ -407,7 +407,7 @@ static bool test_netprintjobgetinfo_byqueue(struct torture_context *tctx,
        r.in.level = 0;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobenum(cli->tree, tctx, &r),
                "failed to enumerate jobs");
 
        for (i=0; i < r.out.count; i++) {
@@ -432,7 +432,7 @@ static bool test_netprintjobsetinfo_byqueue(struct torture_context *tctx,
        r.in.level = 0;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintjobenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintjobenum(cli->tree, tctx, &r),
                "failed to enumerate jobs");
 
        for (i=0; i < r.out.count; i++) {
@@ -455,7 +455,7 @@ static bool test_netprintjobenum(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "failed to enum printq");
@@ -482,7 +482,7 @@ static bool test_netprintjobgetinfo(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "failed to enum printq");
@@ -509,7 +509,7 @@ static bool test_netprintjobsetinfo(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "failed to enum printq");
@@ -542,7 +542,7 @@ static bool test_netprintdestenum(struct torture_context *tctx,
                        "Testing rap_NetPrintDestEnum level %d\n", r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintdestenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintdestenum(cli->tree, tctx, &r),
                        "smbcli_rap_netprintdestenum failed");
        }
 
@@ -567,7 +567,7 @@ static bool test_netprintdestgetinfo_bydest(struct torture_context *tctx,
                        "Testing rap_NetPrintDestGetInfo(%s) level %d\n", r.in.PrintDestName, r.in.level);
 
                torture_assert_ntstatus_ok(tctx,
-                       smbcli_rap_netprintdestgetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+                       smbcli_rap_netprintdestgetinfo(cli->tree, tctx, &r),
                        "smbcli_rap_netprintdestgetinfo failed");
        }
 
@@ -588,7 +588,7 @@ static bool test_netprintdestgetinfo(struct torture_context *tctx,
                "Testing rap_NetPrintDestEnum level %d\n", r.in.level);
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintdestenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintdestenum(cli->tree, tctx, &r),
                "smbcli_rap_netprintdestenum failed");
 
        for (i=0; i < r.out.count; i++) {
@@ -612,7 +612,7 @@ static bool test_rap_print(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netprintqenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netprintqenum(cli->tree, tctx, &r),
                "failed to enum printq");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "failed to enum printq");
index 5412c1b52dba60ee10522d4a0bc7750c7c064fcf..37edd20ed769cda3bf53d550a75347827b90b819 100644 (file)
@@ -82,7 +82,7 @@ struct rap_call {
 
 #define RAPNDR_FLAGS (LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
 
-static struct rap_call *new_rap_cli_call(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience, uint16_t callno)
+static struct rap_call *new_rap_cli_call(TALLOC_CTX *mem_ctx, uint16_t callno)
 {
        struct rap_call *call;
 
@@ -98,10 +98,10 @@ static struct rap_call *new_rap_cli_call(TALLOC_CTX *mem_ctx, struct smb_iconv_c
        call->datadesc = NULL;
        call->auxdatadesc = NULL;
 
-       call->ndr_push_param = ndr_push_init_ctx(mem_ctx, iconv_convenience);
+       call->ndr_push_param = ndr_push_init_ctx(mem_ctx);
        call->ndr_push_param->flags = RAPNDR_FLAGS;
 
-       call->ndr_push_data = ndr_push_init_ctx(mem_ctx, iconv_convenience);
+       call->ndr_push_data = ndr_push_init_ctx(mem_ctx);
        call->ndr_push_data->flags = RAPNDR_FLAGS;
 
        return call;
@@ -218,7 +218,6 @@ static NTSTATUS rap_pull_string(TALLOC_CTX *mem_ctx, struct ndr_pull *ndr,
 }
 
 static NTSTATUS rap_cli_do_call(struct smbcli_tree *tree, 
-                               struct smb_iconv_convenience *iconv_convenience,
                                struct rap_call *call)
 {
        NTSTATUS result;
@@ -228,7 +227,7 @@ static NTSTATUS rap_cli_do_call(struct smbcli_tree *tree,
        struct ndr_push *data;
        struct smb_trans2 trans;
 
-       params = ndr_push_init_ctx(call, iconv_convenience);
+       params = ndr_push_init_ctx(call);
 
        if (params == NULL)
                return NT_STATUS_NO_MEMORY;
@@ -276,12 +275,10 @@ static NTSTATUS rap_cli_do_call(struct smbcli_tree *tree,
        if (!NT_STATUS_IS_OK(result))
                return result;
 
-       call->ndr_pull_param = ndr_pull_init_blob(&trans.out.params, call,
-                                                 iconv_convenience);
+       call->ndr_pull_param = ndr_pull_init_blob(&trans.out.params, call);
        call->ndr_pull_param->flags = RAPNDR_FLAGS;
 
-       call->ndr_pull_data = ndr_pull_init_blob(&trans.out.data, call,
-                                                iconv_convenience);
+       call->ndr_pull_data = ndr_pull_init_blob(&trans.out.data, call);
        call->ndr_pull_data->flags = RAPNDR_FLAGS;
 
        return result;
@@ -289,7 +286,6 @@ static NTSTATUS rap_cli_do_call(struct smbcli_tree *tree,
 
 
 static NTSTATUS smbcli_rap_netshareenum(struct smbcli_tree *tree,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        TALLOC_CTX *mem_ctx,
                                        struct rap_NetShareEnum *r)
 {
@@ -297,7 +293,7 @@ static NTSTATUS smbcli_rap_netshareenum(struct smbcli_tree *tree,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int i;
 
-       call = new_rap_cli_call(tree, iconv_convenience, RAP_WshareEnum);
+       call = new_rap_cli_call(tree, RAP_WshareEnum);
 
        if (call == NULL)
                return NT_STATUS_NO_MEMORY;
@@ -319,7 +315,7 @@ static NTSTATUS smbcli_rap_netshareenum(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetShareEnum, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -376,7 +372,7 @@ static bool test_netshareenum(struct torture_context *tctx,
        r.in.bufsize = 8192;
 
        torture_assert_ntstatus_ok(tctx, 
-               smbcli_rap_netshareenum(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r), "");
+               smbcli_rap_netshareenum(cli->tree, tctx, &r), "");
 
        for (i=0; i<r.out.count; i++) {
                printf("%s %d %s\n", r.out.info[i].info1.share_name,
@@ -388,7 +384,6 @@ static bool test_netshareenum(struct torture_context *tctx,
 }
 
 static NTSTATUS smbcli_rap_netserverenum2(struct smbcli_tree *tree,
-                                         struct smb_iconv_convenience *iconv_convenience, 
                                          TALLOC_CTX *mem_ctx,
                                          struct rap_NetServerEnum2 *r)
 {
@@ -396,7 +391,7 @@ static NTSTATUS smbcli_rap_netserverenum2(struct smbcli_tree *tree,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int i;
 
-       call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_NetServerEnum2);
+       call = new_rap_cli_call(mem_ctx, RAP_NetServerEnum2);
 
        if (call == NULL)
                return NT_STATUS_NO_MEMORY;
@@ -420,7 +415,7 @@ static NTSTATUS smbcli_rap_netserverenum2(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetServerEnum2, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -484,7 +479,7 @@ static bool test_netserverenum(struct torture_context *tctx,
        r.in.domain = NULL;
 
        torture_assert_ntstatus_ok(tctx, 
-                  smbcli_rap_netserverenum2(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r), "");
+                  smbcli_rap_netserverenum2(cli->tree, tctx, &r), "");
 
        for (i=0; i<r.out.count; i++) {
                switch (r.in.level) {
@@ -503,14 +498,13 @@ static bool test_netserverenum(struct torture_context *tctx,
 }
 
 NTSTATUS smbcli_rap_netservergetinfo(struct smbcli_tree *tree,
-                                             struct smb_iconv_convenience *iconv_convenience, 
                                     TALLOC_CTX *mem_ctx,
                                     struct rap_WserverGetInfo *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WserverGetInfo))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WserverGetInfo))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -534,7 +528,7 @@ NTSTATUS smbcli_rap_netservergetinfo(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_WserverGetInfo, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -718,7 +712,6 @@ static NTSTATUS rap_pull_rap_PrintQueue5(TALLOC_CTX *mem_ctx, struct ndr_pull *n
 }
 
 NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree,
-                                 struct smb_iconv_convenience *iconv_convenience,
                                  TALLOC_CTX *mem_ctx,
                                  struct rap_NetPrintQEnum *r)
 {
@@ -726,7 +719,7 @@ NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int i;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintQEnum))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintQEnum))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -765,7 +758,7 @@ NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintQEnum, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -823,14 +816,13 @@ NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintqgetinfo(struct smbcli_tree *tree,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     TALLOC_CTX *mem_ctx,
                                     struct rap_NetPrintQGetInfo *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintQGetInfo))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintQGetInfo))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -870,7 +862,7 @@ NTSTATUS smbcli_rap_netprintqgetinfo(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintQGetInfo, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -916,14 +908,13 @@ NTSTATUS smbcli_rap_netprintqgetinfo(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobpause(struct smbcli_tree *tree,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     TALLOC_CTX *mem_ctx,
                                     struct rap_NetPrintJobPause *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobPause))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobPause))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -935,7 +926,7 @@ NTSTATUS smbcli_rap_netprintjobpause(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobPause, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -953,14 +944,13 @@ NTSTATUS smbcli_rap_netprintjobpause(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobcontinue(struct smbcli_tree *tree,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        TALLOC_CTX *mem_ctx,
                                        struct rap_NetPrintJobContinue *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobContinue))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobContinue))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -972,7 +962,7 @@ NTSTATUS smbcli_rap_netprintjobcontinue(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobContinue, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -990,14 +980,13 @@ NTSTATUS smbcli_rap_netprintjobcontinue(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobdelete(struct smbcli_tree *tree,
-                                     struct smb_iconv_convenience *iconv_convenience,
                                      TALLOC_CTX *mem_ctx,
                                      struct rap_NetPrintJobDelete *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobDel))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobDel))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1009,7 +998,7 @@ NTSTATUS smbcli_rap_netprintjobdelete(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobDelete, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1027,14 +1016,13 @@ NTSTATUS smbcli_rap_netprintjobdelete(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintqueuepause(struct smbcli_tree *tree,
-                                      struct smb_iconv_convenience *iconv_convenience,
                                       TALLOC_CTX *mem_ctx,
                                       struct rap_NetPrintQueuePause *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintQPause))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintQPause))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1046,7 +1034,7 @@ NTSTATUS smbcli_rap_netprintqueuepause(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintQueuePause, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1064,14 +1052,13 @@ NTSTATUS smbcli_rap_netprintqueuepause(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintqueueresume(struct smbcli_tree *tree,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        TALLOC_CTX *mem_ctx,
                                        struct rap_NetPrintQueueResume *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintQContinue))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintQContinue))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1083,7 +1070,7 @@ NTSTATUS smbcli_rap_netprintqueueresume(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintQueueResume, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1101,14 +1088,13 @@ NTSTATUS smbcli_rap_netprintqueueresume(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintqueuepurge(struct smbcli_tree *tree,
-                                      struct smb_iconv_convenience *iconv_convenience,
                                       TALLOC_CTX *mem_ctx,
                                       struct rap_NetPrintQueuePurge *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintQPurge))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintQPurge))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1120,7 +1106,7 @@ NTSTATUS smbcli_rap_netprintqueuepurge(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintQueuePurge, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1138,7 +1124,6 @@ NTSTATUS smbcli_rap_netprintqueuepurge(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobenum(struct smbcli_tree *tree,
-                                   struct smb_iconv_convenience *iconv_convenience,
                                    TALLOC_CTX *mem_ctx,
                                    struct rap_NetPrintJobEnum *r)
 {
@@ -1146,7 +1131,7 @@ NTSTATUS smbcli_rap_netprintjobenum(struct smbcli_tree *tree,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int i;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobEnum))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobEnum))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1180,7 +1165,7 @@ NTSTATUS smbcli_rap_netprintjobenum(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobEnum, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1234,14 +1219,13 @@ NTSTATUS smbcli_rap_netprintjobenum(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobgetinfo(struct smbcli_tree *tree,
-                                      struct smb_iconv_convenience *iconv_convenience,
                                       TALLOC_CTX *mem_ctx,
                                       struct rap_NetPrintJobGetInfo *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobGetInfo))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobGetInfo))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1275,7 +1259,7 @@ NTSTATUS smbcli_rap_netprintjobgetinfo(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobGetInfo, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1319,14 +1303,13 @@ NTSTATUS smbcli_rap_netprintjobgetinfo(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintjobsetinfo(struct smbcli_tree *tree,
-                                      struct smb_iconv_convenience *iconv_convenience,
                                       TALLOC_CTX *mem_ctx,
                                       struct rap_NetPrintJobSetInfo *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintJobSetInfo))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintJobSetInfo))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1365,7 +1348,7 @@ NTSTATUS smbcli_rap_netprintjobsetinfo(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintJobSetInfo, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1434,7 +1417,6 @@ static NTSTATUS rap_pull_rap_PrintDest3(TALLOC_CTX *mem_ctx, struct ndr_pull *nd
 }
 
 NTSTATUS smbcli_rap_netprintdestenum(struct smbcli_tree *tree,
-                                    struct smb_iconv_convenience *iconv_convenience,
                                     TALLOC_CTX *mem_ctx,
                                     struct rap_NetPrintDestEnum *r)
 {
@@ -1442,7 +1424,7 @@ NTSTATUS smbcli_rap_netprintdestenum(struct smbcli_tree *tree,
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        int i;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintDestEnum))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintDestEnum))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1472,7 +1454,7 @@ NTSTATUS smbcli_rap_netprintdestenum(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintDestEnum, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1526,14 +1508,13 @@ NTSTATUS smbcli_rap_netprintdestenum(struct smbcli_tree *tree,
 }
 
 NTSTATUS smbcli_rap_netprintdestgetinfo(struct smbcli_tree *tree,
-                                       struct smb_iconv_convenience *iconv_convenience,
                                        TALLOC_CTX *mem_ctx,
                                        struct rap_NetPrintDestGetInfo *r)
 {
        struct rap_call *call;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 
-       if (!(call = new_rap_cli_call(mem_ctx, iconv_convenience, RAP_WPrintDestGetInfo))) {
+       if (!(call = new_rap_cli_call(mem_ctx, RAP_WPrintDestGetInfo))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1564,7 +1545,7 @@ NTSTATUS smbcli_rap_netprintdestgetinfo(struct smbcli_tree *tree,
                NDR_PRINT_IN_DEBUG(rap_NetPrintDestGetInfo, r);
        }
 
-       result = rap_cli_do_call(tree, iconv_convenience, call);
+       result = rap_cli_do_call(tree, call);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
@@ -1718,14 +1699,14 @@ static bool test_netservergetinfo(struct torture_context *tctx,
 
        r.in.level = 0;
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netservergetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netservergetinfo(cli->tree, tctx, &r),
                "rap_netservergetinfo level 0 failed");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "rap_netservergetinfo level 0 failed");
 
        r.in.level = 1;
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netservergetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netservergetinfo(cli->tree, tctx, &r),
                "rap_netservergetinfo level 1 failed");
        torture_assert_werr_ok(tctx, W_ERROR(r.out.status),
                "rap_netservergetinfo level 1 failed");
@@ -1738,10 +1719,10 @@ bool torture_rap_scan(struct torture_context *torture, struct smbcli_state *cli)
        int callno;
 
        for (callno = 0; callno < 0xffff; callno++) {
-               struct rap_call *call = new_rap_cli_call(torture, lp_iconv_convenience(torture->lp_ctx), callno);
+               struct rap_call *call = new_rap_cli_call(torture, callno);
                NTSTATUS result;
 
-               result = rap_cli_do_call(cli->tree, lp_iconv_convenience(torture->lp_ctx), call);
+               result = rap_cli_do_call(cli->tree, call);
 
                if (!NT_STATUS_EQUAL(result, NT_STATUS_INVALID_PARAMETER))
                        continue;
index 4528240310c63efa28509a6e5f2bd847825a7d01..6335a54b353d6b019bed8b69e64d55108a515fa1 100644 (file)
@@ -58,7 +58,7 @@ static bool test_rpc_netservergetinfo(struct torture_context *tctx,
        r.in.level = 0;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netservergetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netservergetinfo(cli->tree, tctx, &r),
                "rap_netservergetinfo level 0 failed");
        torture_assert_int_equal(tctx, r.out.status, 0,
                "rap_netservergetinfo level 0 failed");
@@ -70,7 +70,7 @@ static bool test_rpc_netservergetinfo(struct torture_context *tctx,
        r.in.level = 1;
 
        torture_assert_ntstatus_ok(tctx,
-               smbcli_rap_netservergetinfo(cli->tree, lp_iconv_convenience(tctx->lp_ctx), tctx, &r),
+               smbcli_rap_netservergetinfo(cli->tree, tctx, &r),
                "rap_netservergetinfo level 1 failed");
        torture_assert_int_equal(tctx, r.out.status, 0,
                "rap_netservergetinfo level 1 failed");
index 5ae396412e92599be47211be550d5f45a6aa0e95..2a1d8e5ace2fb01b99f889f3fda478455504308f 100644 (file)
@@ -188,7 +188,6 @@ static bool open_connection_no_level2_oplocks(struct torture_context *tctx,
                                        NULL, lp_socket_options(tctx->lp_ctx), cmdline_credentials,
                                        lp_resolve_context(tctx->lp_ctx),
                                        tctx->ev, &options, &session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_comment(tctx, "Failed to open connection - %s\n",
index a854ac8857f951356546dd37fbb8ef2e24a5a65e..12897ef499abfed2b25a44c2cf20c4cfa9e95cf1 100644 (file)
@@ -877,8 +877,7 @@ bool torture_raw_qfileinfo_pipe(struct torture_context *torture,
        struct smbcli_tree *ipc_tree;
        NTSTATUS status;
 
-       if (!(p = dcerpc_pipe_init(torture, cli->tree->session->transport->socket->event.ctx,
-                                  lp_iconv_convenience(torture->lp_ctx)))) {
+       if (!(p = dcerpc_pipe_init(torture, cli->tree->session->transport->socket->event.ctx))) {
                return false;
        }
 
index 06cb7650c154711e44b138bb8f949a0fff31a164..66fc3c01d6ed0cb5b02019e65a9db47c60cd09e0 100644 (file)
@@ -102,7 +102,6 @@ static int fork_tcon_client(struct torture_context *tctx,
                                NULL, lp_socket_options(tctx->lp_ctx), cmdline_credentials,
                                lp_resolve_context(tctx->lp_ctx),
                                tctx->ev, &options, &session_options,
-                               lp_iconv_convenience(tctx->lp_ctx),
                                lp_gensec_settings(tctx, tctx->lp_ctx));
 
                if (!NT_STATUS_IS_OK(status)) {
index 77bb761e0c8986efcb844a7dfab1e4319b2863f8..3bf7dab764792e65f508caa170b19876fe55331a 100644 (file)
@@ -81,7 +81,7 @@ static void fill_blob_handle(DATA_BLOB *blob, TALLOC_CTX *mem_ctx,
                return;
        }
 
-       ndr_push_struct_blob(&b2, mem_ctx, NULL, handle, (ndr_push_flags_fn_t)ndr_push_policy_handle);
+       ndr_push_struct_blob(&b2, mem_ctx, handle, (ndr_push_flags_fn_t)ndr_push_policy_handle);
 
        memcpy(blob->data, b2.data, 20);
 }
index 2e5edfdb880962496e8e516abab3d9fed093a640..d6ed1912840a9e292052d835402f2c51b2c4a205 100644 (file)
@@ -361,7 +361,7 @@ static bool test_GetInfo(struct torture_context *tctx, struct DsSyncTest *ctx)
        search.in.acct_control = -1;
        search.in.version               = NETLOGON_NT_VERSION_5 | NETLOGON_NT_VERSION_5EX;
        search.in.map_response = true;
-       status = cldap_netlogon(cldap, lp_iconv_convenience(tctx->lp_ctx), ctx, &search);
+       status = cldap_netlogon(cldap, ctx, &search);
        if (!NT_STATUS_IS_OK(status)) {
                const char *errstr = nt_errstr(status);
                ctx->site_name = talloc_asprintf(ctx, "%s", "Default-First-Site-Name");
@@ -407,7 +407,7 @@ static bool test_analyse_objects(struct torture_context *tctx,
                struct ldb_result *a_res;
                struct ldb_result *c_res;
                struct ldb_dn *schema_dn = ldb_get_schema_basedn(ldb);
-               ldap_schema = dsdb_new_schema(ctx, lp_iconv_convenience(tctx->lp_ctx));
+               ldap_schema = dsdb_new_schema(ctx);
                if (!ldap_schema) {
                        return false;
                }
@@ -727,8 +727,7 @@ static bool test_analyse_objects(struct torture_context *tctx,
                                if (pull_fn) {
                                        /* Can't use '_all' because of PIDL bugs with relative pointers */
                                        ndr_err = ndr_pull_struct_blob(&plain_data, ptr,
-                                                                      lp_iconv_convenience(tctx->lp_ctx), ptr,
-                                                                      pull_fn);
+                                                                      ptr, pull_fn);
                                        if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                                ndr_print_debug(print_fn, name, ptr);
                                        } else {
index 1fcc0a6f3f85345138ea8ea1c469c2bde6f03692..3b6c70e068865d15c84183ed5bbab105174158c4 100644 (file)
@@ -171,8 +171,7 @@ static bool test_ReadEventLog(struct torture_context *tctx,
                        blob = data_blob_const(r.out.data + pos, size);
                        dump_data(0, blob.data, blob.length);
 
-                       ndr_err = ndr_pull_struct_blob_all(&blob, tctx,
-                               lp_iconv_convenience(tctx->lp_ctx), &rec,
+                       ndr_err = ndr_pull_struct_blob_all(&blob, tctx, &rec,
                                (ndr_pull_flags_fn_t)ndr_pull_EVENTLOGRECORD);
                        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                                status = ndr_map_error2ntstatus(ndr_err);
index b02510930abaaf653a1470845e7d78c2b69f691c..09519d03a5a7546200b26e8e3dcd7a99b80a0fc7 100644 (file)
@@ -41,7 +41,6 @@ bool torture_rpc_join(struct torture_context *torture)
                                        machine_account,
                                        lp_resolve_context(torture->lp_ctx),
                                        torture->ev, &options, &session_options,
-                                       lp_iconv_convenience(torture->lp_ctx),
                                        lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("%s failed to connect to IPC$ with workstation credentials\n",
@@ -70,7 +69,6 @@ bool torture_rpc_join(struct torture_context *torture)
                                        machine_account,
                                        lp_resolve_context(torture->lp_ctx),
                                        torture->ev, &options, &session_options,
-                                       lp_iconv_convenience(torture->lp_ctx),
                                        lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("%s failed to connect to IPC$ with workstation credentials\n",
index 3f91afedd6ddc110650213936afbde05bca7e6ba..c66725672ed71a40fd656304376dc70229bf098a 100644 (file)
@@ -2438,7 +2438,7 @@ static bool test_CreateTrustedDomainEx2(struct dcerpc_pipe *p,
                auth_struct.outgoing.count = 0;
                auth_struct.incoming.count = 0;
 
-               ndr_err = ndr_push_struct_blob(&auth_blob, tctx, lp_iconv_convenience(tctx->lp_ctx), &auth_struct,
+               ndr_err = ndr_push_struct_blob(&auth_blob, tctx, &auth_struct,
                                               (ndr_push_flags_fn_t)ndr_push_trustDomainPasswords);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        torture_comment(tctx, "ndr_push_struct_blob of trustDomainPasswords structure failed");
index eab835aad149cc9b528f46c2aff2c1d3a21fdfe8..9358d44ca85fdbf6b08c1023d0f1f9a72dd6f0cf 100644 (file)
@@ -139,7 +139,7 @@ static bool test_PACVerify(struct torture_context *tctx,
               session_info->server_info->pac_kdc_sig.signature.data, 
               pac_wrapped_struct.SignatureLength);
 
-       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, lp_iconv_convenience(tctx->lp_ctx), &pac_wrapped_struct,
+       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, &pac_wrapped_struct,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_Validate);
        torture_assert(tctx, NDR_ERR_CODE_IS_SUCCESS(ndr_err), "ndr_push_struct_blob of PACValidate structure failed");
                
@@ -245,7 +245,7 @@ static bool test_PACVerify(struct torture_context *tctx,
               session_info->server_info->pac_kdc_sig.signature.data, 
               pac_wrapped_struct.SignatureLength);
        
-       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, lp_iconv_convenience(tctx->lp_ctx), &pac_wrapped_struct,
+       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, &pac_wrapped_struct,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_Validate);
        torture_assert(tctx, NDR_ERR_CODE_IS_SUCCESS(ndr_err), "ndr_push_struct_blob of PACValidate structure failed");
        
@@ -293,7 +293,7 @@ static bool test_PACVerify(struct torture_context *tctx,
        /* Break the signature length */
        pac_wrapped_struct.SignatureLength++;
 
-       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, lp_iconv_convenience(tctx->lp_ctx), &pac_wrapped_struct,
+       ndr_err = ndr_push_struct_blob(&pac_wrapped, tmp_ctx, &pac_wrapped_struct,
                                       (ndr_push_flags_fn_t)ndr_push_PAC_Validate);
        torture_assert(tctx, NDR_ERR_CODE_IS_SUCCESS(ndr_err), "ndr_push_struct_blob of PACValidate structure failed");
        
index 96d2b5ca523847eecda5e07dedba61d25c0abf1e..d09e80283a076a48c8817628186421cf6864fd18 100644 (file)
@@ -84,7 +84,6 @@ bool torture_bind_authcontext(struct torture_context *torture)
                                        cmdline_credentials,
                                        lp_resolve_context(torture->lp_ctx),
                                        torture->ev, &options, &session_options,
-                                       lp_iconv_convenience(torture->lp_ctx),
                                        lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_comment(torture, "smbcli_full_connection failed: %s\n",
@@ -92,8 +91,7 @@ bool torture_bind_authcontext(struct torture_context *torture)
                goto done;
        }
 
-       lsa_pipe = dcerpc_pipe_init(mem_ctx, cli->transport->socket->event.ctx,
-                                   lp_iconv_convenience(torture->lp_ctx));
+       lsa_pipe = dcerpc_pipe_init(mem_ctx, cli->transport->socket->event.ctx);
        if (lsa_pipe == NULL) {
                torture_comment(torture, "dcerpc_pipe_init failed\n");
                goto done;
@@ -224,8 +222,7 @@ static bool bindtest(struct torture_context *tctx,
        }
 
        lsa_pipe = dcerpc_pipe_init(mem_ctx,
-                                   cli->transport->socket->event.ctx,
-                                   lp_iconv_convenience(tctx->lp_ctx));
+                                   cli->transport->socket->event.ctx); 
        if (lsa_pipe == NULL) {
                torture_comment(tctx, "dcerpc_pipe_init failed\n");
                goto done;
@@ -336,7 +333,6 @@ static bool torture_bind_samba3(struct torture_context *torture)
                                        cmdline_credentials,
                                        lp_resolve_context(torture->lp_ctx),
                                        torture->ev, &options, &session_options,
-                                       lp_iconv_convenience(torture->lp_ctx),
                                        lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_comment(torture, "smbcli_full_connection failed: %s\n",
@@ -397,8 +393,7 @@ static bool get_usr_handle(struct torture_context *tctx,
        uint32_t user_rid,access_granted;
 
        samr_pipe = dcerpc_pipe_init(mem_ctx,
-                                    cli->transport->socket->event.ctx,
-                                    lp_iconv_convenience(tctx->lp_ctx));
+                                    cli->transport->socket->event.ctx);
        torture_assert(tctx, samr_pipe, "dcerpc_pipe_init failed");
 
        samr_handle = samr_pipe->binding_handle;
@@ -953,8 +948,7 @@ static bool auth2(struct torture_context *tctx,
        }
 
        net_pipe = dcerpc_pipe_init(mem_ctx,
-                                   cli->transport->socket->event.ctx,
-                                   lp_iconv_convenience(tctx->lp_ctx));
+                                   cli->transport->socket->event.ctx);
        if (net_pipe == NULL) {
                torture_comment(tctx, "dcerpc_pipe_init failed\n");
                goto done;
@@ -1070,8 +1064,7 @@ static bool schan(struct torture_context *tctx,
        }
 
        net_pipe = dcerpc_pipe_init(mem_ctx,
-                                   cli->transport->socket->event.ctx,
-                                   lp_iconv_convenience(tctx->lp_ctx));
+                                   cli->transport->socket->event.ctx);
        if (net_pipe == NULL) {
                torture_comment(tctx, "dcerpc_pipe_init failed\n");
                goto done;
@@ -1342,7 +1335,6 @@ static bool torture_netlogon_samba3(struct torture_context *torture)
                                        anon_creds,
                                        lp_resolve_context(torture->lp_ctx),
                                        torture->ev, &options, &session_options,
-                                       lp_iconv_convenience(torture->lp_ctx),
                                        lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_comment(torture, "smbcli_full_connection failed: %s\n",
@@ -1432,7 +1424,6 @@ static bool test_join3(struct torture_context *tctx,
                                        "IPC$", NULL, lp_socket_options(tctx->lp_ctx),
                                        smb_creds, lp_resolve_context(tctx->lp_ctx),
                                        tctx->ev, &options, &session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx));
        torture_assert_ntstatus_ok(tctx, status,
                "smbcli_full_connection failed");
@@ -1541,8 +1532,7 @@ static NTSTATUS pipe_bind_smb(struct torture_context *tctx,
        NTSTATUS status;
 
        if (!(result = dcerpc_pipe_init(
-                     mem_ctx, tree->session->transport->socket->event.ctx,
-                     lp_iconv_convenience(tctx->lp_ctx)))) {
+                     mem_ctx, tree->session->transport->socket->event.ctx))) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -1809,10 +1799,8 @@ static bool torture_samba3_rpc_getusername(struct torture_context *torture)
                mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
                lp_smb_ports(torture->lp_ctx),
                "IPC$", NULL, lp_socket_options(torture->lp_ctx), cmdline_credentials,
-               lp_resolve_context(torture->lp_ctx),
-               torture->ev, &options, &session_options,
-               lp_iconv_convenience(torture->lp_ctx),
-               lp_gensec_settings(torture, torture->lp_ctx));
+               lp_resolve_context(torture->lp_ctx), torture->ev, &options,
+               &session_options, lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_warning(torture, "smbcli_full_connection failed: %s\n",
                         nt_errstr(status));
@@ -1839,7 +1827,6 @@ static bool torture_samba3_rpc_getusername(struct torture_context *torture)
                lp_socket_options(torture->lp_ctx), anon_creds,
                lp_resolve_context(torture->lp_ctx),
                torture->ev, &options, &session_options,
-               lp_iconv_convenience(torture->lp_ctx),
                lp_gensec_settings(torture, torture->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                torture_warning(torture, "anon smbcli_full_connection failed: %s\n",
@@ -2154,8 +2141,7 @@ static bool torture_samba3_rpc_randomauth2(struct torture_context *torture)
        }
 
        if (!(net_pipe = dcerpc_pipe_init(
-                     mem_ctx, cli->transport->socket->event.ctx,
-                     lp_iconv_convenience(torture->lp_ctx)))) {
+                     mem_ctx, cli->transport->socket->event.ctx))) {
                torture_comment(torture, "dcerpc_pipe_init failed\n");
                goto done;
        }
@@ -2556,7 +2542,6 @@ static bool torture_samba3_rpc_lsa(struct torture_context *torture)
 }
 
 static NTSTATUS get_servername(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
-                              struct smb_iconv_convenience *iconv_convenience,
                               char **name)
 {
        struct rap_WserverGetInfo r;
@@ -2566,7 +2551,7 @@ static NTSTATUS get_servername(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
        r.in.level = 0;
        r.in.bufsize = 0xffff;
 
-       status = smbcli_rap_netservergetinfo(tree, iconv_convenience, mem_ctx, &r);
+       status = smbcli_rap_netservergetinfo(tree, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -2592,7 +2577,7 @@ static bool rap_get_servername(struct torture_context *tctx,
                "IPC$ connection failed");
 
        torture_assert_ntstatus_ok(tctx,
-               get_servername(tctx, cli->tree, lp_iconv_convenience(tctx->lp_ctx), servername),
+               get_servername(tctx, cli->tree, servername),
                "get_servername failed");
 
        talloc_free(cli);
@@ -3241,7 +3226,7 @@ static bool torture_samba3_setconfig(struct torture_context *tctx,
                "OpenKey failed");
 
        torture_assert(tctx,
-               reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx), "REG_SZ", value, &type, &val),
+               reg_string_to_val(tctx, "REG_SZ", value, &type, &val),
                "reg_string_to_val failed");
 
        s.in.handle = &key_handle;
index 2da0041c73277cf929d939313d53942276ed73d1..c59e4474435994fe5d07b55cf68988ad0d2dc855 100644 (file)
@@ -65,7 +65,6 @@ struct samlogon_state {
        NTSTATUS expected_error;
        bool old_password; /* Allow an old password to be accepted or rejected without error, as well as session key bugs */
        DATA_BLOB chall;
-       struct smb_iconv_convenience *iconv_convenience;
 };
 
 /* 
@@ -1190,8 +1189,7 @@ static bool test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_brea
 
        password = strupper_talloc(samlogon_state->mem_ctx, samlogon_state->password);
 
-       if (!convert_string_talloc_convenience(samlogon_state->mem_ctx, 
-                                  samlogon_state->iconv_convenience,
+       if (!convert_string_talloc(samlogon_state->mem_ctx, 
                                   CH_UNIX, CH_DOS, 
                                   password, strlen(password)+1, 
                                   (void**)&dospw, NULL, false)) {
@@ -1372,7 +1370,6 @@ static bool test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        samlogon_state.chall = data_blob_talloc(fn_ctx, NULL, 8);
        samlogon_state.parameter_control = parameter_control;
        samlogon_state.old_password = old_password;
-       samlogon_state.iconv_convenience = lp_iconv_convenience(tctx->lp_ctx);
 
        generate_random_buffer(samlogon_state.chall.data, 8);
        samlogon_state.r_flags.in.server_name = talloc_asprintf(fn_ctx, "\\\\%s", dcerpc_server_name(p));
index e59bf3a3a80a487f5b74c077cdb94d334317a71a..6e0d9471d1f3b055bc298f4b3c88a42b1adcd75c 100644 (file)
@@ -598,7 +598,7 @@ static bool samsync_handle_user(struct torture_context *tctx, TALLOC_CTX *mem_ct
                enum ndr_err_code ndr_err;
                data.data = user->user_private_info.SensitiveData;
                data.length = user->user_private_info.DataLength;
-               ndr_err = ndr_pull_struct_blob(&data, mem_ctx, lp_iconv_convenience(tctx->lp_ctx), &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
+               ndr_err = ndr_pull_struct_blob(&data, mem_ctx, &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        if (keys.keys.keys2.lmpassword.length == 16) {
                                lm_hash_p = &lm_hash;
index 61d1bccaa44aca6f78aa0406331c1d71d64bc7bb..efe975c76eb5859a7bd9e084673aa42011939105 100644 (file)
@@ -174,9 +174,9 @@ static bool test_AddPrinterDriver_args_level_3(struct torture_context *tctx,
 
 #define DO_ROUND(size, n) (((size)+((n)-1)) & ~((n)-1))
 
-#define CHECK_NEEDED_SIZE_ENUM_LEVEL(fn, info, level, count, ic, needed, align) do { \
+#define CHECK_NEEDED_SIZE_ENUM_LEVEL(fn, info, level, count, needed, align) do { \
        if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
-       uint32_t size = ndr_size_##fn##_info(tctx, ic, level, count, info);\
+       uint32_t size = ndr_size_##fn##_info(tctx, level, count, info);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" level %d (count: %d) got unexpected needed size: %d, we calculated: %d", level, count, needed, round_size);\
@@ -185,9 +185,9 @@ static bool test_AddPrinterDriver_args_level_3(struct torture_context *tctx,
        }\
 } while(0)
 
-#define CHECK_NEEDED_SIZE_ENUM(fn, info, count, ic, needed, align) do { \
+#define CHECK_NEEDED_SIZE_ENUM(fn, info, count, needed, align) do { \
        if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
-       uint32_t size = ndr_size_##fn##_info(tctx, ic, count, info);\
+       uint32_t size = ndr_size_##fn##_info(tctx, count, info);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" (count: %d) got unexpected needed size: %d, we calculated: %d", count, needed, round_size);\
@@ -196,9 +196,9 @@ static bool test_AddPrinterDriver_args_level_3(struct torture_context *tctx,
        }\
 } while(0)
 
-#define CHECK_NEEDED_SIZE_LEVEL(fn, info, level, ic, needed, align) do { \
+#define CHECK_NEEDED_SIZE_LEVEL(fn, info, level, needed, align) do { \
        if (torture_setting_bool(tctx, "spoolss_check_size", false)) {\
-       uint32_t size = ndr_size_##fn(info, level, ic, 0);\
+       uint32_t size = ndr_size_##fn(info, level, 0);\
        uint32_t round_size = DO_ROUND(size, align);\
        if (round_size != needed) {\
                torture_warning(tctx, __location__": "#fn" level %d got unexpected needed size: %d, we calculated: %d", level, needed, round_size);\
@@ -323,7 +323,7 @@ static bool test_EnumPorts(struct torture_context *tctx,
 
                torture_assert(tctx, info, "EnumPorts returned no info");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPorts, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPorts, info, r.in.level, count, needed, 4);
 
                ctx->port_count[level]  = count;
                ctx->ports[level]       = info;
@@ -414,7 +414,7 @@ static bool test_GetPrintProcessorDirectory(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "GetPrintProcessorDirectory failed");
 
-               CHECK_NEEDED_SIZE_LEVEL(spoolss_PrintProcessorDirectoryInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 2);
+               CHECK_NEEDED_SIZE_LEVEL(spoolss_PrintProcessorDirectoryInfo, r.out.info, r.in.level, needed, 2);
        }
 
        return true;
@@ -479,7 +479,7 @@ static bool test_GetPrinterDriverDirectory(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "GetPrinterDriverDirectory failed");
 
-               CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverDirectoryInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 2);
+               CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverDirectoryInfo, r.out.info, r.in.level, needed, 2);
        }
 
        return true;
@@ -533,7 +533,7 @@ static bool test_EnumPrinterDrivers_args(struct torture_context *tctx,
                *info_p = info;
        }
 
-       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinterDrivers, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinterDrivers, info, r.in.level, count, needed, 4);
 
        return true;
 
@@ -755,7 +755,7 @@ static bool test_EnumMonitors(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "EnumMonitors failed");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumMonitors, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumMonitors, info, r.in.level, count, needed, 4);
 
                ctx->monitor_count[level]       = count;
                ctx->monitors[level]            = info;
@@ -833,7 +833,7 @@ static bool test_EnumPrintProcessors(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "EnumPrintProcessors failed");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcessors, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcessors, info, r.in.level, count, needed, 4);
 
                ctx->print_processor_count[level]       = count;
                ctx->print_processors[level]            = info;
@@ -908,7 +908,7 @@ static bool test_EnumPrintProcDataTypes(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "EnumPrintProcDataTypes failed");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcDataTypes, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrintProcDataTypes, info, r.in.level, count, needed, 4);
 
        }
 
@@ -961,7 +961,7 @@ static bool test_EnumPrinters(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "EnumPrinters failed");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinters, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinters, info, r.in.level, count, needed, 4);
 
                ctx->printer_count[level]       = count;
                ctx->printers[level]            = info;
@@ -1080,7 +1080,7 @@ bool test_GetPrinter_level(struct torture_context *tctx,
 
        torture_assert_werr_ok(tctx, r.out.result, "GetPrinter failed");
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterInfo, r.out.info, r.in.level, needed, 4);
 
        if (info && r.out.info) {
                *info = *r.out.info;
@@ -2370,7 +2370,7 @@ static bool test_GetForm_args(struct torture_context *tctx,
 
        torture_assert_werr_ok(tctx, r.out.result, "GetForm failed");
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_FormInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_FormInfo, r.out.info, r.in.level, needed, 4);
 
        if (info_p) {
                *info_p = *r.out.info;
@@ -2437,7 +2437,7 @@ static bool test_EnumForms(struct torture_context *tctx,
 
        torture_assert_werr_ok(tctx, r.out.result, "EnumForms failed");
 
-       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumForms, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumForms, info, r.in.level, count, needed, 4);
 
        if (info_p) {
                *info_p = info;
@@ -2857,7 +2857,7 @@ static bool test_EnumPorts_old(struct torture_context *tctx,
 
        torture_assert_werr_ok(tctx, r.out.result, "EnumPorts failed");
 
-       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPorts, info, 2, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPorts, info, 2, count, needed, 4);
 
        return true;
 }
@@ -2934,7 +2934,7 @@ static bool test_GetJob_args(struct torture_context *tctx,
        torture_assert_werr_ok(tctx, r.out.result, "GetJob failed");
        torture_assert(tctx, r.out.info, "No job info returned");
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_JobInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_JobInfo, r.out.info, r.in.level, needed, 4);
 
        if (info_p) {
                *info_p = *r.out.info;
@@ -3083,7 +3083,7 @@ static bool test_EnumJobs_args(struct torture_context *tctx,
                torture_assert_werr_ok(tctx, r.out.result, "EnumJobs failed");
                torture_assert(tctx, info, "No jobs returned");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumJobs, *r.out.info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumJobs, *r.out.info, r.in.level, count, needed, 4);
 
        } else {
                torture_assert_werr_ok(tctx, r.out.result, "EnumJobs failed");
@@ -3375,7 +3375,7 @@ static bool test_GetPrinterData(struct torture_context *tctx,
        torture_assert_werr_ok(tctx, r.out.result,
                talloc_asprintf(tctx, "GetPrinterData(%s) failed", r.in.value_name));
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterData, &data, type, lp_iconv_convenience(tctx->lp_ctx), needed, 1);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterData, &data, type, needed, 1);
 
        if (type_p) {
                *type_p = type;
@@ -3437,7 +3437,7 @@ static bool test_GetPrinterDataEx(struct torture_context *tctx,
        torture_assert_werr_ok(tctx, r.out.result,
                talloc_asprintf(tctx, "GetPrinterDataEx(%s - %s) failed", r.in.key_name, r.in.value_name));
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterData, &data, type, lp_iconv_convenience(tctx->lp_ctx), needed, 1);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterData, &data, type, needed, 1);
 
        if (type_p) {
                *type_p = type;
@@ -3471,7 +3471,7 @@ static bool test_get_environment(struct torture_context *tctx,
        torture_assert_int_equal(tctx, type, REG_SZ, "unexpected type");
 
        blob = data_blob_const(data, needed);
-       *architecture = reg_val_data_string(tctx, lp_iconv_convenience(tctx->lp_ctx), REG_SZ, blob);
+       *architecture = reg_val_data_string(tctx, REG_SZ, blob);
 
        return true;
 }
@@ -3515,7 +3515,7 @@ static bool test_GetPrinterData_list(struct torture_context *tctx,
                if (strequal(list[i], "Architecture")) {
                        if (architecture) {
                                DATA_BLOB blob = data_blob_const(data, needed);
-                               *architecture = reg_val_data_string(tctx, lp_iconv_convenience(tctx->lp_ctx), REG_SZ, blob);
+                               *architecture = reg_val_data_string(tctx, REG_SZ, blob);
                        }
                }
        }
@@ -3656,7 +3656,7 @@ static bool test_EnumPrinterDataEx(struct torture_context *tctx,
 
        torture_assert_werr_ok(tctx, r.out.result, "EnumPrinterDataEx failed");
 
-       CHECK_NEEDED_SIZE_ENUM(spoolss_EnumPrinterDataEx, info, count, lp_iconv_convenience(tctx->lp_ctx), needed, 1);
+       CHECK_NEEDED_SIZE_ENUM(spoolss_EnumPrinterDataEx, info, count, needed, 1);
 
        if (count_p) {
                *count_p = count;
@@ -3698,7 +3698,7 @@ static bool test_EnumPrinterData_consistency(struct torture_context *tctx,
        torture_comment(tctx, "Testing EnumPrinterData vs EnumPrinterDataEx consistency\n");
 
        torture_assert(tctx,
-               reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx),
+               reg_string_to_val(tctx, 
                                  "REG_SZ", "torture_data1", &type, &blob), "");
 
        torture_assert(tctx,
@@ -4093,7 +4093,7 @@ static bool test_winreg_symbolic_link(struct torture_context *tctx,
        torture_assert_int_equal(tctx, w_type, REG_LINK, "unexpected type");
 
        blob = data_blob(w_data, w_size);
-       str = reg_val_data_string(tctx, lp_iconv_convenience(tctx->lp_ctx), REG_SZ, blob);
+       str = reg_val_data_string(tctx, REG_SZ, blob);
 
        torture_assert_str_equal(tctx, str, symlink_destination, "unexpected symlink target string");
 
@@ -4162,7 +4162,7 @@ do {\
                "failed to query winreg");\
        torture_assert_int_equal(tctx, w_type, REG_SZ, "unexpected type");\
        blob = data_blob(w_data, w_size);\
-       str = reg_val_data_string(tctx, lp_iconv_convenience(tctx->lp_ctx), REG_SZ, blob);\
+       str = reg_val_data_string(tctx, REG_SZ, blob);\
        if (w_size == 2 && iname == NULL) {\
                /*torture_comment(tctx, "%s: \"\", %s: (null)\n", #wname, #iname);\ */\
        } else {\
@@ -4205,7 +4205,7 @@ do {\
                "failed to query winreg");\
        torture_assert_int_equal(tctx, w_type, REG_BINARY, "unexpected type");\
        blob = data_blob(w_data, w_size);\
-       ndr_err = ndr_pull_struct_blob(&blob, tctx, lp_iconv_convenience(tctx->lp_ctx), &dm,\
+       ndr_err = ndr_pull_struct_blob(&blob, tctx, &dm,\
                (ndr_pull_flags_fn_t)ndr_pull_spoolss_DeviceMode);\
        torture_assert_ndr_success(tctx, ndr_err, "failed to unmarshall dm");\
        torture_assert(tctx, test_devicemode_equal(tctx, &dm, iname),\
@@ -4227,7 +4227,7 @@ do {\
                "failed to query winreg");\
        torture_assert_int_equal(tctx, w_type, REG_BINARY, "unexpected type");\
        blob = data_blob(w_data, w_size);\
-       ndr_err = ndr_pull_struct_blob(&blob, tctx, lp_iconv_convenience(tctx->lp_ctx), &sd,\
+       ndr_err = ndr_pull_struct_blob(&blob, tctx, &sd,\
                (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);\
        torture_assert_ndr_success(tctx, ndr_err, "failed to unmarshall sd");\
        torture_assert(tctx, test_security_descriptor_equal(tctx, &sd, iname),\
@@ -4250,7 +4250,7 @@ do {\
        torture_assert_int_equal(tctx, w_type, REG_MULTI_SZ, "unexpected type");\
        blob = data_blob(w_data, w_size);\
        torture_assert(tctx, \
-               pull_reg_multi_sz(tctx, lp_iconv_convenience(tctx->lp_ctx), &blob, &array),\
+               pull_reg_multi_sz(tctx, &blob, &array),\
                "failed to pull multi sz");\
        for (i=0; array[i] != NULL; i++) {\
                torture_assert_str_equal(tctx, array[i], iname[i],\
@@ -4591,7 +4591,7 @@ static bool test_SetPrinterData_matrix(struct torture_context *tctx,
                uint32_t needed;
 
                torture_assert(tctx,
-                       reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx),
+                       reg_string_to_val(tctx, 
                                          "REG_SZ", "dog", &type, &blob), "");
 
                torture_assert(tctx,
@@ -4748,14 +4748,14 @@ static bool test_SetPrinterDataEx_matrix(struct torture_context *tctx,
                        break;
                case REG_SZ:
                        torture_assert(tctx,
-                               reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx),
+                               reg_string_to_val(tctx, 
                                                  "REG_SZ", string, &type, &data), "");
                        offered = data.length;
                        /*strlen_m_term(data.string)*2;*/
                        break;
                case REG_MULTI_SZ:
                        torture_assert(tctx,
-                               reg_string_to_val(tctx, lp_iconv_convenience(tctx->lp_ctx),
+                               reg_string_to_val(tctx, 
                                                  "REG_SZ", string, &type, &data), "");
                        torture_assert(tctx, data_blob_realloc(tctx, &data, data.length + 2), "");
                        memset(&data.data[data.length - 2], '\0', 2);
@@ -5004,7 +5004,7 @@ do {\
        torture_assert_int_equal(tctx, type, REG_SZ, "unexpected type");\
        blob = data_blob_const(data, needed);\
        torture_assert(tctx,\
-               pull_reg_sz(tctx, lp_iconv_convenience(tctx->lp_ctx), &blob, &str),\
+               pull_reg_sz(tctx, &blob, &str),\
                "failed to pull REG_SZ");\
        torture_assert_str_equal(tctx, str, iname, "unexpected result");\
 } while(0);
@@ -5027,7 +5027,7 @@ do {\
        torture_assert_int_equal(tctx, type, REG_SZ, "unexpected type");\
        blob = data_blob_const(data, needed);\
        torture_assert(tctx,\
-               pull_reg_sz(tctx, lp_iconv_convenience(tctx->lp_ctx), &blob, &str),\
+               pull_reg_sz(tctx, &blob, &str),\
                "failed to pull REG_SZ");\
        torture_assert_str_equal(tctx, str, val, "unexpected result");\
 } while(0);
@@ -5675,7 +5675,7 @@ static bool test_EnumPrinters_old(struct torture_context *tctx,
 
                torture_assert_werr_ok(tctx, r.out.result, "EnumPrinters failed");
 
-               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinters, info, r.in.level, count, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+               CHECK_NEEDED_SIZE_ENUM_LEVEL(spoolss_EnumPrinters, info, r.in.level, count, needed, 4);
 
                if (!info) {
                        torture_comment(tctx, "No printers returned\n");
@@ -5738,7 +5738,7 @@ static bool test_GetPrinterDriver(struct torture_context *tctx,
        torture_assert_werr_ok(tctx, r.out.result,
                "failed to call GetPrinterDriver");
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverInfo, r.out.info, r.in.level, needed, 4);
 
        return true;
 }
@@ -5806,7 +5806,7 @@ static bool test_GetPrinterDriver2_level(struct torture_context *tctx,
        torture_assert_werr_ok(tctx, r.out.result,
                "failed to call GetPrinterDriver2");
 
-       CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4);
+       CHECK_NEEDED_SIZE_LEVEL(spoolss_DriverInfo, r.out.info, r.in.level, needed, 4);
 
        if (info_p) {
                *info_p = *r.out.info;
@@ -7658,7 +7658,6 @@ static bool connect_printer_driver_share(struct torture_context *tctx,
                                        tctx->ev,
                                        &smb_options,
                                        &smb_session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx)),
                "failed to open driver share");
 
index 47efb77bfb67882fe25bc9c93c78c83d63e587c0..8f9ec1aed8a63b26e0bedf552915d7f85ff95e45 100644 (file)
@@ -438,7 +438,7 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
                blob.length = r.in.offered;
                blob.data = talloc_steal(tctx, r.out.service);
 
-               ndr = ndr_pull_init_blob(&blob, tctx, lp_iconv_convenience(tctx->lp_ctx));
+               ndr = ndr_pull_init_blob(&blob, tctx);
 
                service = talloc_array(tctx, struct ENUM_SERVICE_STATUSW, services_returned);
                if (!service) {
index 3da8c9125a33f02a3ba6b7d7634384ecd0cec928..216a30c7a866f3e1a149b1059b65989dcdee9c51 100644 (file)
@@ -193,7 +193,7 @@ static bool test_CreateKey_sd(struct dcerpc_binding_handle *b,
                                        NULL);
 
        torture_assert_ndr_success(tctx,
-               ndr_push_struct_blob(&sdblob, tctx, NULL, sd,
+               ndr_push_struct_blob(&sdblob, tctx, sd,
                                     (ndr_push_flags_fn_t)ndr_push_security_descriptor),
                                     "Failed to push security_descriptor ?!\n");
 
@@ -260,7 +260,7 @@ static bool _test_GetKeySecurity(struct dcerpc_pipe *p,
        sd = talloc_zero(tctx, struct security_descriptor);
 
        torture_assert_ndr_success(tctx,
-               ndr_pull_struct_blob(&sdblob, tctx, NULL, sd,
+               ndr_pull_struct_blob(&sdblob, tctx, sd,
                                     (ndr_pull_flags_fn_t)ndr_pull_security_descriptor),
                                     "pull_security_descriptor failed");
 
@@ -305,7 +305,7 @@ static bool _test_SetKeySecurity(struct dcerpc_pipe *p,
        }
 
        torture_assert_ndr_success(tctx,
-               ndr_push_struct_blob(&sdblob, tctx, NULL, sd,
+               ndr_push_struct_blob(&sdblob, tctx, sd,
                                     (ndr_push_flags_fn_t)ndr_push_security_descriptor),
                                     "push_security_descriptor failed");
 
index 2068d5d97cf4ab78cb4c667b80d3624e1e1f2e05..32cc9ac487198dcd0a8e420797a8629d483dfa51 100644 (file)
@@ -62,7 +62,6 @@ static struct smbcli_state *connect_to_server(struct torture_context *tctx)
                                        cmdline_credentials, 
                                        lp_resolve_context(tctx->lp_ctx),
                                        tctx->ev, &options, &session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx));
 
        if (!NT_STATUS_IS_OK(status)) {
index f07c619b30f3b2d74285404b55e202efa1120c52..c1849962a3ca1b11e1f1dad82139f9a7072b5d3d 100644 (file)
@@ -85,7 +85,6 @@ static struct smbcli_state *connect_to_server(struct torture_context *tctx,
                                        share, NULL, lp_socket_options(tctx->lp_ctx),
                                        creds, lp_resolve_context(tctx->lp_ctx),
                                        tctx->ev, &options, &session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx));
 
        if (!NT_STATUS_IS_OK(status)) {
index 216927ce70dcc3c527a32d59e38061ccb47ac5d7..708055096b25c7b5c304cbc5ced36d3b60a1cb40 100644 (file)
@@ -515,7 +515,6 @@ _PUBLIC_ bool torture_open_connection_share(TALLOC_CTX *mem_ctx,
                                        cmdline_credentials, 
                                        lp_resolve_context(tctx->lp_ctx),
                                        ev, &options, &session_options,
-                                       lp_iconv_convenience(tctx->lp_ctx),
                                        lp_gensec_settings(tctx, tctx->lp_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to open connection - %s\n", nt_errstr(status));
index e3a43c772798cd281eb2bc7b6be9fe67cbfa5656..c5d37e82c97c379d838174d4d9bc3db18d4deaa0 100644 (file)
@@ -489,8 +489,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        const char *winbind_method[] = { "winbind", NULL };
                        struct auth_context *auth_context;
 
-                       msg = messaging_client_init(state, lp_messaging_path(state, lp_ctx), 
-                                                   lp_iconv_convenience(lp_ctx), ev);
+                       msg = messaging_client_init(state, lp_messaging_path(state, lp_ctx), ev);
                        if (!msg) {
                                talloc_free(mem_ctx);
                                exit(1);
index fc7b8d447db98fab6bbd319af4a98025035dc39f..4a99ac58c5cf8920f56c4dcac250fa97232f0d8e 100644 (file)
@@ -97,9 +97,7 @@ static int idmap_msg_add_dom_sid(struct idmap_context *idmap_ctx,
        struct ldb_val val;
        enum ndr_err_code ndr_err;
 
-       ndr_err = ndr_push_struct_blob(&val, mem_ctx,
-                                      lp_iconv_convenience(idmap_ctx->lp_ctx),
-                                      sid,
+       ndr_err = ndr_push_struct_blob(&val, mem_ctx, sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
 
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -134,7 +132,7 @@ static struct dom_sid *idmap_msg_get_dom_sid(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       ndr_err = ndr_pull_struct_blob(val, sid, NULL, sid,
+       ndr_err = ndr_pull_struct_blob(val, sid, sid,
                                       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                talloc_free(sid);
index bce8bfbe55255f97e64bc86878961cf4ef8eb516..b6ec7dd67fa4fd4eee08136a926d751ec65e5df8 100644 (file)
@@ -68,7 +68,6 @@ struct composite_context *wb_get_dom_info_send(TALLOC_CTX *mem_ctx,
                           lp_nbt_port(service->task->lp_ctx),
                           domain_name, NBT_NAME_LOGON, 
                           dom_sid, 
-                          lp_iconv_convenience(service->task->lp_ctx),
                           lp_resolve_context(service->task->lp_ctx), 
                           service->task->event_ctx, 
                           service->task->msg_ctx);
index 7b1aa98266830f58749b950dab94dcabf29e0ba4..9346cd5c384c102dafeb2a04b28ab7c00c347bab 100644 (file)
@@ -141,8 +141,7 @@ static void pam_auth_crap_recv_logon(struct composite_context *ctx)
        if (!composite_is_ok(state->ctx)) return;
 
        ndr_err = ndr_push_struct_blob(
-               &tmp_blob, state, lp_iconv_convenience(state->lp_ctx), 
-               state->req->out.validation.sam3,
+               &tmp_blob, state, state->req->out.validation.sam3,
                (ndr_push_flags_fn_t)ndr_push_netr_SamInfo3);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                state->ctx->status = ndr_map_error2ntstatus(ndr_err);
index f0f7aa8526c53425077abb71bb2cdeb2156d262a..fcb587a00784bc2a94656b9c19a464cf04ea4070 100644 (file)
@@ -54,7 +54,6 @@ static NTSTATUS wb_samba3_append_info3_as_txt(TALLOC_CTX *mem_ctx,
 
        ndr_err = ndr_pull_struct_blob(&info3b,
                                       mem_ctx,
-                                      lp_iconv_convenience(s3call->wbconn->lp_ctx), 
                                       info3,
                                       (ndr_pull_flags_fn_t)ndr_pull_netr_SamInfo3);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 91a39400de12a4fc926bc5b3df643edfbc9d2e2c..aee6e4920f1d7b4e4fdd99e0f039e8b2f0fb2f82 100644 (file)
@@ -359,8 +359,8 @@ static NTSTATUS wreplsrv_in_update(struct wreplsrv_in_call *call)
        wrepl_out->assoc_ctx.our_ctx    = wrepl_in->assoc_ctx.our_ctx;
        wrepl_out->assoc_ctx.peer_ctx   = wrepl_in->assoc_ctx.peer_ctx;
        wrepl_out->sock                 = wrepl_socket_init(wrepl_out,
-                                                           wrepl_in->conn->event.ctx,
-                                                           lp_iconv_convenience(wrepl_in->service->task->lp_ctx));
+                                                           wrepl_in->conn->event.ctx);
+                                                           
        NT_STATUS_HAVE_NO_MEMORY_AND_FREE(wrepl_out->sock, update_state);
 
        TALLOC_FREE(wrepl_in->send_queue);
index 09fb3255fb9669ebdd857404753404ad8d307bb6..364ebc7fa913c22151e3de62edb48b1b8ac4fd8b 100644 (file)
@@ -52,7 +52,6 @@ static NTSTATUS wreplsrv_process(struct wreplsrv_in_connection *wrepl_conn,
        struct wreplsrv_in_call *call = *_call;
 
        ndr_err = ndr_pull_struct_blob(&call->in, call,
-                                      lp_iconv_convenience(wrepl_conn->service->task->lp_ctx),
                                       &call->req_packet,
                                       (ndr_pull_flags_fn_t)ndr_pull_wrepl_packet);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
@@ -78,7 +77,6 @@ static NTSTATUS wreplsrv_process(struct wreplsrv_in_connection *wrepl_conn,
        /* and now encode the reply */
        packet_out_wrap.packet = call->rep_packet;
        ndr_err = ndr_push_struct_blob(&call->out, call,
-                                      lp_iconv_convenience(wrepl_conn->service->task->lp_ctx),
                                       &packet_out_wrap,
                                       (ndr_push_flags_fn_t) ndr_push_wrepl_wrap);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
index 5c15ac8d87e5d85eba750552caa033af6e410fb3..dcbc888a8dcfdeca1a46be324848ff497f4b289a 100644 (file)
@@ -187,7 +187,7 @@ static struct composite_context *wreplsrv_out_connect_send(struct wreplsrv_partn
 
        wreplconn->service      = service;
        wreplconn->partner      = partner;
-       wreplconn->sock         = wrepl_socket_init(wreplconn, service->task->event_ctx, lp_iconv_convenience(service->task->lp_ctx));
+       wreplconn->sock         = wrepl_socket_init(wreplconn, service->task->event_ctx);
        if (!wreplconn->sock) goto failed;
 
        state->stage    = WREPLSRV_OUT_CONNECT_STAGE_WAIT_SOCKET;