aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-stun.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-stun.c')
-rw-r--r--epan/dissectors/packet-stun.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/epan/dissectors/packet-stun.c b/epan/dissectors/packet-stun.c
index 13885a9167..c7affc408e 100644
--- a/epan/dissectors/packet-stun.c
+++ b/epan/dissectors/packet-stun.c
@@ -1343,6 +1343,13 @@ dissect_stun_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboole
}
}
+ if (!PINFO_FD_VISITED(pinfo) && is_turn && (pinfo->ptype == PT_TCP)
+ && (msg_type_method == CONNECTION_BIND) && (msg_type_class == RESPONSE)) {
+ /* RFC 6062: after the ConnectionBind exchange, the connection is no longer framed as TURN;
+ instead, it is an unframed pass-through.
+ Starting from next frame set conversation dissector to data */
+ conversation_set_dissector_from_frame_number(conversation, pinfo->fd->num+1, data_handle);
+ }
return reported_length;
}