tdr                30 source4/lib/tdr/tdr.c #define TDR_PUSH_NEED_BYTES(tdr, n) TDR_CHECK(tdr_push_expand(tdr, tdr->data.length+(n)))
tdr                32 source4/lib/tdr/tdr.c #define TDR_PULL_NEED_BYTES(tdr, n) do { \
tdr                33 source4/lib/tdr/tdr.c 	if ((n) > tdr->data.length || tdr->offset + (n) > tdr->data.length) { \
tdr                38 source4/lib/tdr/tdr.c #define TDR_BE(tdr) ((tdr)->flags & TDR_BIG_ENDIAN)
tdr                40 source4/lib/tdr/tdr.c #define TDR_CVAL(tdr, ofs) CVAL(tdr->data.data,ofs)
tdr                41 source4/lib/tdr/tdr.c #define TDR_SVAL(tdr, ofs) (TDR_BE(tdr)?RSVAL(tdr->data.data,ofs):SVAL(tdr->data.data,ofs))
tdr                42 source4/lib/tdr/tdr.c #define TDR_IVAL(tdr, ofs) (TDR_BE(tdr)?RIVAL(tdr->data.data,ofs):IVAL(tdr->data.data,ofs))
tdr                43 source4/lib/tdr/tdr.c #define TDR_SCVAL(tdr, ofs, v) SCVAL(tdr->data.data,ofs,v)
tdr                44 source4/lib/tdr/tdr.c #define TDR_SSVAL(tdr, ofs, v) do { if (TDR_BE(tdr))  { RSSVAL(tdr->data.data,ofs,v); } else SSVAL(tdr->data.data,ofs,v); } while (0)
tdr                45 source4/lib/tdr/tdr.c #define TDR_SIVAL(tdr, ofs, v) do { if (TDR_BE(tdr))  { RSIVAL(tdr->data.data,ofs,v); } else SIVAL(tdr->data.data,ofs,v); } while (0)
tdr                50 source4/lib/tdr/tdr.c NTSTATUS tdr_push_expand(struct tdr_push *tdr, uint32_t size)
tdr                52 source4/lib/tdr/tdr.c 	if (talloc_get_size(tdr->data.data) >= size) {
tdr                56 source4/lib/tdr/tdr.c 	tdr->data.data = talloc_realloc(tdr, tdr->data.data, uint8_t, tdr->data.length + TDR_BASE_MARSHALL_SIZE);
tdr                58 source4/lib/tdr/tdr.c 	if (tdr->data.data == NULL)
tdr                65 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_uint8(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint8_t *v)
tdr                67 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, 1);
tdr                68 source4/lib/tdr/tdr.c 	*v = TDR_CVAL(tdr, tdr->offset);
tdr                69 source4/lib/tdr/tdr.c 	tdr->offset += 1;
tdr                73 source4/lib/tdr/tdr.c NTSTATUS tdr_push_uint8(struct tdr_push *tdr, const uint8_t *v)
tdr                75 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, 1);
tdr                76 source4/lib/tdr/tdr.c 	TDR_SCVAL(tdr, tdr->data.length, *v);
tdr                77 source4/lib/tdr/tdr.c 	tdr->data.length += 1;
tdr                81 source4/lib/tdr/tdr.c NTSTATUS tdr_print_uint8(struct tdr_print *tdr, const char *name, uint8_t *v)
tdr                83 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: 0x%02x (%u)", name, *v, *v);
tdr                87 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_uint16(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v)
tdr                89 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, 2);
tdr                90 source4/lib/tdr/tdr.c 	*v = TDR_SVAL(tdr, tdr->offset);
tdr                91 source4/lib/tdr/tdr.c 	tdr->offset += 2;
tdr                95 source4/lib/tdr/tdr.c NTSTATUS tdr_push_uint16(struct tdr_push *tdr, const uint16_t *v)
tdr                97 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, 2);
tdr                98 source4/lib/tdr/tdr.c 	TDR_SSVAL(tdr, tdr->data.length, *v);
tdr                99 source4/lib/tdr/tdr.c 	tdr->data.length += 2;
tdr               103 source4/lib/tdr/tdr.c NTSTATUS tdr_print_uint16(struct tdr_print *tdr, const char *name, uint16_t *v)
tdr               105 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: 0x%02x (%u)", name, *v, *v);
tdr               109 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_uint32(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint32_t *v)
tdr               111 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, 4);
tdr               112 source4/lib/tdr/tdr.c 	*v = TDR_IVAL(tdr, tdr->offset);
tdr               113 source4/lib/tdr/tdr.c 	tdr->offset += 4;
tdr               117 source4/lib/tdr/tdr.c NTSTATUS tdr_push_uint32(struct tdr_push *tdr, const uint32_t *v)
tdr               119 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, 4);
tdr               120 source4/lib/tdr/tdr.c 	TDR_SIVAL(tdr, tdr->data.length, *v);
tdr               121 source4/lib/tdr/tdr.c 	tdr->data.length += 4;
tdr               125 source4/lib/tdr/tdr.c NTSTATUS tdr_print_uint32(struct tdr_print *tdr, const char *name, uint32_t *v)
tdr               127 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: 0x%02x (%u)", name, *v, *v);
tdr               131 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_charset(struct tdr_pull *tdr, TALLOC_CTX *ctx, const char **v, uint32_t length, uint32_t el_size, charset_t chset)
tdr               138 source4/lib/tdr/tdr.c 				length = ascii_len_n((const char*)tdr->data.data+tdr->offset, tdr->data.length-tdr->offset);
tdr               141 source4/lib/tdr/tdr.c 				length = utf16_len_n(tdr->data.data+tdr->offset, tdr->data.length-tdr->offset);
tdr               154 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, el_size*length);
tdr               156 source4/lib/tdr/tdr.c 	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)) {
tdr               160 source4/lib/tdr/tdr.c 	tdr->offset += length * el_size;
tdr               165 source4/lib/tdr/tdr.c NTSTATUS tdr_push_charset(struct tdr_push *tdr, const char **v, uint32_t length, uint32_t el_size, charset_t chset)
tdr               174 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, required);
tdr               176 source4/lib/tdr/tdr.c 	if (!convert_string_convenience(tdr->iconv_convenience, CH_UNIX, chset, *v, strlen(*v), tdr->data.data+tdr->data.length, required, &ret, false)) {
tdr               182 source4/lib/tdr/tdr.c 		memset(tdr->data.data+tdr->data.length+ret, 0, required-ret);
tdr               185 source4/lib/tdr/tdr.c 	tdr->data.length += required;
tdr               190 source4/lib/tdr/tdr.c NTSTATUS tdr_print_charset(struct tdr_print *tdr, const char *name, const char **v, uint32_t length, uint32_t el_size, charset_t chset)
tdr               192 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: %s", name, *v);
tdr               199 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_hyper(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint64_t *v)
tdr               201 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, 8);
tdr               202 source4/lib/tdr/tdr.c 	*v = TDR_IVAL(tdr, tdr->offset);
tdr               203 source4/lib/tdr/tdr.c 	*v |= (uint64_t)(TDR_IVAL(tdr, tdr->offset+4)) << 32;
tdr               204 source4/lib/tdr/tdr.c 	tdr->offset += 8;
tdr               211 source4/lib/tdr/tdr.c NTSTATUS tdr_push_hyper(struct tdr_push *tdr, uint64_t *v)
tdr               213 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, 8);
tdr               214 source4/lib/tdr/tdr.c 	TDR_SIVAL(tdr, tdr->data.length, ((*v) & 0xFFFFFFFF));
tdr               215 source4/lib/tdr/tdr.c 	TDR_SIVAL(tdr, tdr->data.length+4, ((*v)>>32));
tdr               216 source4/lib/tdr/tdr.c 	tdr->data.length += 8;
tdr               223 source4/lib/tdr/tdr.c NTSTATUS tdr_push_NTTIME(struct tdr_push *tdr, NTTIME *t)
tdr               225 source4/lib/tdr/tdr.c 	TDR_CHECK(tdr_push_hyper(tdr, t));
tdr               232 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_NTTIME(struct tdr_pull *tdr, TALLOC_CTX *ctx, NTTIME *t)
tdr               234 source4/lib/tdr/tdr.c 	TDR_CHECK(tdr_pull_hyper(tdr, ctx, t));
tdr               241 source4/lib/tdr/tdr.c NTSTATUS tdr_push_time_t(struct tdr_push *tdr, time_t *t)
tdr               243 source4/lib/tdr/tdr.c 	return tdr_push_uint32(tdr, (uint32_t *)t);
tdr               249 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_time_t(struct tdr_pull *tdr, TALLOC_CTX *ctx, time_t *t)
tdr               252 source4/lib/tdr/tdr.c 	TDR_CHECK(tdr_pull_uint32(tdr, ctx, &tt));
tdr               257 source4/lib/tdr/tdr.c NTSTATUS tdr_print_time_t(struct tdr_print *tdr, const char *name, time_t *t)
tdr               260 source4/lib/tdr/tdr.c 		tdr->print(tdr, "%-25s: (time_t)%d", name, (int)*t);
tdr               262 source4/lib/tdr/tdr.c 		tdr->print(tdr, "%-25s: %s", name, timestring(tdr, *t));
tdr               268 source4/lib/tdr/tdr.c NTSTATUS tdr_print_NTTIME(struct tdr_print *tdr, const char *name, NTTIME *t)
tdr               270 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: %s", name, nt_time_string(tdr, *t));
tdr               275 source4/lib/tdr/tdr.c NTSTATUS tdr_print_DATA_BLOB(struct tdr_print *tdr, const char *name, DATA_BLOB *r)
tdr               277 source4/lib/tdr/tdr.c 	tdr->print(tdr, "%-25s: DATA_BLOB length=%u", name, r->length);
tdr               290 source4/lib/tdr/tdr.c NTSTATUS tdr_push_DATA_BLOB(struct tdr_push *tdr, DATA_BLOB *blob)
tdr               292 source4/lib/tdr/tdr.c 	if (tdr->flags & TDR_ALIGN2) {
tdr               293 source4/lib/tdr/tdr.c 		blob->length = TDR_ALIGN(tdr->data.length, 2);
tdr               294 source4/lib/tdr/tdr.c 	} else if (tdr->flags & TDR_ALIGN4) {
tdr               295 source4/lib/tdr/tdr.c 		blob->length = TDR_ALIGN(tdr->data.length, 4);
tdr               296 source4/lib/tdr/tdr.c 	} else if (tdr->flags & TDR_ALIGN8) {
tdr               297 source4/lib/tdr/tdr.c 		blob->length = TDR_ALIGN(tdr->data.length, 8);
tdr               300 source4/lib/tdr/tdr.c 	TDR_PUSH_NEED_BYTES(tdr, blob->length);
tdr               302 source4/lib/tdr/tdr.c 	memcpy(tdr->data.data+tdr->data.length, blob->data, blob->length);
tdr               309 source4/lib/tdr/tdr.c NTSTATUS tdr_pull_DATA_BLOB(struct tdr_pull *tdr, TALLOC_CTX *ctx, DATA_BLOB *blob)
tdr               313 source4/lib/tdr/tdr.c 	if (tdr->flags & TDR_ALIGN2) {
tdr               314 source4/lib/tdr/tdr.c 		length = TDR_ALIGN(tdr->offset, 2);
tdr               315 source4/lib/tdr/tdr.c 	} else if (tdr->flags & TDR_ALIGN4) {
tdr               316 source4/lib/tdr/tdr.c 		length = TDR_ALIGN(tdr->offset, 4);
tdr               317 source4/lib/tdr/tdr.c 	} else if (tdr->flags & TDR_ALIGN8) {
tdr               318 source4/lib/tdr/tdr.c 		length = TDR_ALIGN(tdr->offset, 8);
tdr               319 source4/lib/tdr/tdr.c 	} else if (tdr->flags & TDR_REMAINING) {
tdr               320 source4/lib/tdr/tdr.c 		length = tdr->data.length - tdr->offset;
tdr               325 source4/lib/tdr/tdr.c 	if (tdr->data.length - tdr->offset < length) {
tdr               326 source4/lib/tdr/tdr.c 		length = tdr->data.length - tdr->offset;
tdr               329 source4/lib/tdr/tdr.c 	TDR_PULL_NEED_BYTES(tdr, length);
tdr               331 source4/lib/tdr/tdr.c 	*blob = data_blob_talloc(tdr, tdr->data.data+tdr->offset, length);
tdr               332 source4/lib/tdr/tdr.c 	tdr->offset += length;
tdr               383 source4/lib/tdr/tdr.c void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)
tdr               393 source4/lib/tdr/tdr.c 	for (i=0;i<tdr->level;i++) { DEBUG(0,("    ")); }
tdr                29 source4/lib/tdr/testsuite.c 	struct tdr_push *tdr = tdr_push_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr                31 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_push_uint8(tdr, &v), "push failed");
tdr                32 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.length, 1, "length incorrect");
tdr                33 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[0], 4, "data incorrect");
tdr                41 source4/lib/tdr/testsuite.c 	struct tdr_pull *tdr = tdr_pull_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr                42 source4/lib/tdr/testsuite.c 	tdr->data.data = &d;
tdr                43 source4/lib/tdr/testsuite.c 	tdr->data.length = 1;
tdr                44 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr                45 source4/lib/tdr/testsuite.c 	tdr->flags = 0;
tdr                46 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_uint8(tdr, tctx, &l), 
tdr                48 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 1, tdr->offset, 
tdr                56 source4/lib/tdr/testsuite.c 	struct tdr_push *tdr = tdr_push_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr                58 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_push_uint16(tdr, &v), "push failed");
tdr                59 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.length, 2, "length incorrect");
tdr                60 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[0], 0x32, "data incorrect");
tdr                61 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[1], 0x0F, "data incorrect");
tdr                69 source4/lib/tdr/testsuite.c 	struct tdr_pull *tdr = tdr_pull_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr                70 source4/lib/tdr/testsuite.c 	tdr->data.data = d;
tdr                71 source4/lib/tdr/testsuite.c 	tdr->data.length = 2;
tdr                72 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr                73 source4/lib/tdr/testsuite.c 	tdr->flags = 0;
tdr                74 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_uint16(tdr, tctx, &l), 
tdr                76 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 2, tdr->offset, "offset invalid");
tdr                84 source4/lib/tdr/testsuite.c 	struct tdr_push *tdr = tdr_push_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr                86 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_push_uint32(tdr, &v), "push failed");
tdr                87 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.length, 4, "length incorrect");
tdr                88 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[0], 0x32, "data incorrect");
tdr                89 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[1], 0x0F, "data incorrect");
tdr                90 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[2], 0x10, "data incorrect");
tdr                91 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, tdr->data.data[3], 0x00, "data incorrect");
tdr                99 source4/lib/tdr/testsuite.c 	struct tdr_pull *tdr = tdr_pull_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr               100 source4/lib/tdr/testsuite.c 	tdr->data.data = d;
tdr               101 source4/lib/tdr/testsuite.c 	tdr->data.length = 4;
tdr               102 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr               103 source4/lib/tdr/testsuite.c 	tdr->flags = 0;
tdr               104 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_uint32(tdr, tctx, &l), 
tdr               106 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 4, tdr->offset, "offset invalid");
tdr               113 source4/lib/tdr/testsuite.c 	struct tdr_pull *tdr = tdr_pull_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr               115 source4/lib/tdr/testsuite.c 	tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
tdr               116 source4/lib/tdr/testsuite.c 	tdr->data.length = 4;
tdr               117 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr               118 source4/lib/tdr/testsuite.c 	tdr->flags = 0;
tdr               119 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_charset(tdr, tctx, &l, -1, 1, CH_DOS), 
tdr               121 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 4, tdr->offset, "offset invalid");
tdr               124 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr               125 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_charset(tdr, tctx, &l, 2, 1, CH_UNIX), 
tdr               127 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 2, tdr->offset, "offset invalid");
tdr               135 source4/lib/tdr/testsuite.c 	struct tdr_pull *tdr = tdr_pull_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr               137 source4/lib/tdr/testsuite.c 	tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
tdr               138 source4/lib/tdr/testsuite.c 	tdr->data.length = 4;
tdr               139 source4/lib/tdr/testsuite.c 	tdr->offset = 0;
tdr               140 source4/lib/tdr/testsuite.c 	tdr->flags = 0;
tdr               141 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_pull_charset(tdr, tctx, &l, 0, 1, CH_DOS), 
tdr               143 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 0, tdr->offset, "offset invalid");
tdr               154 source4/lib/tdr/testsuite.c 	struct tdr_push *tdr = tdr_push_init(tctx, lp_iconv_convenience(tctx->lp_ctx));
tdr               155 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, 4, 1, CH_UTF8), 
tdr               157 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 4, tdr->data.length, "offset invalid");
tdr               158 source4/lib/tdr/testsuite.c 	torture_assert(tctx, strcmp("bloe", (const char *)tdr->data.data) == 0, "right string push");
tdr               160 source4/lib/tdr/testsuite.c 	torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, -1, 1, CH_UTF8), 
tdr               162 source4/lib/tdr/testsuite.c 	torture_assert_int_equal(tctx, 9, tdr->data.length, "offset invalid");
tdr               163 source4/lib/tdr/testsuite.c 	torture_assert_str_equal(tctx, "bloe", (const char *)tdr->data.data+4, "right string read");