2 * RTP stream id functions for Wireshark
4 * Copyright 2003, Alcatel Business Systems
5 * By Lars Ruoff <lars.ruoff@gmx.net>
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@wireshark.org>
9 * Copyright 1998 Gerald Combs
11 * SPDX-License-Identifier: GPL-2.0-or-later
21 #include "ui/rtp_stream_id.h"
22 #include "epan/dissectors/packet-rtp.h"
24 /****************************************************************************/
25 /* rtpstream id functions */
26 /****************************************************************************/
28 /****************************************************************************/
30 void rtpstream_id_copy(const rtpstream_id_t *src, rtpstream_id_t *dest)
32 copy_address(&(dest->src_addr), &(src->src_addr));
33 dest->src_port=src->src_port;
34 copy_address(&(dest->dst_addr), &(src->dst_addr));
35 dest->dst_port=src->dst_port;
39 /****************************************************************************/
40 /* deep copy of id from packet_info */
41 void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, gboolean swap_src_dst)
45 copy_address(&(dest->src_addr), &(pinfo->src));
46 dest->src_port=pinfo->srcport;
47 copy_address(&(dest->dst_addr), &(pinfo->dst));
48 dest->dst_port=pinfo->destport;
52 copy_address(&(dest->src_addr), &(pinfo->dst));
53 dest->src_port=pinfo->destport;
54 copy_address(&(dest->dst_addr), &(pinfo->src));
55 dest->dst_port=pinfo->srcport;
59 /****************************************************************************/
60 /* free memory allocated for id */
61 void rtpstream_id_free(rtpstream_id_t *id)
63 free_address(&(id->src_addr));
64 free_address(&(id->dst_addr));
65 memset(id, 0, sizeof(*id));
68 /****************************************************************************/
69 /* compare two ids by flags */
70 gboolean rtpstream_id_equal(const rtpstream_id_t *id1, const rtpstream_id_t *id2, guint flags)
72 if (addresses_equal(&(id1->src_addr), &(id2->src_addr))
73 && id1->src_port == id2->src_port
74 && addresses_equal(&(id1->dst_addr), &(id2->dst_addr))
75 && id1->dst_port == id2->dst_port)
77 gboolean equal = TRUE;
79 if ((flags & RTPSTREAM_ID_EQUAL_SSRC)
80 && id1->ssrc != id2->ssrc)
91 /****************************************************************************/
92 /* compare two ids, one in pinfo */
93 gboolean rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packet_info *pinfo, const struct _rtp_info *rtp_info)
95 if (addresses_equal(&(id->src_addr), &(pinfo->src))
96 && id->src_port == pinfo->srcport
97 && addresses_equal(&(id->dst_addr), &(pinfo->dst))
98 && id->dst_port == pinfo->destport
99 && id->ssrc == rtp_info->info_sync_src)
108 * Editor modelines - http://www.wireshark.org/tools/modelines.html
113 * indent-tabs-mode: nil
116 * vi: set shiftwidth=4 tabstop=8 expandtab:
117 * :indentSize=4:tabSize=8:noTabs=true: