Skip to content

Commit

Permalink
Finish removal of iconv_convenience in public API's.
Browse files Browse the repository at this point in the history
  • Loading branch information
jelmer committed May 18, 2010
1 parent e9f5bdf commit f9ca9e4
Show file tree
Hide file tree
Showing 216 changed files with 774 additions and 1,260 deletions.
17 changes: 7 additions & 10 deletions lib/tdr/tdr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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;
}

Expand Down Expand Up @@ -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;
Expand Down
2 changes: 0 additions & 2 deletions lib/tdr/tdr.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
18 changes: 9 additions & 9 deletions lib/tdr/testsuite.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand All @@ -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;
Expand All @@ -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");
Expand All @@ -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;
Expand All @@ -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");
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand All @@ -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");
Expand Down
22 changes: 8 additions & 14 deletions libcli/auth/ntlmssp_ndr.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
#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); \
Expand Down Expand Up @@ -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);
}

/**
Expand All @@ -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);
}

/**
Expand All @@ -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);
}

/**
Expand All @@ -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);
}

/**
Expand All @@ -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);
}

/**
Expand All @@ -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);
}
6 changes: 0 additions & 6 deletions libcli/auth/ntlmssp_ndr.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,19 @@

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);
3 changes: 0 additions & 3 deletions libcli/auth/schannel_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,15 @@
#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,
Expand Down
17 changes: 6 additions & 11 deletions libcli/auth/schannel_state_tdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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)
Expand All @@ -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);
Expand All @@ -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)
{
Expand All @@ -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;
Expand All @@ -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,
Expand Down Expand Up @@ -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);
Expand All @@ -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;
Expand Down
Loading

0 comments on commit f9ca9e4

Please sign in to comment.