aboutsummaryrefslogtreecommitdiffstats
path: root/packet-osi.c
diff options
context:
space:
mode:
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>1998-11-17 04:29:13 +0000
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>1998-11-17 04:29:13 +0000
commit470fffbe32e31e4c164477cd823fd3b92780e325 (patch)
tree750ab11a6661c391b126d4ce990b7fc01cb98d46 /packet-osi.c
parent69fa1398275aa35864ebd22acfc7dfe3f0151c15 (diff)
* Added column formatting functionality.
* Added check_col(), add_col_str() and add_col_fmt() to replace references to ft->win_info. * Added column prefs handling code. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@97 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-osi.c')
-rw-r--r--packet-osi.c115
1 files changed, 59 insertions, 56 deletions
diff --git a/packet-osi.c b/packet-osi.c
index 7434ff0261..65dcc919d4 100644
--- a/packet-osi.c
+++ b/packet-osi.c
@@ -1,7 +1,7 @@
/* packet-osi.c
* Routines for ISO/OSI network and transport protocol packet disassembly
*
- * $Id: packet-osi.c,v 1.4 1998/11/12 00:06:35 gram Exp $
+ * $Id: packet-osi.c,v 1.5 1998/11/17 04:29:01 gerald Exp $
* Laurent Deniel <deniel@worldnet.fr>
*
* Ethereal - Network traffic analyzer
@@ -240,11 +240,11 @@ static int osi_decode_DR(const u_char *pd, int offset,
break;
}
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "DR TPDU src-ref: 0x%04x dst-ref: 0x%04x",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "DR TPDU src-ref: 0x%04x dst-ref: 0x%04x",
src_ref, dst_ref);
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -331,13 +331,13 @@ static int osi_decode_DT(const u_char *pd, int offset,
break;
}
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "DT TPDU (%d) dst-ref: 0x%04x %s",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "DT TPDU (%d) dst-ref: 0x%04x %s",
tpdu_nr,
dst_ref,
(fragment)? "(fragment)" : "");
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -469,10 +469,10 @@ static int osi_decode_ED(const u_char *pd, int offset,
break;
} /* li */
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "ED TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
- }
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "ED TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -552,10 +552,10 @@ static int osi_decode_RJ(const u_char *pd, int offset,
break;
}
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "RJ TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
- }
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "RJ TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -638,13 +638,13 @@ static int osi_decode_CC(const u_char *pd, int offset,
if (class_option > 4)
return -1;
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "%s TPDU src-ref: 0x%04x dst-ref: 0x%04x",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "%s TPDU src-ref: 0x%04x dst-ref: 0x%04x",
(tpdu == CR_TPDU) ? "CR" : "CC",
src_ref,
dst_ref);
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -912,12 +912,12 @@ static int osi_decode_DC(const u_char *pd, int offset,
break;
} /* li */
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "DC TPDU src-ref: 0x%04x dst-ref: 0x%04x",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "DC TPDU src-ref: 0x%04x dst-ref: 0x%04x",
src_ref,
dst_ref);
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -967,11 +967,11 @@ static int osi_decode_AK(const u_char *pd, int offset,
if (!is_LI_NORMAL_AK(li)) {
tpdu_nr = pd[offset + P_TPDU_NR_234];
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "AK TPDU (%d) dst-ref: 0x%04x",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "AK TPDU (%d) dst-ref: 0x%04x",
tpdu_nr, dst_ref);
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -1075,11 +1075,11 @@ static int osi_decode_AK(const u_char *pd, int offset,
tpdu_nr = EXTRACT_LONG(&pd[offset + P_TPDU_NR_234]);
cdt_in_ak = EXTRACT_SHORT(&pd[offset + P_CDT_IN_AK]);
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "AK TPDU (%d) dst-ref: 0x%04x",
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "AK TPDU (%d) dst-ref: 0x%04x",
tpdu_nr, dst_ref);
- }
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -1229,10 +1229,10 @@ static int osi_decode_EA(const u_char *pd, int offset,
break;
} /* li */
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "EA TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
- }
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "EA TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -1315,10 +1315,10 @@ static int osi_decode_ER(const u_char *pd, int offset,
break;
}
- if (fd->win_info[COL_NUM]) {
- strcpy(fd->win_info[COL_PROTOCOL], "COTP");
- sprintf(fd->win_info[COL_INFO], "ER TPDU dst-ref: 0x%04x", dst_ref);
- }
+ if (check_col(fd, COL_PROTOCOL))
+ col_add_str(fd, COL_PROTOCOL, "COTP");
+ if (check_col(fd, COL_INFO))
+ col_add_fstr(fd, COL_INFO, "ER TPDU dst-ref: 0x%04x", dst_ref);
if (tree) {
ti = add_item_to_tree(GTK_WIDGET(tree), offset, li + 1,
@@ -1514,12 +1514,12 @@ void dissect_clnp(const u_char *pd, int offset, frame_data *fd, GtkTree *tree)
print_nsap(&pd[offset + dst_len + 2], src_len));
}
- if (fd->win_info[COL_NUM]) {
- sprintf(fd->win_info[COL_SOURCE], "%s",
+ if (check_col(fd, COL_RES_NET_SRC))
+ col_add_fstr(fd, COL_RES_NET_SRC, "%s",
print_nsap(&pd[offset + dst_len + 2], src_len));
- sprintf(fd->win_info[COL_DESTINATION], "%s",
+ if (check_col(fd, COL_RES_NET_DST))
+ col_add_fstr(fd, COL_RES_NET_DST, "%s",
print_nsap(&pd[offset + 1], dst_len));
- }
/* Segmentation Part */
@@ -1576,38 +1576,41 @@ void dissect_osi(const u_char *pd, int offset, frame_data *fd, GtkTree *tree)
/* only CLNP is currently decoded */
case ISO8473_CLNP:
- if (fd->win_info[COL_NUM])
+ if (check_col(fd, COL_PROTOCOL))
{
- strcpy(fd->win_info[COL_PROTOCOL], "CLNP");
+ col_add_str(fd, COL_PROTOCOL, "CLNP");
}
dissect_clnp(pd, offset, fd, tree);
break;
case ISO9542_ESIS:
- if (fd->win_info[COL_NUM])
+ if (check_col(fd, COL_PROTOCOL))
{
- strcpy(fd->win_info[COL_PROTOCOL], "ESIS");
+ col_add_str(fd, COL_PROTOCOL, "ESIS");
}
dissect_data(pd, offset, fd, tree);
break;
case ISO9542X25_ESIS:
- if (fd->win_info[COL_NUM])
+ if (check_col(fd, COL_PROTOCOL))
{
- strcpy(fd->win_info[COL_PROTOCOL], "ESIS(X25)");
+ col_add_str(fd, COL_PROTOCOL, "ESIS(X25)");
}
dissect_data(pd, offset, fd, tree);
break;
case ISO10589_ISIS:
- if (fd->win_info[COL_NUM])
+ if (check_col(fd, COL_PROTOCOL))
{
- strcpy(fd->win_info[COL_PROTOCOL], "ISIS");
+ col_add_str(fd, COL_PROTOCOL, "ISIS");
}
dissect_data(pd, offset, fd, tree);
break;
default:
- if (fd->win_info[COL_NUM])
+ if (check_col(fd, COL_PROTOCOL))
+ {
+ col_add_str(fd, COL_PROTOCOL, "ISO");
+ }
+ if (check_col(fd, COL_INFO))
{
- strcpy(fd->win_info[COL_PROTOCOL], "ISO");
- sprintf(fd->win_info[COL_INFO], "Unknown ISO protocol (%02x)", pd[offset]);
+ col_add_fstr(fd, COL_INFO, "Unknown ISO protocol (%02x)", pd[offset]);
}
dissect_data(pd, offset, fd, tree);
break;