version 1.82, 2002/01/07 20:48:17
|
version 1.83, 2002/01/12 01:23:04
|
Line 1
|
Line 1
|
/* decode.c - ber input decoding routines */ |
/* decode.c - ber input decoding routines */ |
/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.81 2002/01/06 05:10:05 hyc Exp $ */ |
/* $OpenLDAP: pkg/ldap/libraries/liblber/decode.c,v 1.82 2002/01/07 20:48:17 kurt Exp $ */ |
/* |
/* |
* Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
Line 299 enum bgbvc { ChArray, BvArray, BvVec, Bv
|
Line 299 enum bgbvc { ChArray, BvArray, BvVec, Bv
|
* stack use to the absolute minimum. |
* stack use to the absolute minimum. |
*/ |
*/ |
typedef struct bgbvr { |
typedef struct bgbvr { |
BerElement *ber; |
|
enum bgbvc choice; |
enum bgbvc choice; |
|
BerElement *ber; |
ber_tag_t tag; |
ber_tag_t tag; |
ber_len_t len; |
ber_len_t len; |
char *last; |
char *last; |
Line 729 ber_scanf ( BerElement *ber,
|
Line 729 ber_scanf ( BerElement *ber,
|
|
|
case 'v': /* sequence of strings */ |
case 'v': /* sequence of strings */ |
{ |
{ |
bgbvr cookie = { ber, ChArray }; |
bgbvr cookie = { ChArray }; |
|
cookie.ber = ber; |
cookie.res.c = va_arg( ap, char *** ); |
cookie.res.c = va_arg( ap, char *** ); |
cookie.alloc = 1; |
cookie.alloc = 1; |
rc = ber_get_stringbvr( &cookie, 0 ); |
rc = ber_get_stringbvr( &cookie, 0 ); |
Line 738 ber_scanf ( BerElement *ber,
|
Line 739 ber_scanf ( BerElement *ber,
|
|
|
case 'V': /* sequence of strings + lengths */ |
case 'V': /* sequence of strings + lengths */ |
{ |
{ |
bgbvr cookie = { ber, BvVec }; |
bgbvr cookie = { BvVec }; |
|
cookie.ber = ber; |
cookie.res.bv = va_arg( ap, struct berval *** ); |
cookie.res.bv = va_arg( ap, struct berval *** ); |
cookie.alloc = 1; |
cookie.alloc = 1; |
rc = ber_get_stringbvr( &cookie, 0 ); |
rc = ber_get_stringbvr( &cookie, 0 ); |
Line 747 ber_scanf ( BerElement *ber,
|
Line 749 ber_scanf ( BerElement *ber,
|
|
|
case 'W': /* bvarray */ |
case 'W': /* bvarray */ |
{ |
{ |
bgbvr cookie = { ber, BvArray }; |
bgbvr cookie = { BvArray }; |
|
cookie.ber = ber; |
cookie.res.ba = va_arg( ap, struct berval ** ); |
cookie.res.ba = va_arg( ap, struct berval ** ); |
cookie.alloc = 1; |
cookie.alloc = 1; |
rc = ber_get_stringbvr( &cookie, 0 ); |
rc = ber_get_stringbvr( &cookie, 0 ); |
Line 760 ber_scanf ( BerElement *ber,
|
Line 763 ber_scanf ( BerElement *ber,
|
* len ptr on finish. parsed in-place. |
* len ptr on finish. parsed in-place. |
*/ |
*/ |
{ |
{ |
bgbvr cookie = { ber, BvOff }; |
bgbvr cookie = { BvOff }; |
|
cookie.ber = ber; |
cookie.res.ba = va_arg( ap, struct berval ** ); |
cookie.res.ba = va_arg( ap, struct berval ** ); |
cookie.alloc = 0; |
cookie.alloc = 0; |
l = va_arg( ap, ber_len_t * ); |
l = va_arg( ap, ber_len_t * ); |