Changeset 740 for vendor/current/lib/tdr
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (13 years ago)
- Location:
- vendor/current/lib/tdr
- Files:
-
- 1 added
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/lib/tdr/tdr.c
r414 r740 164 164 TDR_PULL_NEED_BYTES(tdr, el_size*length); 165 165 166 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)) {166 if (!convert_string_talloc(ctx, chset, CH_UNIX, tdr->data.data+tdr->offset, el_size*length, discard_const_p(void *, v), &ret, false)) { 167 167 return NT_STATUS_INVALID_PARAMETER; 168 168 } … … 184 184 TDR_PUSH_NEED_BYTES(tdr, required); 185 185 186 if (!convert_string_convenience(tdr->iconv_convenience, CH_UNIX, chset, *v, strlen(*v), tdr->data.data+tdr->data.length, required, &ret, false)) { 186 ret = convert_string(CH_UNIX, chset, *v, strlen(*v), tdr->data.data+tdr->data.length, required, false); 187 if (ret == -1) { 187 188 return NT_STATUS_INVALID_PARAMETER; 188 189 } … … 344 345 } 345 346 346 struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx , struct smb_iconv_convenience *ic)347 struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx) 347 348 { 348 349 struct tdr_push *push = talloc_zero(mem_ctx, struct tdr_push); … … 351 352 return NULL; 352 353 353 push->iconv_convenience = talloc_reference(push, ic);354 355 354 return push; 356 355 } 357 356 358 struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx , struct smb_iconv_convenience *ic)357 struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx) 359 358 { 360 359 struct tdr_pull *pull = talloc_zero(mem_ctx, struct tdr_pull); … … 363 362 return NULL; 364 363 365 pull->iconv_convenience = talloc_reference(pull, ic);366 367 364 return pull; 368 365 } 369 366 370 NTSTATUS tdr_push_to_fd(int fd, struct smb_iconv_convenience *iconv_convenience,tdr_push_fn_t push_fn, const void *p)371 { 372 struct tdr_push *push = tdr_push_init(NULL , iconv_convenience);367 NTSTATUS tdr_push_to_fd(int fd, tdr_push_fn_t push_fn, const void *p) 368 { 369 struct tdr_push *push = tdr_push_init(NULL); 373 370 374 371 if (push == NULL) … … 391 388 } 392 389 393 void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)390 void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) 394 391 { 395 392 va_list ap; -
vendor/current/lib/tdr/tdr.h
r414 r740 3 3 TDR definitions 4 4 Copyright (C) Jelmer Vernooij 2005 5 5 6 6 This program is free software; you can redistribute it and/or modify 7 7 it under the terms of the GNU General Public License as published by 8 8 the Free Software Foundation; either version 3 of the License, or 9 9 (at your option) any later version. 10 10 11 11 This program is distributed in the hope that it will be useful, 12 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 14 GNU General Public License for more details. 15 15 16 16 You should have received a copy of the GNU General Public License 17 17 along with this program. If not, see <http://www.gnu.org/licenses/>. … … 34 34 uint32_t offset; 35 35 int flags; 36 struct smb_iconv_convenience *iconv_convenience;37 36 }; 38 37 … … 40 39 DATA_BLOB data; 41 40 int flags; 42 struct smb_iconv_convenience *iconv_convenience;43 41 }; 44 42 … … 63 61 typedef NTSTATUS (*tdr_pull_fn_t) (struct tdr_pull *, TALLOC_CTX *, void *); 64 62 65 #include "../lib/tdr/tdr_proto.h" 63 NTSTATUS tdr_push_expand(struct tdr_push *tdr, uint32_t size); 64 NTSTATUS tdr_pull_uint8(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint8_t *v); 65 NTSTATUS tdr_push_uint8(struct tdr_push *tdr, const uint8_t *v); 66 NTSTATUS tdr_print_uint8(struct tdr_print *tdr, const char *name, uint8_t *v); 67 NTSTATUS tdr_pull_uint16(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v); 68 NTSTATUS tdr_pull_uint1632(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v); 69 NTSTATUS tdr_push_uint16(struct tdr_push *tdr, const uint16_t *v); 70 NTSTATUS tdr_push_uint1632(struct tdr_push *tdr, const uint16_t *v); 71 NTSTATUS tdr_print_uint16(struct tdr_print *tdr, const char *name, uint16_t *v); 72 NTSTATUS tdr_pull_uint32(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint32_t *v); 73 NTSTATUS tdr_push_uint32(struct tdr_push *tdr, const uint32_t *v); 74 NTSTATUS tdr_print_uint32(struct tdr_print *tdr, const char *name, uint32_t *v); 75 NTSTATUS tdr_pull_charset(struct tdr_pull *tdr, TALLOC_CTX *ctx, const char **v, uint32_t length, uint32_t el_size, charset_t chset); 76 NTSTATUS tdr_push_charset(struct tdr_push *tdr, const char **v, uint32_t length, uint32_t el_size, charset_t chset); 77 NTSTATUS tdr_print_charset(struct tdr_print *tdr, const char *name, const char **v, uint32_t length, uint32_t el_size, charset_t chset); 78 79 NTSTATUS tdr_pull_hyper(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint64_t *v); 80 NTSTATUS tdr_push_hyper(struct tdr_push *tdr, uint64_t *v); 81 82 NTSTATUS tdr_push_NTTIME(struct tdr_push *tdr, NTTIME *t); 83 NTSTATUS tdr_pull_NTTIME(struct tdr_pull *tdr, TALLOC_CTX *ctx, NTTIME *t); 84 NTSTATUS tdr_print_NTTIME(struct tdr_print *tdr, const char *name, NTTIME *t); 85 86 NTSTATUS tdr_push_time_t(struct tdr_push *tdr, time_t *t); 87 NTSTATUS tdr_pull_time_t(struct tdr_pull *tdr, TALLOC_CTX *ctx, time_t *t); 88 NTSTATUS tdr_print_time_t(struct tdr_print *tdr, const char *name, time_t *t); 89 90 NTSTATUS tdr_print_DATA_BLOB(struct tdr_print *tdr, const char *name, DATA_BLOB *r); 91 NTSTATUS tdr_push_DATA_BLOB(struct tdr_push *tdr, DATA_BLOB *blob); 92 NTSTATUS tdr_pull_DATA_BLOB(struct tdr_pull *tdr, TALLOC_CTX *ctx, DATA_BLOB *blob); 93 94 struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx); 95 struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx); 96 97 NTSTATUS tdr_push_to_fd(int fd, tdr_push_fn_t push_fn, const void *p); 98 void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) PRINTF_ATTRIBUTE(2,3); 66 99 67 100 #endif /* __TDR_H__ */ -
vendor/current/lib/tdr/testsuite.c
r414 r740 26 26 { 27 27 uint8_t v = 4; 28 struct tdr_push *tdr = tdr_push_init(tctx , global_iconv_convenience);28 struct tdr_push *tdr = tdr_push_init(tctx); 29 29 30 30 torture_assert_ntstatus_ok(tctx, tdr_push_uint8(tdr, &v), "push failed"); … … 38 38 uint8_t d = 2; 39 39 uint8_t l; 40 struct tdr_pull *tdr = tdr_pull_init(tctx , global_iconv_convenience);40 struct tdr_pull *tdr = tdr_pull_init(tctx); 41 41 tdr->data.data = &d; 42 42 tdr->data.length = 1; … … 53 53 { 54 54 uint16_t v = 0xF32; 55 struct tdr_push *tdr = tdr_push_init(tctx , global_iconv_convenience);55 struct tdr_push *tdr = tdr_push_init(tctx); 56 56 57 57 torture_assert_ntstatus_ok(tctx, tdr_push_uint16(tdr, &v), "push failed"); … … 66 66 uint8_t d[2] = { 782 & 0xFF, (782 & 0xFF00) / 0x100 }; 67 67 uint16_t l; 68 struct tdr_pull *tdr = tdr_pull_init(tctx , global_iconv_convenience);68 struct tdr_pull *tdr = tdr_pull_init(tctx); 69 69 tdr->data.data = d; 70 70 tdr->data.length = 2; … … 81 81 { 82 82 uint32_t v = 0x100F32; 83 struct tdr_push *tdr = tdr_push_init(tctx , global_iconv_convenience);83 struct tdr_push *tdr = tdr_push_init(tctx); 84 84 85 85 torture_assert_ntstatus_ok(tctx, tdr_push_uint32(tdr, &v), "push failed"); … … 96 96 uint8_t d[4] = { 782 & 0xFF, (782 & 0xFF00) / 0x100, 0, 0 }; 97 97 uint32_t l; 98 struct tdr_pull *tdr = tdr_pull_init(tctx , global_iconv_convenience);98 struct tdr_pull *tdr = tdr_pull_init(tctx); 99 99 tdr->data.data = d; 100 100 tdr->data.length = 4; … … 110 110 static bool test_pull_charset(struct torture_context *tctx) 111 111 { 112 struct tdr_pull *tdr = tdr_pull_init(tctx , global_iconv_convenience);112 struct tdr_pull *tdr = tdr_pull_init(tctx); 113 113 const char *l = NULL; 114 114 tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla"); … … 132 132 static bool test_pull_charset_empty(struct torture_context *tctx) 133 133 { 134 struct tdr_pull *tdr = tdr_pull_init(tctx , global_iconv_convenience);134 struct tdr_pull *tdr = tdr_pull_init(tctx); 135 135 const char *l = NULL; 136 136 tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla"); … … 151 151 { 152 152 const char *l = "bloe"; 153 struct tdr_push *tdr = tdr_push_init(tctx , global_iconv_convenience);153 struct tdr_push *tdr = tdr_push_init(tctx); 154 154 torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, 4, 1, CH_UTF8), 155 155 "push failed"); 156 156 torture_assert_int_equal(tctx, 4, tdr->data.length, "offset invalid"); 157 torture_assert(tctx, str cmp("bloe", (const char *)tdr->data.data) == 0, "right string push");157 torture_assert(tctx, strncmp("bloe", (const char *)tdr->data.data, 4) == 0, "right string push"); 158 158 159 159 torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, -1, 1, CH_UTF8), … … 167 167 struct torture_suite *torture_local_tdr(TALLOC_CTX *mem_ctx) 168 168 { 169 struct torture_suite *suite = torture_suite_create(mem_ctx, " TDR");169 struct torture_suite *suite = torture_suite_create(mem_ctx, "tdr"); 170 170 171 171 torture_suite_add_simple_test(suite, "pull_uint8", test_pull_uint8);
Note:
See TracChangeset
for help on using the changeset viewer.