Support for Session Extended User Data and IMPLICIT APPLICATION tagged bitstrings

svn path=/trunk/; revision=17726
This commit is contained in:
Graeme Lunt 2006-03-25 16:32:46 +00:00
parent 719b8effbe
commit 011ced394c
2 changed files with 11 additions and 1 deletions

View File

@ -2142,7 +2142,14 @@ int dissect_ber_bitstring(gboolean implicit_tag, packet_info *pinfo, proto_tree
end_offset = offset + len;
/* sanity check: we only handle Universal BitSrings */
if(!implicit_tag) {
/* for an IMPLICIT APPLICATION tag asn2eth seems to call this
function with implicit_tag = FALSE. BER_FLAGS_NOOWNTAG was
set so the APPLICATION tag was still present.
So here we relax it for APPLICATION tags. CONTEXT tags may
still cause a problem. */
if(!implicit_tag && (class!=BER_CLASS_APP)) {
if( (class!=BER_CLASS_UNI)
||(tag!=BER_UNI_TAG_BITSTRING) ){
tvb_ensure_bytes_exist(tvb, offset-2, 2);

View File

@ -918,6 +918,8 @@ dissect_parameters(tvbuff_t *tvb, int offset, guint16 len, proto_tree *tree,
switch(param_type)
{
case Extended_User_Data:
call_pres_dissector(tvb, offset, param_len,
pinfo, tree, param_tree, session);
break;
case User_Data:
@ -973,6 +975,7 @@ dissect_spdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
type = tvb_get_guint8(tvb, offset);
session.spdu_type = type;
session.abort_type = SESSION_NO_ABORT;
session.ros_op = 0;
if (tokens) {
if (check_col(pinfo->cinfo, COL_INFO))