Changeset 740 for vendor/current/lib/tdr


Ignore:
Timestamp:
Nov 14, 2012, 12:59:34 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to 3.6.0

Location:
vendor/current/lib/tdr
Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/lib/tdr/tdr.c

    r414 r740  
    164164        TDR_PULL_NEED_BYTES(tdr, el_size*length);
    165165       
    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)) {
    167167                return NT_STATUS_INVALID_PARAMETER;
    168168        }
     
    184184        TDR_PUSH_NEED_BYTES(tdr, required);
    185185
    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) {
    187188                return NT_STATUS_INVALID_PARAMETER;
    188189        }
     
    344345}
    345346
    346 struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
     347struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx)
    347348{
    348349        struct tdr_push *push = talloc_zero(mem_ctx, struct tdr_push);
     
    351352                return NULL;
    352353
    353         push->iconv_convenience = talloc_reference(push, ic);
    354 
    355354        return push;
    356355}
    357356
    358 struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
     357struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx)
    359358{
    360359        struct tdr_pull *pull = talloc_zero(mem_ctx, struct tdr_pull);
     
    363362                return NULL;
    364363
    365         pull->iconv_convenience = talloc_reference(pull, ic);
    366 
    367364        return pull;
    368365}
    369366
    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);
     367NTSTATUS 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);
    373370
    374371        if (push == NULL)
     
    391388}
    392389
    393 void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) _PRINTF_ATTRIBUTE(2,3)
     390void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...)
    394391{
    395392        va_list ap;
  • vendor/current/lib/tdr/tdr.h

    r414 r740  
    33   TDR definitions
    44   Copyright (C) Jelmer Vernooij 2005
    5    
     5
    66   This program is free software; you can redistribute it and/or modify
    77   it under the terms of the GNU General Public License as published by
    88   the Free Software Foundation; either version 3 of the License, or
    99   (at your option) any later version.
    10    
     10
    1111   This program is distributed in the hope that it will be useful,
    1212   but WITHOUT ANY WARRANTY; without even the implied warranty of
    1313   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1414   GNU General Public License for more details.
    15    
     15
    1616   You should have received a copy of the GNU General Public License
    1717   along with this program.  If not, see <http://www.gnu.org/licenses/>.
     
    3434        uint32_t offset;
    3535        int flags;
    36         struct smb_iconv_convenience *iconv_convenience;
    3736};
    3837
     
    4039        DATA_BLOB data;
    4140        int flags;
    42         struct smb_iconv_convenience *iconv_convenience;
    4341};
    4442
     
    6361typedef NTSTATUS (*tdr_pull_fn_t) (struct tdr_pull *, TALLOC_CTX *, void *);
    6462
    65 #include "../lib/tdr/tdr_proto.h"
     63NTSTATUS tdr_push_expand(struct tdr_push *tdr, uint32_t size);
     64NTSTATUS tdr_pull_uint8(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint8_t *v);
     65NTSTATUS tdr_push_uint8(struct tdr_push *tdr, const uint8_t *v);
     66NTSTATUS tdr_print_uint8(struct tdr_print *tdr, const char *name, uint8_t *v);
     67NTSTATUS tdr_pull_uint16(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v);
     68NTSTATUS tdr_pull_uint1632(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint16_t *v);
     69NTSTATUS tdr_push_uint16(struct tdr_push *tdr, const uint16_t *v);
     70NTSTATUS tdr_push_uint1632(struct tdr_push *tdr, const uint16_t *v);
     71NTSTATUS tdr_print_uint16(struct tdr_print *tdr, const char *name, uint16_t *v);
     72NTSTATUS tdr_pull_uint32(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint32_t *v);
     73NTSTATUS tdr_push_uint32(struct tdr_push *tdr, const uint32_t *v);
     74NTSTATUS tdr_print_uint32(struct tdr_print *tdr, const char *name, uint32_t *v);
     75NTSTATUS tdr_pull_charset(struct tdr_pull *tdr, TALLOC_CTX *ctx, const char **v, uint32_t length, uint32_t el_size, charset_t chset);
     76NTSTATUS tdr_push_charset(struct tdr_push *tdr, const char **v, uint32_t length, uint32_t el_size, charset_t chset);
     77NTSTATUS tdr_print_charset(struct tdr_print *tdr, const char *name, const char **v, uint32_t length, uint32_t el_size, charset_t chset);
     78
     79NTSTATUS tdr_pull_hyper(struct tdr_pull *tdr, TALLOC_CTX *ctx, uint64_t *v);
     80NTSTATUS tdr_push_hyper(struct tdr_push *tdr, uint64_t *v);
     81
     82NTSTATUS tdr_push_NTTIME(struct tdr_push *tdr, NTTIME *t);
     83NTSTATUS tdr_pull_NTTIME(struct tdr_pull *tdr, TALLOC_CTX *ctx, NTTIME *t);
     84NTSTATUS tdr_print_NTTIME(struct tdr_print *tdr, const char *name, NTTIME *t);
     85
     86NTSTATUS tdr_push_time_t(struct tdr_push *tdr, time_t *t);
     87NTSTATUS tdr_pull_time_t(struct tdr_pull *tdr, TALLOC_CTX *ctx, time_t *t);
     88NTSTATUS tdr_print_time_t(struct tdr_print *tdr, const char *name, time_t *t);
     89
     90NTSTATUS tdr_print_DATA_BLOB(struct tdr_print *tdr, const char *name, DATA_BLOB *r);
     91NTSTATUS tdr_push_DATA_BLOB(struct tdr_push *tdr, DATA_BLOB *blob);
     92NTSTATUS tdr_pull_DATA_BLOB(struct tdr_pull *tdr, TALLOC_CTX *ctx, DATA_BLOB *blob);
     93
     94struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx);
     95struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx);
     96
     97NTSTATUS tdr_push_to_fd(int fd, tdr_push_fn_t push_fn, const void *p);
     98void tdr_print_debug_helper(struct tdr_print *tdr, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
    6699
    67100#endif /* __TDR_H__ */
  • vendor/current/lib/tdr/testsuite.c

    r414 r740  
    2626{
    2727        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);
    2929
    3030        torture_assert_ntstatus_ok(tctx, tdr_push_uint8(tdr, &v), "push failed");
     
    3838        uint8_t d = 2;
    3939        uint8_t l;
    40         struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
     40        struct tdr_pull *tdr = tdr_pull_init(tctx);
    4141        tdr->data.data = &d;
    4242        tdr->data.length = 1;
     
    5353{
    5454        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);
    5656
    5757        torture_assert_ntstatus_ok(tctx, tdr_push_uint16(tdr, &v), "push failed");
     
    6666        uint8_t d[2] = { 782 & 0xFF, (782 & 0xFF00) / 0x100 };
    6767        uint16_t l;
    68         struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
     68        struct tdr_pull *tdr = tdr_pull_init(tctx);
    6969        tdr->data.data = d;
    7070        tdr->data.length = 2;
     
    8181{
    8282        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);
    8484
    8585        torture_assert_ntstatus_ok(tctx, tdr_push_uint32(tdr, &v), "push failed");
     
    9696        uint8_t d[4] = { 782 & 0xFF, (782 & 0xFF00) / 0x100, 0, 0 };
    9797        uint32_t l;
    98         struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
     98        struct tdr_pull *tdr = tdr_pull_init(tctx);
    9999        tdr->data.data = d;
    100100        tdr->data.length = 4;
     
    110110static bool test_pull_charset(struct torture_context *tctx)
    111111{
    112         struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
     112        struct tdr_pull *tdr = tdr_pull_init(tctx);
    113113        const char *l = NULL;
    114114        tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
     
    132132static bool test_pull_charset_empty(struct torture_context *tctx)
    133133{
    134         struct tdr_pull *tdr = tdr_pull_init(tctx, global_iconv_convenience);
     134        struct tdr_pull *tdr = tdr_pull_init(tctx);
    135135        const char *l = NULL;
    136136        tdr->data.data = (uint8_t *)talloc_strdup(tctx, "bla");
     
    151151{
    152152        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);
    154154        torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, 4, 1, CH_UTF8),
    155155                                                           "push failed");
    156156        torture_assert_int_equal(tctx, 4, tdr->data.length, "offset invalid");
    157         torture_assert(tctx, strcmp("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");
    158158
    159159        torture_assert_ntstatus_ok(tctx, tdr_push_charset(tdr, &l, -1, 1, CH_UTF8),
     
    167167struct torture_suite *torture_local_tdr(TALLOC_CTX *mem_ctx)
    168168{
    169         struct torture_suite *suite = torture_suite_create(mem_ctx, "TDR");
     169        struct torture_suite *suite = torture_suite_create(mem_ctx, "tdr");
    170170
    171171        torture_suite_add_simple_test(suite, "pull_uint8", test_pull_uint8);
Note: See TracChangeset for help on using the changeset viewer.