diff options
author | Bill Meier <wmeier@newsguy.com> | 2009-10-12 20:57:01 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2009-10-12 20:57:01 +0000 |
commit | 741bc8368e9f14942a1d900bb70d69adc8fc31d6 (patch) | |
tree | 08aef4e9a85335b9651079d970c42c5fb7eb2acb /epan/dissectors/packet-iax2.c | |
parent | 88a5700e67caebe81dc3ce740c93f176868b5c14 (diff) |
#include <stdio.h> not req'd;
Adjust some spacing.
svn path=/trunk/; revision=30552
Diffstat (limited to 'epan/dissectors/packet-iax2.c')
-rw-r--r-- | epan/dissectors/packet-iax2.c | 747 |
1 files changed, 374 insertions, 373 deletions
diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c index 320124c2ec..222b1f9891 100644 --- a/epan/dissectors/packet-iax2.c +++ b/epan/dissectors/packet-iax2.c @@ -8,7 +8,7 @@ * IAX2 is a VoIP protocol for the open source PBX Asterisk. Please see * http://www.asterisk.org for more information; see * - * http://www.ietf.org/internet-drafts/draft-guy-iax-04.txt + * http://www.ietf.org/internet-drafts/draft-guy-iax-04.txt * * for the current Internet-Draft for IAX2. * @@ -37,8 +37,8 @@ # include "config.h" #endif -#include <stdio.h> #include <string.h> + #include <glib.h> #include <epan/circuit.h> @@ -53,8 +53,8 @@ #include "packet-iax2.h" #include <epan/iax2_codec_type.h> -#define IAX2_PORT 4569 -#define PROTO_TAG_IAX2 "IAX2" +#define IAX2_PORT 4569 +#define PROTO_TAG_IAX2 "IAX2" /* enough to hold any address in an address_t */ #define MAX_ADDRESS 16 @@ -153,8 +153,8 @@ static int hf_IAX_IE_UNKNOWN_BYTES = -1; /* These are the ids of the subtrees that we may be creating */ static gint ett_iax2 = -1; static gint ett_iax2_full_mini_subtree = -1; -static gint ett_iax2_type = -1; /* Frame-type specific subtree */ -static gint ett_iax2_ie = -1; /* single IE */ +static gint ett_iax2_type = -1; /* Frame-type specific subtree */ +static gint ett_iax2_ie = -1; /* single IE */ static gint ett_iax2_codecs = -1; /* capabilities IE */ static gint ett_iax2_ies_apparent_addr = -1; /* apparent address IE */ static gint ett_iax2_fragment = -1; @@ -258,14 +258,14 @@ static const value_string iax_cmd_subclasses[] = { /* IAX2 to tap-voip call state mapping */ static const voip_call_state tap_cmd_voip_state[] = { - VOIP_NO_STATE, - VOIP_COMPLETED, /*HANGUP*/ - VOIP_RINGING, /*RING*/ - VOIP_RINGING, /*RINGING*/ - VOIP_IN_CALL, /*ANSWER*/ - VOIP_REJECTED, /*BUSY*/ - VOIP_UNKNOWN, /*TKOFFHK*/ - VOIP_UNKNOWN /*OFFHOOK*/ + VOIP_NO_STATE, + VOIP_COMPLETED, /*HANGUP*/ + VOIP_RINGING, /*RING*/ + VOIP_RINGING, /*RINGING*/ + VOIP_IN_CALL, /*ANSWER*/ + VOIP_REJECTED, /*BUSY*/ + VOIP_UNKNOWN, /*TKOFFHK*/ + VOIP_UNKNOWN /*OFFHOOK*/ }; @@ -279,141 +279,141 @@ static const value_string iax_modem_subclasses[] = { /* Information elements */ static const value_string iax_ies_type[] = { - {IAX_IE_CALLED_NUMBER, "Number/extension being called"}, - {IAX_IE_CALLING_NUMBER, "Calling number"}, - {IAX_IE_CALLING_ANI, "Calling number ANI for billing"}, - {IAX_IE_CALLING_NAME, "Name of caller"}, - {IAX_IE_CALLED_CONTEXT, "Context for number"}, - {IAX_IE_USERNAME, "Username (peer or user) for authentication"}, - {IAX_IE_PASSWORD, "Password for authentication"}, - {IAX_IE_CAPABILITY, "Actual codec capability"}, - {IAX_IE_FORMAT, "Desired codec format"}, - {IAX_IE_LANGUAGE, "Desired language"}, - {IAX_IE_VERSION, "Protocol version"}, - {IAX_IE_ADSICPE, "CPE ADSI capability"}, - {IAX_IE_DNID, "Originally dialed DNID"}, - {IAX_IE_AUTHMETHODS, "Authentication method(s)"}, - {IAX_IE_CHALLENGE, "Challenge data for MD5/RSA"}, - {IAX_IE_MD5_RESULT, "MD5 challenge result"}, - {IAX_IE_RSA_RESULT, "RSA challenge result"}, - {IAX_IE_APPARENT_ADDR, "Apparent address of peer"}, - {IAX_IE_REFRESH, "When to refresh registration"}, - {IAX_IE_DPSTATUS, "Dialplan status"}, - {IAX_IE_CALLNO, "Call number of peer"}, - {IAX_IE_CAUSE, "Cause"}, - {IAX_IE_IAX_UNKNOWN, "Unknown IAX command"}, - {IAX_IE_MSGCOUNT, "How many messages waiting"}, - {IAX_IE_AUTOANSWER, "Request auto-answering"}, - {IAX_IE_MUSICONHOLD, "Request musiconhold with QUELCH"}, - {IAX_IE_TRANSFERID, "Transfer Request Identifier"}, - {IAX_IE_RDNIS, "Referring DNIS"}, - {IAX_IE_PROVISIONING, "Provisioning info"}, - {IAX_IE_AESPROVISIONING, "AES Provisioning info"}, - {IAX_IE_DATETIME,"Date/Time"}, - {IAX_IE_DEVICETYPE, "Device type"}, - {IAX_IE_SERVICEIDENT, "Service Identifier"}, - {IAX_IE_FIRMWAREVER, "Firmware revision"}, - {IAX_IE_FWBLOCKDESC, "Firmware block description"}, - {IAX_IE_FWBLOCKDATA, "Firmware block of data"}, - {IAX_IE_PROVVER, "Provisioning version"}, - {IAX_IE_CALLINGPRES, "Calling presentation"}, - {IAX_IE_CALLINGTON, "Calling type of number"}, - {IAX_IE_CALLINGTNS, "Calling transit network select"}, - {IAX_IE_SAMPLINGRATE, "Supported sampling rates"}, - {IAX_IE_CAUSECODE, "Hangup cause"}, - {IAX_IE_ENCRYPTION, "Encryption format"}, - {IAX_IE_ENCKEY, "Raw encryption key"}, - {IAX_IE_CODEC_PREFS, "Codec preferences"}, - {IAX_IE_RR_JITTER, "Received jitter"}, - {IAX_IE_RR_LOSS, "Received loss"}, - {IAX_IE_RR_PKTS, "Received frames"}, - {IAX_IE_RR_DELAY, "Max playout delay in ms for received frames"}, - {IAX_IE_RR_DROPPED, "Dropped frames"}, - {IAX_IE_RR_OOO, "Frames received out of order"}, - {IAX_IE_DATAFORMAT, "Data call format"}, + {IAX_IE_CALLED_NUMBER, "Number/extension being called"}, + {IAX_IE_CALLING_NUMBER, "Calling number"}, + {IAX_IE_CALLING_ANI, "Calling number ANI for billing"}, + {IAX_IE_CALLING_NAME, "Name of caller"}, + {IAX_IE_CALLED_CONTEXT, "Context for number"}, + {IAX_IE_USERNAME, "Username (peer or user) for authentication"}, + {IAX_IE_PASSWORD, "Password for authentication"}, + {IAX_IE_CAPABILITY, "Actual codec capability"}, + {IAX_IE_FORMAT, "Desired codec format"}, + {IAX_IE_LANGUAGE, "Desired language"}, + {IAX_IE_VERSION, "Protocol version"}, + {IAX_IE_ADSICPE, "CPE ADSI capability"}, + {IAX_IE_DNID, "Originally dialed DNID"}, + {IAX_IE_AUTHMETHODS, "Authentication method(s)"}, + {IAX_IE_CHALLENGE, "Challenge data for MD5/RSA"}, + {IAX_IE_MD5_RESULT, "MD5 challenge result"}, + {IAX_IE_RSA_RESULT, "RSA challenge result"}, + {IAX_IE_APPARENT_ADDR, "Apparent address of peer"}, + {IAX_IE_REFRESH, "When to refresh registration"}, + {IAX_IE_DPSTATUS, "Dialplan status"}, + {IAX_IE_CALLNO, "Call number of peer"}, + {IAX_IE_CAUSE, "Cause"}, + {IAX_IE_IAX_UNKNOWN, "Unknown IAX command"}, + {IAX_IE_MSGCOUNT, "How many messages waiting"}, + {IAX_IE_AUTOANSWER, "Request auto-answering"}, + {IAX_IE_MUSICONHOLD, "Request musiconhold with QUELCH"}, + {IAX_IE_TRANSFERID, "Transfer Request Identifier"}, + {IAX_IE_RDNIS, "Referring DNIS"}, + {IAX_IE_PROVISIONING, "Provisioning info"}, + {IAX_IE_AESPROVISIONING, "AES Provisioning info"}, + {IAX_IE_DATETIME, "Date/Time"}, + {IAX_IE_DEVICETYPE, "Device type"}, + {IAX_IE_SERVICEIDENT, "Service Identifier"}, + {IAX_IE_FIRMWAREVER, "Firmware revision"}, + {IAX_IE_FWBLOCKDESC, "Firmware block description"}, + {IAX_IE_FWBLOCKDATA, "Firmware block of data"}, + {IAX_IE_PROVVER, "Provisioning version"}, + {IAX_IE_CALLINGPRES, "Calling presentation"}, + {IAX_IE_CALLINGTON, "Calling type of number"}, + {IAX_IE_CALLINGTNS, "Calling transit network select"}, + {IAX_IE_SAMPLINGRATE, "Supported sampling rates"}, + {IAX_IE_CAUSECODE, "Hangup cause"}, + {IAX_IE_ENCRYPTION, "Encryption format"}, + {IAX_IE_ENCKEY, "Raw encryption key"}, + {IAX_IE_CODEC_PREFS, "Codec preferences"}, + {IAX_IE_RR_JITTER, "Received jitter"}, + {IAX_IE_RR_LOSS, "Received loss"}, + {IAX_IE_RR_PKTS, "Received frames"}, + {IAX_IE_RR_DELAY, "Max playout delay in ms for received frames"}, + {IAX_IE_RR_DROPPED, "Dropped frames"}, + {IAX_IE_RR_OOO, "Frames received out of order"}, + {IAX_IE_DATAFORMAT, "Data call format"}, {0,NULL} }; static const value_string codec_types[] = { - {AST_FORMAT_G723_1, "G.723.1 compression"}, - {AST_FORMAT_GSM, "GSM compression"}, - {AST_FORMAT_ULAW, "Raw mu-law data (G.711)"}, - {AST_FORMAT_ALAW, "Raw A-law data (G.711)"}, - {AST_FORMAT_G726, "ADPCM (G.726, 32kbps)"}, - {AST_FORMAT_ADPCM, "ADPCM (IMA)"}, - {AST_FORMAT_SLINEAR, "Raw 16-bit Signed Linear (8000 Hz) PCM"}, - {AST_FORMAT_LPC10, "LPC10, 180 samples/frame"}, - {AST_FORMAT_G729A, "G.729a Audio"}, - {AST_FORMAT_SPEEX, "SpeeX Free Compression"}, - {AST_FORMAT_ILBC, "iLBC Free Compression"}, - {AST_FORMAT_JPEG, "JPEG Images"}, - {AST_FORMAT_PNG, "PNG Images"}, - {AST_FORMAT_H261, "H.261 Video"}, - {AST_FORMAT_H263, "H.263 Video"}, + {AST_FORMAT_G723_1, "G.723.1 compression"}, + {AST_FORMAT_GSM, "GSM compression"}, + {AST_FORMAT_ULAW, "Raw mu-law data (G.711)"}, + {AST_FORMAT_ALAW, "Raw A-law data (G.711)"}, + {AST_FORMAT_G726, "ADPCM (G.726, 32kbps)"}, + {AST_FORMAT_ADPCM, "ADPCM (IMA)"}, + {AST_FORMAT_SLINEAR, "Raw 16-bit Signed Linear (8000 Hz) PCM"}, + {AST_FORMAT_LPC10, "LPC10, 180 samples/frame"}, + {AST_FORMAT_G729A, "G.729a Audio"}, + {AST_FORMAT_SPEEX, "SpeeX Free Compression"}, + {AST_FORMAT_ILBC, "iLBC Free Compression"}, + {AST_FORMAT_JPEG, "JPEG Images"}, + {AST_FORMAT_PNG, "PNG Images"}, + {AST_FORMAT_H261, "H.261 Video"}, + {AST_FORMAT_H263, "H.263 Video"}, {0,NULL} }; static const value_string iax_dataformats[] = { - {AST_DATAFORMAT_NULL, "N/A (analogue call?)"}, - {AST_DATAFORMAT_V110, "ITU-T V.110 rate adaption"}, + {AST_DATAFORMAT_NULL, "N/A (analogue call?)"}, + {AST_DATAFORMAT_V110, "ITU-T V.110 rate adaption"}, {AST_DATAFORMAT_H223_H245,"ITU-T H.223/H.245"}, {0,NULL} }; static const value_string iax_packet_types[] = { - {IAX2_FULL_PACKET, "Full packet"}, + {IAX2_FULL_PACKET, "Full packet"}, {IAX2_MINI_VOICE_PACKET, "Mini voice packet"}, {IAX2_MINI_VIDEO_PACKET, "Mini video packet"}, - {IAX2_META_PACKET, "Meta packet"}, + {IAX2_META_PACKET, "Meta packet"}, {0,NULL} }; static const value_string iax_causecodes[] = { - {AST_CAUSE_UNALLOCATED, "Unallocated"}, - {AST_CAUSE_NO_ROUTE_TRANSIT_NET, "No route transit net"}, - {AST_CAUSE_NO_ROUTE_DESTINATION, "No route to destination"}, - {AST_CAUSE_CHANNEL_UNACCEPTABLE, "Channel unacceptable"}, - {AST_CAUSE_CALL_AWARDED_DELIVERED, "Call awarded delivered"}, - {AST_CAUSE_NORMAL_CLEARING, "Normal clearing"}, - {AST_CAUSE_USER_BUSY, "User busy"}, - {AST_CAUSE_NO_USER_RESPONSE, "No user response"}, - {AST_CAUSE_NO_ANSWER, "No answer"}, - {AST_CAUSE_CALL_REJECTED, "Call rejected"}, - {AST_CAUSE_NUMBER_CHANGED, "Number changed"}, - {AST_CAUSE_DESTINATION_OUT_OF_ORDER, "Destination out of order"}, - {AST_CAUSE_INVALID_NUMBER_FORMAT, "Invalid number format"}, - {AST_CAUSE_FACILITY_REJECTED, "Facility rejected"}, - {AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY, "Response to status inquiry"}, - {AST_CAUSE_NORMAL_UNSPECIFIED, "Normal unspecified"}, - {AST_CAUSE_NORMAL_CIRCUIT_CONGESTION, "Normal circuit congestion"}, - {AST_CAUSE_NETWORK_OUT_OF_ORDER, "Network out of order"}, - {AST_CAUSE_NORMAL_TEMPORARY_FAILURE, "Normal temporary failure"}, - {AST_CAUSE_SWITCH_CONGESTION, "Switch congestion"}, - {AST_CAUSE_ACCESS_INFO_DISCARDED, "Access info discarded"}, - {AST_CAUSE_REQUESTED_CHAN_UNAVAIL, "Requested channel unavailable"}, - {AST_CAUSE_PRE_EMPTED, "Preempted"}, - {AST_CAUSE_FACILITY_NOT_SUBSCRIBED, "Facility not subscribed"}, - {AST_CAUSE_OUTGOING_CALL_BARRED, "Outgoing call barred"}, - {AST_CAUSE_INCOMING_CALL_BARRED, "Incoming call barred"}, - {AST_CAUSE_BEARERCAPABILITY_NOTAUTH, "Bearer capability not authorized"}, - {AST_CAUSE_BEARERCAPABILITY_NOTAVAIL, "Bearer capability not available"}, - {AST_CAUSE_BEARERCAPABILITY_NOTIMPL, "Bearer capability not implemented"}, - {AST_CAUSE_CHAN_NOT_IMPLEMENTED, "Channel not implemented"}, - {AST_CAUSE_FACILITY_NOT_IMPLEMENTED, "Facility not implemented"}, - {AST_CAUSE_INVALID_CALL_REFERENCE, "Invalid call reference"}, - {AST_CAUSE_INCOMPATIBLE_DESTINATION, "Incompatible destination"}, - {AST_CAUSE_INVALID_MSG_UNSPECIFIED, "Invalid message unspecified"}, - {AST_CAUSE_MANDATORY_IE_MISSING, "Mandatory IE missing"}, - {AST_CAUSE_MESSAGE_TYPE_NONEXIST, "Message type nonexistent"}, - {AST_CAUSE_WRONG_MESSAGE, "Wrong message"}, - {AST_CAUSE_IE_NONEXIST, "IE nonexistent"}, - {AST_CAUSE_INVALID_IE_CONTENTS, "Invalid IE contents"}, - {AST_CAUSE_WRONG_CALL_STATE, "Wrong call state"}, - {AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE, "Recovery on timer expire"}, - {AST_CAUSE_MANDATORY_IE_LENGTH_ERROR, "Mandatory IE length error"}, - {AST_CAUSE_PROTOCOL_ERROR, "Protocol error"}, - {AST_CAUSE_INTERWORKING, "Interworking"}, + {AST_CAUSE_UNALLOCATED, "Unallocated"}, + {AST_CAUSE_NO_ROUTE_TRANSIT_NET, "No route transit net"}, + {AST_CAUSE_NO_ROUTE_DESTINATION, "No route to destination"}, + {AST_CAUSE_CHANNEL_UNACCEPTABLE, "Channel unacceptable"}, + {AST_CAUSE_CALL_AWARDED_DELIVERED, "Call awarded delivered"}, + {AST_CAUSE_NORMAL_CLEARING, "Normal clearing"}, + {AST_CAUSE_USER_BUSY, "User busy"}, + {AST_CAUSE_NO_USER_RESPONSE, "No user response"}, + {AST_CAUSE_NO_ANSWER, "No answer"}, + {AST_CAUSE_CALL_REJECTED, "Call rejected"}, + {AST_CAUSE_NUMBER_CHANGED, "Number changed"}, + {AST_CAUSE_DESTINATION_OUT_OF_ORDER, "Destination out of order"}, + {AST_CAUSE_INVALID_NUMBER_FORMAT, "Invalid number format"}, + {AST_CAUSE_FACILITY_REJECTED, "Facility rejected"}, + {AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY, "Response to status inquiry"}, + {AST_CAUSE_NORMAL_UNSPECIFIED, "Normal unspecified"}, + {AST_CAUSE_NORMAL_CIRCUIT_CONGESTION, "Normal circuit congestion"}, + {AST_CAUSE_NETWORK_OUT_OF_ORDER, "Network out of order"}, + {AST_CAUSE_NORMAL_TEMPORARY_FAILURE, "Normal temporary failure"}, + {AST_CAUSE_SWITCH_CONGESTION, "Switch congestion"}, + {AST_CAUSE_ACCESS_INFO_DISCARDED, "Access info discarded"}, + {AST_CAUSE_REQUESTED_CHAN_UNAVAIL, "Requested channel unavailable"}, + {AST_CAUSE_PRE_EMPTED, "Preempted"}, + {AST_CAUSE_FACILITY_NOT_SUBSCRIBED, "Facility not subscribed"}, + {AST_CAUSE_OUTGOING_CALL_BARRED, "Outgoing call barred"}, + {AST_CAUSE_INCOMING_CALL_BARRED, "Incoming call barred"}, + {AST_CAUSE_BEARERCAPABILITY_NOTAUTH, "Bearer capability not authorized"}, + {AST_CAUSE_BEARERCAPABILITY_NOTAVAIL, "Bearer capability not available"}, + {AST_CAUSE_BEARERCAPABILITY_NOTIMPL, "Bearer capability not implemented"}, + {AST_CAUSE_CHAN_NOT_IMPLEMENTED, "Channel not implemented"}, + {AST_CAUSE_FACILITY_NOT_IMPLEMENTED, "Facility not implemented"}, + {AST_CAUSE_INVALID_CALL_REFERENCE, "Invalid call reference"}, + {AST_CAUSE_INCOMPATIBLE_DESTINATION, "Incompatible destination"}, + {AST_CAUSE_INVALID_MSG_UNSPECIFIED, "Invalid message unspecified"}, + {AST_CAUSE_MANDATORY_IE_MISSING, "Mandatory IE missing"}, + {AST_CAUSE_MESSAGE_TYPE_NONEXIST, "Message type nonexistent"}, + {AST_CAUSE_WRONG_MESSAGE, "Wrong message"}, + {AST_CAUSE_IE_NONEXIST, "IE nonexistent"}, + {AST_CAUSE_INVALID_IE_CONTENTS, "Invalid IE contents"}, + {AST_CAUSE_WRONG_CALL_STATE, "Wrong call state"}, + {AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE, "Recovery on timer expire"}, + {AST_CAUSE_MANDATORY_IE_LENGTH_ERROR, "Mandatory IE length error"}, + {AST_CAUSE_PROTOCOL_ERROR, "Protocol error"}, + {AST_CAUSE_INTERWORKING, "Interworking"}, {0, NULL} }; @@ -480,9 +480,9 @@ static gchar *key_to_str( const iax_circuit_key *key ) /* XXX - is this a case for ep_alloc? */ g_snprintf(strp, 80, "{%s:%i,%i}", - ep_address_to_str((address *)&key->addr), - key->port, - key->callno); + ep_address_to_str((address *)&key->addr), + key->port, + key->callno); return strp; } #endif @@ -495,9 +495,9 @@ static gint iax_circuit_equal(gconstpointer v, gconstpointer w) gint result; result = ( ADDRESSES_EQUAL(&(v1->addr), &(v2->addr)) && - v1->ptype == v2->ptype && - v1->port == v2->port && - v1->callno== v2->callno); + v1->ptype == v2->ptype && + v1->port == v2->port && + v1->callno== v2->callno); #ifdef DEBUG_HASHING g_debug( "+++ Comparing for equality: %s, %s: %u",key_to_str(v1), key_to_str(v2), result); #endif @@ -527,9 +527,9 @@ static guint iax_circuit_hash (gconstpointer v) {address,porttype,port,call} quadruplet */ static guint iax_circuit_lookup(const address *address_p, - port_type ptype, - guint32 port, - guint32 callno) + port_type ptype, + guint32 port, + guint32 callno) { iax_circuit_key key; guint32 *circuit_id_p; @@ -636,7 +636,7 @@ static void iax_init_hash( void ) * */ static circuit_t *iax2_new_circuit_for_call(guint circuit_id, guint framenum, iax_call_data *iax_call, - gboolean reversed) + gboolean reversed) { circuit_t *res; @@ -665,7 +665,7 @@ static circuit_t *iax2_new_circuit_for_call(guint circuit_id, guint framenum, ia * is the point which _sent_ the original 'NEW' packet, or a point to which that * end was subsequently transferred */ static gboolean is_forward_circuit(guint circuit_id, - const iax_call_data *iax_call) + const iax_call_data *iax_call) { guint i; for(i=0;i<iax_call->n_forward_circuit_ids;i++){ @@ -679,7 +679,7 @@ static gboolean is_forward_circuit(guint circuit_id, * is the point which _received_ the original 'NEW' packet, or a point to which that * end was subsequently transferred */ static gboolean is_reverse_circuit(guint circuit_id, - const iax_call_data *iax_call) + const iax_call_data *iax_call) { guint i; for(i=0;i<iax_call->n_reverse_circuit_ids;i++){ @@ -700,8 +700,8 @@ static iax_call_data *iax_lookup_call_from_dest( guint src_circuit_id, gboolean reversed = FALSE; dst_circuit = find_circuit( CT_IAX2, - dst_circuit_id, - framenum ); + dst_circuit_id, + framenum ); if( !dst_circuit ) { #ifdef DEBUG_HASHING @@ -725,18 +725,18 @@ static iax_call_data *iax_lookup_call_from_dest( guint src_circuit_id, if( is_forward_circuit(dst_circuit_id, iax_call )) { #ifdef DEBUG_HASHING g_debug( "++ destination circuit matches forward_circuit_id of call, " - "therefore packet is reversed" ); + "therefore packet is reversed" ); #endif reversed = TRUE; if( iax_call -> n_reverse_circuit_ids == 0 ) { /* we are going in the reverse direction, and this call - doesn't have a reverse circuit associated with it. - create one now. */ + doesn't have a reverse circuit associated with it. + create one now. */ #ifdef DEBUG_HASHING g_debug( "++ reverse_circuit_id of call is zero, need to create a " - "new reverse circuit for this call" ); + "new reverse circuit for this call" ); #endif iax2_new_circuit_for_call( src_circuit_id, framenum, iax_call, TRUE ); @@ -745,27 +745,27 @@ static iax_call_data *iax_lookup_call_from_dest( guint src_circuit_id, #endif } else if( !is_reverse_circuit(src_circuit_id, iax_call )) { g_warning( "IAX Packet %u from circuit ids %u->%u " - "conflicts with earlier call with circuit ids %u->%u", - framenum, - src_circuit_id,dst_circuit_id, - iax_call->forward_circuit_ids[0], - iax_call->reverse_circuit_ids[0]); + "conflicts with earlier call with circuit ids %u->%u", + framenum, + src_circuit_id,dst_circuit_id, + iax_call->forward_circuit_ids[0], + iax_call->reverse_circuit_ids[0]); return NULL; } } else if ( is_reverse_circuit(dst_circuit_id, iax_call)) { #ifdef DEBUG_HASHING g_debug( "++ destination circuit matches reverse_circuit_id of call, " - "therefore packet is forward" ); + "therefore packet is forward" ); #endif reversed = FALSE; if( !is_forward_circuit(src_circuit_id, iax_call)) { g_warning( "IAX Packet %u from circuit ids %u->%u " - "conflicts with earlier call with circuit ids %u->%u", - framenum, - src_circuit_id,dst_circuit_id, - iax_call->forward_circuit_ids[0], - iax_call->reverse_circuit_ids[0]); + "conflicts with earlier call with circuit ids %u->%u", + framenum, + src_circuit_id,dst_circuit_id, + iax_call->forward_circuit_ids[0], + iax_call->reverse_circuit_ids[0]); if( reversed_p ) *reversed_p = FALSE; return NULL; @@ -793,14 +793,14 @@ static iax_call_data *iax_lookup_call( packet_info *pinfo, #ifdef DEBUG_HASHING g_debug( "++ iax_lookup_circuit_details: Looking up circuit for frame %u, " - "from {%s:%u:%u} to {%s:%u:%u}", pinfo->fd->num, - ep_address_to_str(&pinfo->src),pinfo->srcport,scallno, - ep_address_to_str(&pinfo->dst),pinfo->destport,dcallno); + "from {%s:%u:%u} to {%s:%u:%u}", pinfo->fd->num, + ep_address_to_str(&pinfo->src),pinfo->srcport,scallno, + ep_address_to_str(&pinfo->dst),pinfo->destport,dcallno); #endif src_circuit_id = iax_circuit_lookup(&pinfo->src,pinfo->ptype, - pinfo->srcport,scallno); + pinfo->srcport,scallno); /* the most reliable indicator of call is the destination callno, if @@ -812,7 +812,7 @@ static iax_call_data *iax_lookup_call( packet_info *pinfo, #endif dst_circuit_id = iax_circuit_lookup(&pinfo->dst,pinfo->ptype, - pinfo->destport,dcallno); + pinfo->destport,dcallno); iax_call = iax_lookup_call_from_dest(src_circuit_id, dst_circuit_id, pinfo->fd->num, &reversed); @@ -825,26 +825,26 @@ static iax_call_data *iax_lookup_call( packet_info *pinfo, */ src_circuit = find_circuit( CT_IAX2, - src_circuit_id, - pinfo->fd->num ); + src_circuit_id, + pinfo->fd->num ); if( src_circuit ) { iax_call = (iax_call_data *)circuit_get_proto_data(src_circuit,proto_iax2); /* there's no way we can create a CT_IAX2 circuit without adding - iax call data to it; assert this */ + iax call data to it; assert this */ DISSECTOR_ASSERT(iax_call); if( is_forward_circuit(src_circuit_id,iax_call)) - reversed = FALSE; + reversed = FALSE; else if(is_reverse_circuit(src_circuit_id,iax_call)) - reversed = TRUE; + reversed = TRUE; else { - /* there's also no way we can attach an iax_call_data to a circuit - without the circuit being either the forward or reverse circuit - for that call; assert this too. - */ - DISSECTOR_ASSERT_NOT_REACHED(); + /* there's also no way we can attach an iax_call_data to a circuit + without the circuit being either the forward or reverse circuit + for that call; assert this too. + */ + DISSECTOR_ASSERT_NOT_REACHED(); } } } @@ -914,8 +914,8 @@ static iax_call_data *iax_new_call( packet_info *pinfo, /* per-packet data */ typedef struct iax_packet_data { gboolean first_time; /* we're dissecting this packet for the first time; so - things like codec and transfer requests should be - propogated into the call data */ + things like codec and transfer requests should be + propogated into the call data */ iax_call_data *call_data; guint32 codec; gboolean reversed; @@ -968,28 +968,28 @@ typedef struct static guint32 dissect_fullpacket (tvbuff_t * tvb, guint32 offset, - guint16 scallno, - packet_info * pinfo, - proto_tree * iax2_tree, - proto_tree * main_tree); + guint16 scallno, + packet_info * pinfo, + proto_tree * iax2_tree, + proto_tree * main_tree); static guint32 dissect_minipacket (tvbuff_t * tvb, guint32 offset, - guint16 scallno, - packet_info * pinfo, - proto_tree * iax2_tree, - proto_tree * main_tree); + guint16 scallno, + packet_info * pinfo, + proto_tree * iax2_tree, + proto_tree * main_tree); static guint32 dissect_minivideopacket (tvbuff_t * tvb, guint32 offset, - guint16 scallno, - packet_info * pinfo, - proto_tree * iax2_tree, - proto_tree * main_tree); + guint16 scallno, + packet_info * pinfo, + proto_tree * iax2_tree, + proto_tree * main_tree); static void dissect_payload(tvbuff_t *tvb, guint32 offset, - packet_info *pinfo, proto_tree *iax2_tree, - proto_tree *tree, guint32 ts, gboolean video, - iax_packet_data *iax_packet); + packet_info *pinfo, proto_tree *iax2_tree, + proto_tree *tree, guint32 ts, gboolean video, + iax_packet_data *iax_packet); @@ -1122,8 +1122,8 @@ static proto_item *dissect_datetime_ie(tvbuff_t *tvb, guint32 offset, proto_tree /* dissect the information elements in an IAX frame. Returns the updated offset */ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, - proto_tree * iax_tree, - iax2_ie_data *ie_data) + proto_tree * iax_tree, + iax2_ie_data *ie_data) { DISSECTOR_ASSERT(ie_data); @@ -1188,16 +1188,16 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, ies_tree = proto_item_add_subtree(ti, ett_iax2_ie); proto_tree_add_text(ies_tree, tvb, offset, 1, "IE id: %s (0x%02X)", - val_to_str(ies_type, iax_ies_type, "Unknown"), - ies_type); + val_to_str(ies_type, iax_ies_type, "Unknown"), + ies_type); proto_tree_add_text(ies_tree, tvb, offset+1, 1, "Length: %u",ies_len); /* hf_iax2_ies[] is an array, indexed by IE number, of header-fields, one - per IE. Apart from a couple of special cases which require more - complex decoding, we can just look up an entry from the array, and add - the relevant item. + per IE. Apart from a couple of special cases which require more + complex decoding, we can just look up an entry from the array, and add + the relevant item. */ switch (ies_type) { @@ -1206,42 +1206,42 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, break; - case IAX_IE_CAPABILITY: - { - proto_tree *codec_tree; + case IAX_IE_CAPABILITY: + { + proto_tree *codec_tree; if (ies_len != 4) THROW(ReportedBoundsError); - ie_item = - proto_tree_add_item (ies_tree, ie_hf, - tvb, offset + 2, ies_len, FALSE); - codec_tree = - proto_item_add_subtree (ie_item, ett_iax2_codecs); - - proto_tree_add_item(codec_tree, hf_iax2_cap_g723_1, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_gsm, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_ulaw, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_alaw, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_g726, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_adpcm, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_slinear, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_lpc10, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_g729a, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_speex, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_ilbc, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_jpeg, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_png, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_h261, tvb, offset + 2, ies_len, FALSE ); - proto_tree_add_item(codec_tree, hf_iax2_cap_h263, tvb, offset + 2, ies_len, FALSE ); - break; - } - - case IAX_IE_APPARENT_ADDR: - { - proto_tree *sockaddr_tree = NULL; - - ie_item = proto_tree_add_text(ies_tree, tvb, offset + 2, 16, "Apparent Address"); - sockaddr_tree = proto_item_add_subtree(ie_item, ett_iax2_ies_apparent_addr); + ie_item = + proto_tree_add_item (ies_tree, ie_hf, + tvb, offset + 2, ies_len, FALSE); + codec_tree = + proto_item_add_subtree (ie_item, ett_iax2_codecs); + + proto_tree_add_item(codec_tree, hf_iax2_cap_g723_1, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_gsm, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_ulaw, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_alaw, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_g726, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_adpcm, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_slinear, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_lpc10, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_g729a, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_speex, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_ilbc, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_jpeg, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_png, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_h261, tvb, offset + 2, ies_len, FALSE ); + proto_tree_add_item(codec_tree, hf_iax2_cap_h263, tvb, offset + 2, ies_len, FALSE ); + break; + } + + case IAX_IE_APPARENT_ADDR: + { + proto_tree *sockaddr_tree = NULL; + + ie_item = proto_tree_add_text(ies_tree, tvb, offset + 2, 16, "Apparent Address"); + sockaddr_tree = proto_item_add_subtree(ie_item, ett_iax2_ies_apparent_addr); /* The IAX2 I-D says that the "apparent address" structure "is the same as the linux struct sockaddr_in", without @@ -1252,30 +1252,30 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, This means the address family values are the Linux address family values. */ - apparent_addr_family = tvb_get_letohs(tvb, offset+2); - proto_tree_add_uint(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINFAMILY, tvb, offset + 2, 2, apparent_addr_family); - - switch( apparent_addr_family ) { - case LINUX_AF_INET: - { - guint32 addr; - proto_tree_add_uint(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINPORT, tvb, offset + 4, 2, ie_data->peer_port); - memcpy(&addr, ie_data->peer_address.data, 4); - proto_tree_add_ipv4(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINADDR, tvb, offset + 6, 4, addr); - break; - } - } - break; - } - - default: - if( ie_hf != -1 ) { + apparent_addr_family = tvb_get_letohs(tvb, offset+2); + proto_tree_add_uint(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINFAMILY, tvb, offset + 2, 2, apparent_addr_family); + + switch( apparent_addr_family ) { + case LINUX_AF_INET: + { + guint32 addr; + proto_tree_add_uint(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINPORT, tvb, offset + 4, 2, ie_data->peer_port); + memcpy(&addr, ie_data->peer_address.data, 4); + proto_tree_add_ipv4(sockaddr_tree, hf_IAX_IE_APPARENTADDR_SINADDR, tvb, offset + 6, 4, addr); + break; + } + } + break; + } + + default: + if( ie_hf != -1 ) { /* throw an error if the IE isn't the expected length */ gint explen = ftype_length(proto_registrar_get_nth(ie_hf)->type); if(explen != 0 && ies_len != explen) THROW(ReportedBoundsError); - ie_item = proto_tree_add_item(ies_tree, ie_hf, tvb, offset + 2, ies_len, FALSE); - } else { + ie_item = proto_tree_add_item(ies_tree, ie_hf, tvb, offset + 2, ies_len, FALSE); + } else { /* we don't understand this ie: add a generic one */ guint32 value; const guint8 *ptr; @@ -1314,8 +1314,8 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, "%s: %s", ie_name, ptr ); break; } - } - break; + } + break; } /* by now, we *really* ought to have added an item */ @@ -1324,21 +1324,21 @@ static guint32 dissect_ies (tvbuff_t * tvb, guint32 offset, /* Retrieve the text from the item we added, and append it to the main IE * item */ if(!PROTO_ITEM_IS_HIDDEN(ti)) { - field_info *ie_finfo = PITEM_FINFO(ie_item); - - /* if the representation of the item has already been set, use that; - else we have to allocate a block to put the text into */ - if( ie_finfo && ie_finfo->rep != NULL ) - proto_item_set_text(ti, "Information Element: %s", - ie_finfo->rep->representation); - else { + field_info *ie_finfo = PITEM_FINFO(ie_item); + + /* if the representation of the item has already been set, use that; + else we have to allocate a block to put the text into */ + if( ie_finfo && ie_finfo->rep != NULL ) + proto_item_set_text(ti, "Information Element: %s", + ie_finfo->rep->representation); + else { guint8 *ie_val = NULL; - ie_val = g_malloc(ITEM_LABEL_LENGTH); - proto_item_fill_label(ie_finfo, ie_val); - proto_item_set_text(ti, "Information Element: %s", - ie_val); - g_free(ie_val); - } + ie_val = g_malloc(ITEM_LABEL_LENGTH); + proto_item_fill_label(ie_finfo, ie_val); + proto_item_set_text(ti, "Information Element: %s", + ie_val); + g_free(ie_val); + } } } @@ -1363,8 +1363,8 @@ static guint32 uncompress_subclass(guint8 csub) /* returns the new offset */ static guint32 dissect_iax2_command(tvbuff_t * tvb, guint32 offset, - packet_info * pinfo, proto_tree *tree, - iax_packet_data *iax_packet) + packet_info * pinfo, proto_tree *tree, + iax_packet_data *iax_packet) { guint8 csub = tvb_get_guint8(tvb, offset); guint8 address_data[MAX_ADDRESS]; @@ -1386,7 +1386,7 @@ static guint32 dissect_iax2_command(tvbuff_t * tvb, guint32 offset, if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " %s", - val_to_str (csub, iax_iax_subclasses, "unknown (0x%02x)")); + val_to_str (csub, iax_iax_subclasses, "unknown (0x%02x)")); if (offset >= tvb_reported_length (tvb)) return offset; @@ -1403,15 +1403,15 @@ static guint32 dissect_iax2_command(tvbuff_t * tvb, guint32 offset, if( csub == IAX_COMMAND_TXREQ && iax_packet -> first_time ) { if( ie_data.peer_address.type != AT_NONE && ie_data.peer_callno != 0 ) { guint tx_circuit = iax_circuit_lookup(&ie_data.peer_address, - ie_data.peer_ptype, - ie_data.peer_port, - ie_data.peer_callno); + ie_data.peer_ptype, + ie_data.peer_port, + ie_data.peer_callno); #if 0 g_debug("found transfer request for call %u->%u, to new id %u", - iax_call->forward_circuit_ids[0], - iax_call->reverse_circuit_ids[0], - tx_circuit); + iax_call->forward_circuit_ids[0], + iax_call->reverse_circuit_ids[0], + tx_circuit); #endif iax2_new_circuit_for_call(tx_circuit,pinfo->fd->num,iax_call,iax_packet->reversed); @@ -1467,9 +1467,9 @@ static void iax2_add_ts_fields(packet_info * pinfo, proto_tree * iax2_tree, iax_ /* returns the new offset */ static guint32 dissect_fullpacket (tvbuff_t * tvb, guint32 offset, - guint16 scallno, - packet_info * pinfo, proto_tree * iax2_tree, - proto_tree * main_tree) + guint16 scallno, + packet_info * pinfo, proto_tree * iax2_tree, + proto_tree * main_tree) { guint32 retransmission = 0; guint16 dcallno; @@ -1539,12 +1539,12 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, iax2_add_ts_fields(pinfo, iax2_tree, iax_packet, (guint16)ts); proto_tree_add_item (iax2_tree, hf_iax2_oseqno, tvb, offset+6, 1, - FALSE); + FALSE); proto_tree_add_item (iax2_tree, hf_iax2_iseqno, tvb, offset+7, 1, - FALSE); + FALSE); packet_type_base = proto_tree_add_uint (iax2_tree, hf_iax2_type, tvb, - offset+8, 1, type); + offset+8, 1, type); /* add the type-specific subtree */ packet_type_tree = proto_item_add_subtree (packet_type_base, ett_iax2_type); @@ -1556,8 +1556,8 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, /* add frame type to info line */ if (check_col (pinfo->cinfo, COL_INFO)) { col_add_fstr (pinfo->cinfo, COL_INFO, "%s, source call# %d, timestamp %ums", - val_to_str (type, iax_frame_types, "Unknown (0x%02x)"), - scallno, ts); + val_to_str (type, iax_frame_types, "Unknown (0x%02x)"), + scallno, ts); } iax2_info->messageName = val_to_str (type, iax_frame_types, "Unknown (0x%02x)"); @@ -1580,12 +1580,12 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, case AST_FRAME_CONTROL: /* add the subclass */ proto_tree_add_uint (packet_type_tree, hf_iax2_cmd_csub, tvb, - offset+9, 1, csub); + offset+9, 1, csub); offset += 10; if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " %s", - val_to_str (csub, iax_cmd_subclasses, "unknown (0x%02x)")); + val_to_str (csub, iax_cmd_subclasses, "unknown (0x%02x)")); iax2_info->messageName = val_to_str (csub, iax_cmd_subclasses, "unknown (0x%02x)"); if (csub <= 8) iax2_info->callState = tap_cmd_voip_state[csub]; break; @@ -1605,9 +1605,9 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, if( iax_call ) { if( reversed ) { - iax_call->dst_codec = codec; + iax_call->dst_codec = codec; } else { - iax_call->src_codec = codec; + iax_call->src_codec = codec; } } @@ -1631,9 +1631,9 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, if( iax_call && iax_packet -> first_time ) { if( reversed ) { - iax_call->dst_vformat = codec; + iax_call->dst_vformat = codec; } else { - iax_call->src_vformat = codec; + iax_call->src_vformat = codec; } } @@ -1650,14 +1650,14 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " %s", - val_to_str (csub, iax_modem_subclasses, "unknown (0x%02x)")); + val_to_str (csub, iax_modem_subclasses, "unknown (0x%02x)")); break; case AST_FRAME_HTML: case AST_FRAME_CNG: default: proto_tree_add_uint (packet_type_tree, hf_iax2_csub, tvb, offset+9, - 1, csub); + 1, csub); offset += 10; if (check_col (pinfo->cinfo, COL_INFO)) @@ -1673,8 +1673,8 @@ dissect_fullpacket (tvbuff_t * tvb, guint32 offset, } static iax_packet_data *iax2_get_packet_data_for_minipacket(packet_info * pinfo, - guint16 scallno, - gboolean video) + guint16 scallno, + gboolean video) { /* see if we've seen this packet before */ iax_packet_data *p = (iax_packet_data *)p_get_proto_data(pinfo->fd,proto_iax2); @@ -1704,8 +1704,8 @@ static iax_packet_data *iax2_get_packet_data_for_minipacket(packet_info * pinfo, static guint32 dissect_minivideopacket (tvbuff_t * tvb, guint32 offset, - guint16 scallno, packet_info * pinfo, - proto_tree * iax2_tree, proto_tree *main_tree) + guint16 scallno, packet_info * pinfo, + proto_tree * iax2_tree, proto_tree *main_tree) { guint32 ts; iax_packet_data *iax_packet; @@ -1724,7 +1724,7 @@ static guint32 dissect_minivideopacket (tvbuff_t * tvb, guint32 offset, if( iax_packet->call_data ) { item = proto_tree_add_uint (iax2_tree, hf_iax2_callno, tvb, 0, 4, - iax_packet->call_data->forward_circuit_ids[0] ); + iax_packet->call_data->forward_circuit_ids[0] ); PROTO_ITEM_SET_GENERATED(item); } @@ -1739,8 +1739,8 @@ static guint32 dissect_minivideopacket (tvbuff_t * tvb, guint32 offset, if (check_col (pinfo->cinfo, COL_INFO)) col_add_fstr (pinfo->cinfo, COL_INFO, - "Mini video packet, source call# %d, timestamp %ums%s", - scallno, ts, rtp_marker?", Mark":""); + "Mini video packet, source call# %d, timestamp %ums%s", + scallno, ts, rtp_marker?", Mark":""); dissect_payload(tvb, offset, pinfo, iax2_tree, main_tree, ts, TRUE, iax_packet); @@ -1754,7 +1754,7 @@ static guint32 dissect_minivideopacket (tvbuff_t * tvb, guint32 offset, static guint32 dissect_minipacket (tvbuff_t * tvb, guint32 offset, guint16 scallno, packet_info * pinfo, proto_tree * iax2_tree, - proto_tree *main_tree) + proto_tree *main_tree) { guint32 ts; iax_packet_data *iax_packet; @@ -1767,7 +1767,7 @@ dissect_minipacket (tvbuff_t * tvb, guint32 offset, guint16 scallno, packet_info if( iax2_tree ) { if( iax_packet->call_data ) { item = proto_tree_add_uint (iax2_tree, hf_iax2_callno, tvb, 0, 4, - iax_packet->call_data->forward_circuit_ids[0] ); + iax_packet->call_data->forward_circuit_ids[0] ); PROTO_ITEM_SET_GENERATED(item); } @@ -1782,8 +1782,8 @@ dissect_minipacket (tvbuff_t * tvb, guint32 offset, guint16 scallno, packet_info if (check_col (pinfo->cinfo, COL_INFO)) col_add_fstr (pinfo->cinfo, COL_INFO, - "Mini packet, source call# %d, timestamp %ums", - scallno, ts); + "Mini packet, source call# %d, timestamp %ums", + scallno, ts); /* XXX fix the timestamp logic */ @@ -1798,7 +1798,7 @@ dissect_minipacket (tvbuff_t * tvb, guint32 offset, guint16 scallno, packet_info } static void process_iax_pdu( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - gboolean video, iax_packet_data *iax_packet ) + gboolean video, iax_packet_data *iax_packet ) { guint32 codec = iax_packet -> codec; iax_call_data *iax_call = iax_packet -> call_data; @@ -1823,7 +1823,7 @@ static void process_iax_pdu( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree } static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tree, - proto_tree *tree, gboolean video, iax_packet_data *iax_packet ) + proto_tree *tree, gboolean video, iax_packet_data *iax_packet ) { iax_call_data *iax_call = iax_packet -> call_data; @@ -1879,9 +1879,9 @@ static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tr /* fragment_add checks for already-added */ fd_head = fragment_add( tvb, 0, pinfo, fid, - iax_call->fragment_table, - frag_offset, - frag_len, !complete ); + iax_call->fragment_table, + frag_offset, + frag_len, !complete ); if(fd_head && (pinfo->fd->num == fd_head->reassembled_in)) { gint32 old_len; @@ -1897,9 +1897,9 @@ static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tr */ old_len = (gint32)(tvb_reported_length(next_tvb) - frag_len); if( pinfo->desegment_len && - pinfo->desegment_offset < old_len ) { - /* oops, it wasn't actually complete */ - fragment_set_partial_reassembly(pinfo, fid, iax_call->fragment_table); + pinfo->desegment_offset < old_len ) { + /* oops, it wasn't actually complete */ + fragment_set_partial_reassembly(pinfo, fid, iax_call->fragment_table); if(pinfo->desegment_len == DESEGMENT_ONE_MORE_SEGMENT) { /* only one more byte should be enough for a retry */ dirdata->current_frag_minlen = fd_head->datalen + 1; @@ -1907,25 +1907,25 @@ static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tr dirdata->current_frag_minlen = fd_head->datalen + pinfo->desegment_len; } } else { - /* we successfully dissected some data; create the proto tree items for - * the fragments, and flag any remaining data for desegmentation */ - - proto_item *iax_tree_item, *frag_tree_item; - /* this nargery is to insert the fragment tree into the main tree - * between the IAX protocol entry and the subdissector entry */ - show_fragment_tree(fd_head, &iax2_fragment_items, tree, pinfo, next_tvb, &frag_tree_item); - iax_tree_item = proto_item_get_parent( proto_tree_get_parent( iax2_tree )); - if( frag_tree_item && iax_tree_item ) - proto_tree_move_item( tree, iax_tree_item, frag_tree_item ); - - dirdata->current_frag_minlen = dirdata->current_frag_id = dirdata->current_frag_bytes = 0; - - if( pinfo->desegment_len ) { - /* there's a bit of data left to desegment */ - must_desegment = TRUE; - /* make desegment_offset relative to our tvb */ - pinfo->desegment_offset -= old_len; - } + /* we successfully dissected some data; create the proto tree items for + * the fragments, and flag any remaining data for desegmentation */ + + proto_item *iax_tree_item, *frag_tree_item; + /* this nargery is to insert the fragment tree into the main tree + * between the IAX protocol entry and the subdissector entry */ + show_fragment_tree(fd_head, &iax2_fragment_items, tree, pinfo, next_tvb, &frag_tree_item); + iax_tree_item = proto_item_get_parent( proto_tree_get_parent( iax2_tree )); + if( frag_tree_item && iax_tree_item ) + proto_tree_move_item( tree, iax_tree_item, frag_tree_item ); + + dirdata->current_frag_minlen = dirdata->current_frag_id = dirdata->current_frag_bytes = 0; + + if( pinfo->desegment_len ) { + /* there's a bit of data left to desegment */ + must_desegment = TRUE; + /* make desegment_offset relative to our tvb */ + pinfo->desegment_offset -= old_len; + } /* don't add a 'reassembled in' item for this pdu */ fd_head = NULL; @@ -1953,44 +1953,44 @@ static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tr * contained the start of a higher-level PDU; we must add whatever is left of * this segment (after pinfo->desegment_offset) to a fragment table for disassembly. */ if(must_desegment) { - guint32 fid = pinfo->fd->num; /* a new fragment id */ - guint32 deseg_offset = pinfo->desegment_offset; - guint32 frag_len = tvb_reported_length_remaining(tvb,deseg_offset); - dirdata->current_frag_id = fid; - dirdata->current_frag_bytes = frag_len; - - if(pinfo->desegment_len == DESEGMENT_ONE_MORE_SEGMENT) { - /* only one more byte should be enough for a retry */ - dirdata->current_frag_minlen = frag_len + 1; - } else { - dirdata->current_frag_minlen = frag_len + pinfo->desegment_len; - } + guint32 fid = pinfo->fd->num; /* a new fragment id */ + guint32 deseg_offset = pinfo->desegment_offset; + guint32 frag_len = tvb_reported_length_remaining(tvb,deseg_offset); + dirdata->current_frag_id = fid; + dirdata->current_frag_bytes = frag_len; + + if(pinfo->desegment_len == DESEGMENT_ONE_MORE_SEGMENT) { + /* only one more byte should be enough for a retry */ + dirdata->current_frag_minlen = frag_len + 1; + } else { + dirdata->current_frag_minlen = frag_len + pinfo->desegment_len; + } - fd_head = fragment_add(tvb, deseg_offset, pinfo, fid, - iax_call->fragment_table, - 0, frag_len, TRUE ); + fd_head = fragment_add(tvb, deseg_offset, pinfo, fid, + iax_call->fragment_table, + 0, frag_len, TRUE ); #ifdef DEBUG_DESEGMENT - g_debug("Start offset of undissected bytes: %u; " - "Bytes remaining in this segment: %u; min required bytes: %u\n", - deseg_offset, frag_len, frag_len + pinfo->desegment_len); + g_debug("Start offset of undissected bytes: %u; " + "Bytes remaining in this segment: %u; min required bytes: %u\n", + deseg_offset, frag_len, frag_len + pinfo->desegment_len); #endif } /* add a 'reassembled in' item if necessary */ if( fd_head != NULL ) { - guint32 deseg_offset = pinfo->desegment_offset; - if( fd_head->reassembled_in != 0 && - !(fd_head->flags & FD_PARTIAL_REASSEMBLY) ) { - proto_item *iax_tree_item; - iax_tree_item = proto_tree_add_uint( tree, hf_iax2_reassembled_in, - tvb, deseg_offset, tvb_reported_length_remaining(tvb,deseg_offset), - fd_head->reassembled_in); - PROTO_ITEM_SET_GENERATED(iax_tree_item); - } else { - /* this fragment is never reassembled */ - proto_tree_add_text( tree, tvb, deseg_offset, -1, - "IAX2 fragment, unfinished"); - } + guint32 deseg_offset = pinfo->desegment_offset; + if( fd_head->reassembled_in != 0 && + !(fd_head->flags & FD_PARTIAL_REASSEMBLY) ) { + proto_item *iax_tree_item; + iax_tree_item = proto_tree_add_uint( tree, hf_iax2_reassembled_in, + tvb, deseg_offset, tvb_reported_length_remaining(tvb,deseg_offset), + fd_head->reassembled_in); + PROTO_ITEM_SET_GENERATED(iax_tree_item); + } else { + /* this fragment is never reassembled */ + proto_tree_add_text( tree, tvb, deseg_offset, -1, + "IAX2 fragment, unfinished"); + } if( pinfo->desegment_offset == 0 ) { col_set_str(pinfo->cinfo, COL_PROTOCOL, "IAX2"); @@ -2004,9 +2004,9 @@ static void desegment_iax(tvbuff_t *tvb, packet_info *pinfo, proto_tree *iax2_tr } static void dissect_payload(tvbuff_t *tvb, guint32 offset, - packet_info *pinfo, proto_tree *iax2_tree, - proto_tree *tree, guint32 ts, gboolean video, - iax_packet_data *iax_packet) + packet_info *pinfo, proto_tree *iax2_tree, + proto_tree *tree, guint32 ts, gboolean video, + iax_packet_data *iax_packet) { #if 0 gboolean out_of_order = FALSE; @@ -2031,22 +2031,22 @@ static void dissect_payload(tvbuff_t *tvb, guint32 offset, if (check_col (pinfo->cinfo, COL_INFO)) { if( !video && iax_call && iax_call -> dataformat != 0 ) { col_append_fstr (pinfo->cinfo, COL_INFO, ", data, format %s", - val_to_str (iax_call -> dataformat, - iax_dataformats, "unknown (0x%02x)")); + val_to_str (iax_call -> dataformat, + iax_dataformats, "unknown (0x%02x)")); #if 0 if( out_of_order ) - col_append_str (pinfo->cinfo, COL_INFO, " (out-of-order packet)"); + col_append_str (pinfo->cinfo, COL_INFO, " (out-of-order packet)"); #endif } else { col_append_fstr (pinfo->cinfo, COL_INFO, ", %s", - val_to_str (codec, codec_types, "unknown (0x%02x)")); + val_to_str (codec, codec_types, "unknown (0x%02x)")); } } nbytes = tvb_reported_length(sub_tvb); proto_tree_add_text( iax2_tree, sub_tvb, 0, -1, - "IAX2 payload (%u byte%s)", nbytes, - plurality( nbytes, "", "s" )); + "IAX2 payload (%u byte%s)", nbytes, + plurality( nbytes, "", "s" )); iax2_info->payload_len = nbytes; iax2_info->payload_data = tvb_get_ptr(sub_tvb, 0, -1); @@ -2603,14 +2603,15 @@ proto_reg_handoff_iax2 (void) data_handle = find_dissector("data"); } - /* - * This sets up the indentation style for this file in emacs. + * Editor modelines * * Local Variables: * c-basic-offset: 2 + * tab-width: 2 + * indent-tabs-mode: nil * End: * - * .. And for vim: - * vim:set ts=8 sts=2 sw=2 noet: + * ex: set shiftwidth=2 tabstop=2 expandtab + * :indentSize=2:tabSize=2:noTabs=true: */ |