aboutsummaryrefslogtreecommitdiffstats
path: root/ui/tap-sctp-analysis.c
diff options
context:
space:
mode:
authorruengeler <ruengeler@wireshark.org>2016-10-19 17:10:53 +0200
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2016-10-25 16:24:51 +0000
commitc63f89515985a8db0aa8a500b1832474619090aa (patch)
tree7072673a37c2c5f5a44ac88138ff3ffd84fbe1d7 /ui/tap-sctp-analysis.c
parentae88dbcc2a990218549e06e143908eed1223ad8a (diff)
SCTP: find right assoc id
Change-Id: I107b7f4c585ef5e080d6473a37b3db9a97f12365 Reviewed-on: https://code.wireshark.org/review/18325 Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'ui/tap-sctp-analysis.c')
-rw-r--r--ui/tap-sctp-analysis.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ui/tap-sctp-analysis.c b/ui/tap-sctp-analysis.c
index d5e6faf179..d58b03e985 100644
--- a/ui/tap-sctp-analysis.c
+++ b/ui/tap-sctp-analysis.c
@@ -442,7 +442,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->init = FALSE;
info->initack = FALSE;
info->check_address = FALSE;
- info->direction = 0;
+ info->direction = sctp_info->direction;
info = calc_checksum(sctp_info, info);
info->n_packets = 1;
info->error_info_list = NULL;
@@ -554,13 +554,13 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
{
store = (address *)g_malloc(sizeof (address));
alloc_address_tvb(NULL, store, AT_IPv4, 4, sctp_info->tvb[chunk_number], IPV4_ADDRESS_OFFSET);
- info = add_address(store, info, 1);
+ info = add_address(store, info, info->direction);
}
else if (type == IPV6ADDRESS_PARAMETER_ID)
{
store = (address *)g_malloc(sizeof (address));
alloc_address_tvb(NULL, store, AT_IPv6, 16, sctp_info->tvb[chunk_number], IPV6_ADDRESS_OFFSET);
- info = add_address(store, info, 1);
+ info = add_address(store, info, info->direction);
}
}
@@ -743,14 +743,17 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
addr = (guint8 *)g_malloc(tmp_info.src.len);
memcpy(addr,(tmp_info.src.data),tmp_info.src.len);
store->data = addr;
- info = add_address(store, info, 1);
+ info = add_address(store, info, info->direction);
store = (address *)g_malloc(sizeof (address));
store->type = tmp_info.dst.type;
store->len = tmp_info.dst.len;
addr = (guint8 *)g_malloc(tmp_info.dst.len);
memcpy(addr,(tmp_info.dst.data),tmp_info.dst.len);
store->data = addr;
- info = add_address(store, info, 2);
+ if (info->direction == 1)
+ info = add_address(store, info, 2);
+ else
+ info = add_address(store, info, 1);
number = (guint32 *)g_malloc(sizeof(guint32));
*number = pinfo->num;
info->frame_numbers=g_list_prepend(info->frame_numbers,number);