aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-06-20 20:14:22 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-06-20 20:14:22 +0000
commit2ab0496a7204c1bb149bd95bdb0644a565ec5270 (patch)
treeffe63e21c8d8b33b2d6d40bb6c02c448b7b6e885
parent3a6c9ab13448b557586a427bd025bc1ff99ac4cc (diff)
From Mike Duigou:
In order to get filtering of conversations and > endpoints to work from the endpoints and conversations windows I found > it necessary to add a new AT_URI address type and a SAT_JXTA. This also > necessitated a change to to_str.c to avoid a buffer overflow problem. > Please review these changes carefully. > > Also includes some changes to the jxta dissector to fix filtering on > generated fields and some changes to the types used for ints/unsigned ints. > > Fixes a bug with the processing of messages containing namespaces. svn path=/trunk/; revision=14714
-rw-r--r--gtk/conversations_jxta.c3
-rw-r--r--gtk/conversations_table.c42
-rw-r--r--gtk/hostlist_jxta.c4
-rw-r--r--gtk/hostlist_table.c13
-rw-r--r--gtk/sat.h9
5 files changed, 62 insertions, 9 deletions
diff --git a/gtk/conversations_jxta.c b/gtk/conversations_jxta.c
index c8835a73b4..cc550aec51 100644
--- a/gtk/conversations_jxta.c
+++ b/gtk/conversations_jxta.c
@@ -53,7 +53,7 @@ jxta_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_,
0,
1,
jxtahdr->size,
- SAT_NONE,
+ SAT_JXTA,
PT_NONE);
@@ -93,4 +93,3 @@ register_tap_listener_jxta_conversation(void)
register_conversation_table(TRUE, "JXTA", "jxta", NULL /*filter*/, jxta_conversation_packet);
}
-
diff --git a/gtk/conversations_table.c b/gtk/conversations_table.c
index 624ebfbdaa..acf82cf01c 100644
--- a/gtk/conversations_table.c
+++ b/gtk/conversations_table.c
@@ -114,7 +114,10 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "fddi.src";
case SAT_TOKENRING:
return "tr.src";
+ default:
+ ;
}
+ break;
case AT_IPv4:
return "ip.src";
case AT_IPv6:
@@ -123,9 +126,18 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "ipx.src";
case AT_FC:
return "fc.s_id";
+ case AT_URI:
+ switch(specific_addr_type){
+ case SAT_JXTA:
+ return "jxta.message.src";
+ default:
+ ;
+ }
+ break;
default:
;
}
+ break;
case FN_DST_ADDRESS:
switch(addr->type){
case AT_ETHER:
@@ -136,7 +148,10 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "fddi.dst";
case SAT_TOKENRING:
return "tr.dst";
+ default:
+ ;
}
+ break;
case AT_IPv4:
return "ip.dst";
case AT_IPv6:
@@ -145,9 +160,18 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "ipx.dst";
case AT_FC:
return "fc.d_id";
+ case AT_URI:
+ switch(specific_addr_type){
+ case SAT_JXTA:
+ return "jxta.message.dst";
+ default:
+ ;
+ }
+ break;
default:
;
}
+ break;
case FN_ANY_ADDRESS:
switch(addr->type){
case AT_ETHER:
@@ -158,7 +182,10 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "fddi.addr";
case SAT_TOKENRING:
return "tr.addr";
+ default:
+ break;
}
+ break;
case AT_IPv4:
return "ip.addr";
case AT_IPv6:
@@ -167,15 +194,26 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "ipx.addr";
case AT_FC:
return "fc.id";
+ case AT_URI:
+ switch(specific_addr_type){
+ case SAT_JXTA:
+ return "jxta.message.address";
+ default:
+ ;
+ }
+ break;
default:
;
}
+ break;
case FN_SRC_PORT:
switch(port_type){
case PT_TCP:
return "tcp.srcport";
case PT_UDP:
return "udp.srcport";
+ default:
+ ;
}
break;
case FN_DST_PORT:
@@ -184,6 +222,8 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "tcp.dstport";
case PT_UDP:
return "udp.dstport";
+ default:
+ ;
}
break;
case FN_ANY_PORT:
@@ -192,6 +232,8 @@ ct_get_filter_name(address *addr, int specific_addr_type, int port_type, int nam
return "tcp.port";
case PT_UDP:
return "udp.port";
+ default:
+ ;
}
break;
}
diff --git a/gtk/hostlist_jxta.c b/gtk/hostlist_jxta.c
index dd18b24567..10017a36a4 100644
--- a/gtk/hostlist_jxta.c
+++ b/gtk/hostlist_jxta.c
@@ -49,8 +49,8 @@ jxta_hostlist_packet(void *pit, packet_info *pinfo _U_, epan_dissect_t *edt _U_,
/* Take two "add" passes per packet, adding for each direction, ensures that all
packets are counted properly (even if address is sending to itself)
XXX - this could probably be done more efficiently inside hostlist_table */
- add_hostlist_table_data(hosts, &jxtahdr->src_address, 0, TRUE, 1, jxtahdr->size, SAT_NONE, PT_NONE);
- add_hostlist_table_data(hosts, &jxtahdr->dest_address, 0, FALSE, 1, jxtahdr->size, SAT_NONE, PT_NONE);
+ add_hostlist_table_data(hosts, &jxtahdr->src_address, 0, TRUE, 1, jxtahdr->size, SAT_JXTA, PT_NONE);
+ add_hostlist_table_data(hosts, &jxtahdr->dest_address, 0, FALSE, 1, jxtahdr->size, SAT_JXTA, PT_NONE);
return 1;
}
diff --git a/gtk/hostlist_table.c b/gtk/hostlist_table.c
index c47f175637..bcc68ee8f7 100644
--- a/gtk/hostlist_table.c
+++ b/gtk/hostlist_table.c
@@ -86,7 +86,7 @@ hostlist_port_to_str(int port_type, guint32 port)
#define FN_ANY_ADDRESS 0
#define FN_ANY_PORT 1
-/* given an address (to distinguis between ipv4 and ipv6 for tcp/udp
+/* given an address (to distinguish between ipv4 and ipv6 for tcp/udp
a port_type and a name_type (FN_...)
return a string for the filter name
@@ -108,7 +108,10 @@ hostlist_get_filter_name(address *addr, int specific_addr_type, int port_type, i
return "fddi.addr";
case SAT_TOKENRING:
return "tr.addr";
+ default :
+ ;
}
+ break;
case AT_IPv4:
return "ip.addr";
case AT_IPv6:
@@ -117,6 +120,14 @@ hostlist_get_filter_name(address *addr, int specific_addr_type, int port_type, i
return "ipx.addr";
case AT_FC:
return "fc.id";
+ case AT_URI:
+ switch(specific_addr_type){
+ case SAT_JXTA:
+ return "jxta.message.address";
+ default:
+ ;
+ }
+ break;
default:
;
}
diff --git a/gtk/sat.h b/gtk/sat.h
index 5cd108b9e4..6a1043affb 100644
--- a/gtk/sat.h
+++ b/gtk/sat.h
@@ -1,6 +1,6 @@
/* sat.h
* 2003 Ronnie Sahlberg
- * Sub-address types for MAC addresses
+ * Sub-address types for MAC/URI addresses
*
* $Id$
*
@@ -33,9 +33,10 @@
/** Address type */
typedef enum {
SAT_NONE, /**< no address type */
- SAT_ETHER, /**< Ethernet */
- SAT_FDDI, /**< FDDI */
- SAT_TOKENRING /**< Token Ring */
+ SAT_ETHER, /**< MAC : Ethernet */
+ SAT_FDDI, /**< MAC : FDDI */
+ SAT_TOKENRING, /**< MAC : Token Ring */
+ SAT_JXTA /**< URI : JXTA */
} SAT_E;
#endif /* __GTK_SAT_H__ */