Move proto_reg_handoff... to the end of the file.

Whitespace cleanup: remove trailing spaces from a few lines.

svn path=/trunk/; revision=32569
This commit is contained in:
Bill Meier 2010-04-26 22:19:34 +00:00
parent 505f5463b8
commit c7b2d41346
1 changed files with 53 additions and 50 deletions

View File

@ -6,7 +6,7 @@
* Copyright (c) 2001 by David Frascone <dave@frascone.com>
* Copyright (c) 2007 by Luis E. Garcia Ontanon <luis@ontanon.org>
*
* Support for Request-Answer tracking and Tapping
* Support for Request-Answer tracking and Tapping
* introduced by Abhik Sarkar
*
* Wireshark - Network traffic analyzer
@ -758,24 +758,24 @@ dissect_diameter_common(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree)
PROTO_ITEM_SET_GENERATED(iu);
}
hop_by_hop_id = tvb_get_ntohl(tvb, 12);
proto_tree_add_item(diam_tree,hf_diameter_hopbyhopid,tvb,12,4,FALSE);
proto_tree_add_item(diam_tree,hf_diameter_endtoendid,tvb,16,4,FALSE);
/* Conversation tracking stuff */
/*
/*
* FIXME: Looking at epan/conversation.c it seems unlike that this will work properly in
* multi-homed SCTP connections. This will probably need to be fixed at some point.
*/
conversation = find_conversation(pinfo->fd->num,
conversation = find_conversation(pinfo->fd->num,
&pinfo->src, &pinfo->dst,
pinfo->ptype,
pinfo->ptype,
pinfo->srcport, pinfo->destport, 0);
if (conversation == NULL) {
/* We don't yet have a conversation, so create one. */
conversation = conversation_new(pinfo->fd->num,
conversation = conversation_new(pinfo->fd->num,
&pinfo->src, &pinfo->dst,
pinfo->ptype,
pinfo->srcport, pinfo->destport, 0);
@ -843,7 +843,7 @@ dissect_diameter_common(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree)
PROTO_ITEM_SET_GENERATED(it);
nstime_delta(&ns, &pinfo->fd->abs_ts, &diameter_pair->req_time);
diameter_pair->srt_time = ns;
diameter_pair->srt_time = ns;
it = proto_tree_add_time(diam_tree, hf_diameter_answer_time, tvb, 0, 0, &ns);
PROTO_ITEM_SET_GENERATED(it);
/* TODO: Populate result_code in tap record from AVP 268 */
@ -1359,56 +1359,19 @@ dictionary_load(void)
static void
range_delete_callback(guint32 port)
{
dissector_delete("tcp.port", port, diameter_tcp_handle);
dissector_delete("tcp.port", port, diameter_tcp_handle);
}
static void
range_add_callback(guint32 port)
{
dissector_add("tcp.port", port, diameter_tcp_handle);
}
void
proto_reg_handoff_diameter(void)
{
static gboolean Initialized=FALSE;
static guint SctpPort;
static dissector_handle_t diameter_handle;
static range_t *diameter_tcp_port_range;
if (!Initialized) {
diameter_handle = find_dissector("diameter");
diameter_tcp_handle = create_dissector_handle(dissect_diameter_tcp,
proto_diameter);
data_handle = find_dissector("data");
eap_handle = find_dissector("eap");
/* Register special decoding for some AVP:s */
/* AVP Code: 266 Vendor-Id */
dissector_add("diameter.base", 266,
new_create_dissector_handle(dissect_diameter_vedor_id, proto_diameter));
/* AVP Code: 462 EAP-Payload */
dissector_add("diameter.base", 462,
new_create_dissector_handle(dissect_diameter_eap_payload, proto_diameter));
/* AVP Code: 463 EAP-Reissued-Payload */
dissector_add("diameter.base", 463,
new_create_dissector_handle(dissect_diameter_eap_payload, proto_diameter));
Initialized=TRUE;
} else {
range_foreach(diameter_tcp_port_range, range_delete_callback);
g_free(diameter_tcp_port_range);
dissector_delete("sctp.port", SctpPort, diameter_handle);
}
/* set port for future deletes */
diameter_tcp_port_range = range_copy(global_diameter_tcp_port_range);
range_foreach(diameter_tcp_port_range, range_add_callback);
SctpPort=gbl_diameterSctpPort;
dissector_add("sctp.port", gbl_diameterSctpPort, diameter_handle);
dissector_add("tcp.port", port, diameter_tcp_handle);
}
/* registration with the filtering engine */
void proto_reg_handoff_diameter(void);
void
proto_register_diameter(void)
{
@ -1549,7 +1512,7 @@ proto_register_diameter(void)
/* Allow dissector to find be found by name. */
new_register_dissector("diameter", dissect_diameter, proto_diameter);
/* Register dissector table(s) to do sub dissection of AVP:s ( OctetStrings) */
/* Register dissector table(s) to do sub dissection of AVP:s ( OctetStrings) */
diameter_dissector_table = register_dissector_table("diameter.base", "DIAMETER_3GPP_AVPS", FT_UINT32, BASE_DEC);
diameter_3gpp_avp_dissector_table = register_dissector_table("diameter.3gpp", "DIAMETER_3GPP_AVPS", FT_UINT32, BASE_DEC);
@ -1595,3 +1558,43 @@ proto_register_diameter(void)
} /* proto_register_diameter */
void
proto_reg_handoff_diameter(void)
{
static gboolean Initialized=FALSE;
static guint SctpPort;
static dissector_handle_t diameter_handle;
static range_t *diameter_tcp_port_range;
if (!Initialized) {
diameter_handle = find_dissector("diameter");
diameter_tcp_handle = create_dissector_handle(dissect_diameter_tcp,
proto_diameter);
data_handle = find_dissector("data");
eap_handle = find_dissector("eap");
/* Register special decoding for some AVP:s */
/* AVP Code: 266 Vendor-Id */
dissector_add("diameter.base", 266,
new_create_dissector_handle(dissect_diameter_vedor_id, proto_diameter));
/* AVP Code: 462 EAP-Payload */
dissector_add("diameter.base", 462,
new_create_dissector_handle(dissect_diameter_eap_payload, proto_diameter));
/* AVP Code: 463 EAP-Reissued-Payload */
dissector_add("diameter.base", 463,
new_create_dissector_handle(dissect_diameter_eap_payload, proto_diameter));
Initialized=TRUE;
} else {
range_foreach(diameter_tcp_port_range, range_delete_callback);
g_free(diameter_tcp_port_range);
dissector_delete("sctp.port", SctpPort, diameter_handle);
}
/* set port for future deletes */
diameter_tcp_port_range = range_copy(global_diameter_tcp_port_range);
range_foreach(diameter_tcp_port_range, range_add_callback);
SctpPort=gbl_diameterSctpPort;
dissector_add("sctp.port", gbl_diameterSctpPort, diameter_handle);
}