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.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@14714
f5534014-38df-0310-8fa8-
9805f1628bb7
0,
1,
jxtahdr->size,
- SAT_NONE,
+ SAT_JXTA,
PT_NONE);
register_conversation_table(TRUE, "JXTA", "jxta", NULL /*filter*/, jxta_conversation_packet);
}
-
return "fddi.src";
case SAT_TOKENRING:
return "tr.src";
+ default:
+ ;
}
+ break;
case AT_IPv4:
return "ip.src";
case AT_IPv6:
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:
return "fddi.dst";
case SAT_TOKENRING:
return "tr.dst";
+ default:
+ ;
}
+ break;
case AT_IPv4:
return "ip.dst";
case AT_IPv6:
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:
return "fddi.addr";
case SAT_TOKENRING:
return "tr.addr";
+ default:
+ break;
}
+ break;
case AT_IPv4:
return "ip.addr";
case AT_IPv6:
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:
return "tcp.dstport";
case PT_UDP:
return "udp.dstport";
+ default:
+ ;
}
break;
case FN_ANY_PORT:
return "tcp.port";
case PT_UDP:
return "udp.port";
+ default:
+ ;
}
break;
}
/* 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;
}
#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
return "fddi.addr";
case SAT_TOKENRING:
return "tr.addr";
+ default :
+ ;
}
+ break;
case AT_IPv4:
return "ip.addr";
case AT_IPv6:
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:
;
}
/* sat.h
* 2003 Ronnie Sahlberg
- * Sub-address types for MAC addresses
+ * Sub-address types for MAC/URI addresses
*
* $Id$
*
/** 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__ */