aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packet-clnp.c10
-rw-r--r--packet-h1.c30
-rw-r--r--packet-h1.h4
3 files changed, 23 insertions, 21 deletions
diff --git a/packet-clnp.c b/packet-clnp.c
index 2552b8c79e..66ba406951 100644
--- a/packet-clnp.c
+++ b/packet-clnp.c
@@ -1,7 +1,7 @@
/* packet-clnp.c
* Routines for ISO/OSI network and transport protocol packet disassembly
*
- * $Id: packet-clnp.c,v 1.4 2000/04/18 18:01:50 deniel Exp $
+ * $Id: packet-clnp.c,v 1.5 2000/04/28 19:35:39 guy Exp $
* Laurent Deniel <deniel@worldnet.fr>
* Ralf Schneider <Ralf.Schneider@t-online.de>
*
@@ -428,8 +428,12 @@ static gboolean osi_decode_DT(const u_char *pd, int offset,
offset += li + 1;
if (uses_inactive_subset){
- dissect_h1(pd, offset, fd, tree);
- return TRUE;
+ if (dissect_h1(pd, offset, fd, tree)) {
+ return TRUE;
+ }
+ /* Fill in other Dissectors using inactive subset here */
+ dissect_data(pd, offset, fd, tree);
+ return FALSE;
}
else {
dissect_data(pd, offset, fd, tree);
diff --git a/packet-h1.c b/packet-h1.c
index 0266b838bb..5c636caaa8 100644
--- a/packet-h1.c
+++ b/packet-h1.c
@@ -2,7 +2,7 @@
* Routines for Sinec H1 packet disassembly
* Gerrit Gehnen <G.Gehnen@atrie.de>
*
- * $Id: packet-h1.c,v 1.4 2000/04/13 06:26:31 guy Exp $
+ * $Id: packet-h1.c,v 1.5 2000/04/28 19:35:40 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -90,7 +90,7 @@ static const value_string returncode_vals[] = {
{0x00, "No error"},
{0x02, "Requested block does not exist"},
{0x03, "Requested block too small"},
- {0xFF, "Error, reason unkown"},
+ {0xFF, "Error, reason unknown"},
{0, NULL}
};
@@ -101,7 +101,7 @@ static gint ett_response = -1;
static gint ett_empty = -1;
-void
+gboolean
dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
{
proto_tree *h1_tree = NULL;
@@ -113,8 +113,10 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
unsigned int position = 2;
- if (pd[offset] == 'S' && pd[offset + 1] == '5')
- {
+ if (!(pd[offset] == 'S' && pd[offset + 1] == '5')) {
+ return FALSE;
+ }
+
if (check_col (fd, COL_PROTOCOL))
col_add_str (fd, COL_PROTOCOL, "H1");
if (check_col (fd, COL_INFO))
@@ -151,8 +153,8 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
if (check_col (fd, COL_INFO))
{
col_append_str (fd, COL_INFO,
- match_strval (pd[offset + position + 2],
- opcode_vals));
+ val_to_str (pd[offset + position + 2],
+ opcode_vals,"Unknown Opcode (0x%2.2x)"));
}
break;
case REQUEST_BLOCK:
@@ -184,8 +186,8 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
if (check_col (fd, COL_INFO))
{
col_append_fstr (fd, COL_INFO, " %s %d",
- match_strval (pd[offset + position + 2],
- org_vals),
+ val_to_str (pd[offset + position + 2],
+ org_vals,"Unknown Type (0x%2.2x)"),
pd[offset + position + 3]);
col_append_fstr (fd, COL_INFO, " DW %d",
pd[offset + position + 4] * 0x100 +
@@ -213,8 +215,8 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
if (check_col (fd, COL_INFO))
{
col_append_fstr (fd, COL_INFO, " %s",
- match_strval (pd[offset + position + 2],
- returncode_vals));
+ val_to_str (pd[offset + position + 2],
+ returncode_vals,"Unknown Returcode (0x%2.2x"));
}
break;
case EMPTY_BLOCK:
@@ -239,11 +241,7 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree)
} /* ..while */
dissect_data (pd, offset + pd[offset + 2], fd, tree);
- }
- else
- {
- dissect_data (pd, offset, fd, tree);
- }
+ return TRUE;
}
diff --git a/packet-h1.h b/packet-h1.h
index 11a49db467..b9ba335e05 100644
--- a/packet-h1.h
+++ b/packet-h1.h
@@ -2,7 +2,7 @@
* Declarations of outines for Sinec H1 packet disassembly
* Gerrit Gehnen <G.Gehnen@atrie.de>
*
- * $Id: packet-h1.h,v 1.1 2000/03/02 07:27:05 guy Exp $
+ * $Id: packet-h1.h,v 1.2 2000/04/28 19:35:41 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -24,4 +24,4 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-void dissect_h1(const u_char *, int, frame_data *, proto_tree *);
+gboolean dissect_h1(const u_char *, int, frame_data *, proto_tree *);