/*
- * 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 <config.h>
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;
}
if (ber_octetstring(o, *p, cons))
return 1;
- o->error = OOTHER;
+ odr_seterror(o, OOTHER, 43);
return 0;
}
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);
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);
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;
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;
&outbuf, &outleft);
if (ret == (size_t)(-1))
{
- o->error = ODATA;
+ odr_seterror(o, ODATA, 45);
return 0;
}
inleft = outbuf - (char*) *p;