s3-ndr: add stub smb_iconv_convenience to some ndr_ functions.
authorGünther Deschner <gd@samba.org>
Tue, 23 Sep 2008 18:43:41 +0000 (20:43 +0200)
committerGünther Deschner <gd@samba.org>
Tue, 23 Sep 2008 21:35:14 +0000 (23:35 +0200)
Guenther

source3/include/proto.h
source3/libnet/libnet_dssync_keytab.c
source3/librpc/ndr/ndr.c
source3/librpc/rpc/binding.c
source3/librpc/rpc/dcerpc.c
source3/rpc_client/ndr.c

index a2772384c57fcf14a970b8f84463afea6d6b7bcc..9ee3fc90717e4d6239a7778d4917bebc934292b1 100644 (file)
@@ -3881,7 +3881,7 @@ NTSTATUS rpc_wkssvc_init(void);
 /* The following definitions come from librpc/ndr/ndr.c  */
 
 _PUBLIC_ size_t ndr_align_size(uint32_t offset, size_t n);
-_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
+_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience);
 _PUBLIC_ enum ndr_err_code ndr_pull_advance(struct ndr_pull *ndr, uint32_t size);
 _PUBLIC_ void ndr_pull_save(struct ndr_pull *ndr, struct ndr_pull_save *save);
 _PUBLIC_ void ndr_pull_restore(struct ndr_pull *ndr, struct ndr_pull_save *save);
@@ -3944,8 +3944,9 @@ _PUBLIC_ uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p)
 _PUBLIC_ uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p);
 _PUBLIC_ uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p);
 _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, ndr_pull_flags_fn_t fn);
-_PUBLIC_ 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);
+_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);
 _PUBLIC_ 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);
 _PUBLIC_ enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, void *p,
index e762ecbe49200b0b7bba8a492a49995fcc62402f..6a3139d6ad3cfb4b6dc9f8378835c687353c7f7b 100644 (file)
@@ -179,7 +179,7 @@ static  NTSTATUS parse_supplemental_credentials(TALLOC_CTX *mem_ctx,
        bool newer_keys = false;
        uint32_t j;
 
-       ndr_err = ndr_pull_struct_blob_all(blob, mem_ctx, &scb,
+       ndr_err = ndr_pull_struct_blob_all(blob, mem_ctx, NULL, &scb,
                        (ndr_pull_flags_fn_t)ndr_pull_supplementalCredentialsBlob);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                status = ndr_map_error2ntstatus(ndr_err);
index 624024c94d9a13c8fc5b38ad0c147878843a7f93..56d5967de978c5e61a0011eb82d1991ff7044d21 100644 (file)
@@ -53,7 +53,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)
+_PUBLIC_ 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;
 
@@ -810,7 +810,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob,
                                                ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
-       ndr = ndr_pull_init_blob(blob, mem_ctx);
+       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
        return NDR_ERR_SUCCESS;
@@ -819,11 +819,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_struct_blob(const DATA_BLOB *blob,
 /*
   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, void *p,
-                                 ndr_pull_flags_fn_t fn)
+_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;
-       ndr = ndr_pull_init_blob(blob, mem_ctx);
+       ndr = ndr_pull_init_blob(blob, mem_ctx, iconv_convenience);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
        if (ndr->offset < ndr->data_size) {
@@ -841,7 +842,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_union_blob(const DATA_BLOB *blob, TALLOC_CTX
                             uint32_t level, ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
-       ndr = ndr_pull_init_blob(blob, mem_ctx);
+       ndr = ndr_pull_init_blob(blob, mem_ctx, NULL);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK(ndr_pull_set_switch_value(ndr, p, level));
        NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
@@ -856,7 +857,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_union_blob_all(const DATA_BLOB *blob, TALLOC
                             uint32_t level, ndr_pull_flags_fn_t fn)
 {
        struct ndr_pull *ndr;
-       ndr = ndr_pull_init_blob(blob, mem_ctx);
+       ndr = ndr_pull_init_blob(blob, mem_ctx, NULL);
        NDR_ERR_HAVE_NO_MEMORY(ndr);
        NDR_CHECK(ndr_pull_set_switch_value(ndr, p, level));
        NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
index 01e3479c23bb3ac0338510b92002f1d2fb636544..469c5db8d5d1c62dbd642a87912d2f60b38971ba 100644 (file)
@@ -357,7 +357,7 @@ _PUBLIC_ NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struc
 _PUBLIC_ NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax)
 {
        TALLOC_CTX *mem_ctx = talloc_init("floor_get_lhs_data");
-       struct ndr_pull *ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx);
+       struct ndr_pull *ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx, NULL);
        enum ndr_err_code ndr_err;
        uint16_t if_version=0;
 
index 58d676a9d92e74d71a9f799acfd68a65836a9f28..7a870981fd223bd15788feed520e626f4e739d02 100644 (file)
@@ -100,7 +100,7 @@ NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
 
        prs_mem_free( &r_ps );
 
-       pull = ndr_pull_init_blob(&blob, req);
+       pull = ndr_pull_init_blob(&blob, req, NULL);
        if (pull == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
index 72a33137a653206a27b2817a5a2aaf47bb13abfd..5565ae3dc3fd831856647a3e54f4e2e5be81ca5b 100644 (file)
@@ -77,7 +77,7 @@ NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
 
        prs_mem_free( &r_ps );
 
-       pull = ndr_pull_init_blob(&blob, mem_ctx);
+       pull = ndr_pull_init_blob(&blob, mem_ctx, NULL);
        if (pull == NULL) {
                return NT_STATUS_NO_MEMORY;
        }