diff options
author | Guy Harris <guy@alum.mit.edu> | 2018-07-31 15:52:46 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2018-07-31 22:53:27 +0000 |
commit | ba202ef36225b59eb797c5a48b8d4a4665b479c7 (patch) | |
tree | 050e449f76d3cf248e64b9260a7c2438db028768 /epan/conversation.c | |
parent | 137bbb2d146a89b42c8173c2b7e9a867df14ecae (diff) |
Have find_or_create_conversation() use pinfo->conv_endpoint if present.
Add conversation_new_pinfo(), which uses the endpoint if present, and
have find_or_create_conversation() use it rather than
conversation_new().
Remove find_or_create_conversation_by_id() - it's no longer needed.
Bug: 15018
Change-Id: Ib13e539751af0f071aede4ee0ed751d0cb72ba3f
Reviewed-on: https://code.wireshark.org/review/28908
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/conversation.c')
-rw-r--r-- | epan/conversation.c | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/epan/conversation.c b/epan/conversation.c index fc94e3d65b..e1f1a03b85 100644 --- a/epan/conversation.c +++ b/epan/conversation.c @@ -765,6 +765,28 @@ conversation_t *conversation_new_by_id(const guint32 setup_frame, const endpoint return conversation_new(setup_frame, NULL, NULL, etype, id, 0, options | NO_ADDR2 | NO_PORT2); } +conversation_t * +conversation_new_pinfo(packet_info *pinfo) +{ + if (pinfo->use_endpoint) { + return conversation_new(pinfo->num, + &pinfo->conv_endpoint->addr1, + &pinfo->conv_endpoint->addr2, + pinfo->conv_endpoint->etype, + pinfo->conv_endpoint->port1, + pinfo->conv_endpoint->port2, + pinfo->conv_endpoint->options); + } else { + return conversation_new(pinfo->num, + &pinfo->src, + &pinfo->dst, + conversation_pt_to_endpoint_type(pinfo->ptype), + pinfo->srcport, + pinfo->destport, + 0); + } +} + /* * Set the port 2 value in a key. Remove the original from table, * update the options and port values, insert the updated key. @@ -1497,29 +1519,7 @@ find_or_create_conversation(packet_info *pinfo) DPRINT(("did not find previous conversation for frame #%u", pinfo->num)); DINDENT(); - conv = conversation_new(pinfo->num, &pinfo->src, - &pinfo->dst, conversation_pt_to_endpoint_type(pinfo->ptype), - pinfo->srcport, pinfo->destport, 0); - DENDENT(); - } - - DENDENT(); - - return conv; -} - -conversation_t * -find_or_create_conversation_by_id(packet_info *pinfo, const endpoint_type etype, const guint32 id) -{ - conversation_t *conv=NULL; - - /* Have we seen this conversation before? */ - if ((conv = find_conversation_by_id(pinfo->num, etype, id, 0)) == NULL) { - /* No, this is a new conversation. */ - DPRINT(("did not find previous conversation for frame #%u", - pinfo->num)); - DINDENT(); - conv = conversation_new_by_id(pinfo->num, etype, id, 0); + conv = conversation_new_pinfo(pinfo); DENDENT(); } |