mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-22 23:59:34 -05:00
ITS#8733 Allow extraction of the complete ber element
This commit is contained in:
parent
6aa6daf2f0
commit
62811e8f65
2 changed files with 24 additions and 0 deletions
|
|
@ -255,6 +255,11 @@ ber_peek_tag LDAP_P((
|
||||||
BerElement *ber,
|
BerElement *ber,
|
||||||
ber_len_t *len ));
|
ber_len_t *len ));
|
||||||
|
|
||||||
|
LBER_F( ber_tag_t )
|
||||||
|
ber_skip_raw LDAP_P((
|
||||||
|
BerElement *ber,
|
||||||
|
struct berval *bv ));
|
||||||
|
|
||||||
LBER_F( ber_tag_t )
|
LBER_F( ber_tag_t )
|
||||||
ber_skip_element LDAP_P((
|
ber_skip_element LDAP_P((
|
||||||
BerElement *ber,
|
BerElement *ber,
|
||||||
|
|
|
||||||
|
|
@ -234,6 +234,25 @@ ber_skip_element( BerElement *ber, struct berval *bv )
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Move past next element, point *bv at the complete element in-place, and
|
||||||
|
* return its tag. The caller may \0-terminate *bv, as next octet is saved in
|
||||||
|
* ber->ber_tag. Similar to ber_skip_element(ber, bv) except the tag+length
|
||||||
|
* header is also included in *bv.
|
||||||
|
*/
|
||||||
|
ber_tag_t
|
||||||
|
ber_skip_raw( BerElement *ber, struct berval *bv )
|
||||||
|
{
|
||||||
|
char *val = ber->ber_ptr;
|
||||||
|
ber_tag_t tag = ber_skip_element( ber, bv );
|
||||||
|
|
||||||
|
if ( tag != LBER_DEFAULT ) {
|
||||||
|
bv->bv_len += bv->bv_val - val;
|
||||||
|
bv->bv_val = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
ber_tag_t
|
ber_tag_t
|
||||||
ber_peek_tag(
|
ber_peek_tag(
|
||||||
BerElement *ber,
|
BerElement *ber,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue