X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=odr%2Fodr_oct.c;h=c0458dd7236098812433d630602dc09ad55f944d;hb=29a22396d7d7b1219f5b83c35983c8fb1cd79e8f;hp=204648cb2d2a538549140a66e3452aa2565dc93e;hpb=cf9f213fff1ae6b2471f8367114b93ae45ed8b75;p=yaz-moved-to-github.git diff --git a/odr/odr_oct.c b/odr/odr_oct.c index 204648c..c0458dd 100644 --- a/odr/odr_oct.c +++ b/odr/odr_oct.c @@ -1,9 +1,9 @@ /* - * Copyright (c) 1995-2002, Index Data + * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * - * $Id: odr_oct.c,v 1.18 2002-08-28 07:53:51 adam Exp $ + * $Id: odr_oct.c,v 1.22 2003-05-20 19:55:30 adam Exp $ */ #if HAVE_CONFIG_H #include @@ -27,10 +27,10 @@ int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name) o->t_class = ODR_UNIVERSAL; o->t_tag = ODR_OCTETSTRING; } - if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt)) < 0) + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) return 0; if (!res) - return opt; + return odr_missing(o, opt, name); if (o->direction == ODR_PRINT) { int i; @@ -57,7 +57,7 @@ int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name) } if (ber_octetstring(o, *p, cons)) return 1; - o->error = OOTHER; + odr_seterror(o, OOTHER, 43); return 0; } @@ -76,10 +76,10 @@ int odr_cstring(ODR o, char **p, int opt, const char *name) o->t_class = ODR_UNIVERSAL; o->t_tag = ODR_OCTETSTRING; } - if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt)) < 0) + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) return 0; if (!res) - return opt; + return odr_missing(o, opt, name); if (o->direction == ODR_PRINT) { odr_prname(o, name); @@ -123,10 +123,10 @@ int odr_iconv_string(ODR o, char **p, int opt, const char *name) o->t_class = ODR_UNIVERSAL; o->t_tag = ODR_OCTETSTRING; } - if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt)) < 0) + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) return 0; if (!res) - return opt; + return odr_missing(o, opt, name); if (o->direction == ODR_PRINT) { odr_prname(o, name); @@ -143,16 +143,16 @@ int odr_iconv_string(ODR o, char **p, int opt, const char *name) size_t inleft = strlen(*p); char *inbuf = *p; size_t outleft = 4 * inleft + 2; - char *outbuf = odr_malloc (o, outleft); + char *outbuf = (char *) odr_malloc (o, outleft); size_t ret; - t->buf = outbuf; + t->buf = (unsigned char *) outbuf; ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft, &outbuf, &outleft); if (ret == (size_t)(-1)) { - o->error = ODATA; + odr_seterror(o, ODATA, 44); return 0; } t->size = t->len = outbuf - (char*) t->buf; @@ -178,9 +178,9 @@ int odr_iconv_string(ODR o, char **p, int opt, const char *name) if (o->op->iconv_handle != 0) { size_t inleft = t->len; - char *inbuf = t->buf; + char *inbuf = (char *) t->buf; size_t outleft = 4 * inleft + 2; - char *outbuf = odr_malloc (o, outleft); + char *outbuf = (char *) odr_malloc (o, outleft); size_t ret; *p = outbuf; @@ -189,7 +189,7 @@ int odr_iconv_string(ODR o, char **p, int opt, const char *name) &outbuf, &outleft); if (ret == (size_t)(-1)) { - o->error = ODATA; + odr_seterror(o, ODATA, 45); return 0; } inleft = outbuf - (char*) *p;