summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Crete <tester@tester.ca>2008-03-07 18:17:44 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-03-07 18:17:44 +0000
commitcf273d8add57d03273514597a07eaeaf762b931b (patch)
treef61079a0e1b3727d7793de2ab8136f33d30765b5
parent6c50e0031a0417c53e02588ce888079a5e96f4cd (diff)
downloadgstreamer-plugins-base-cf273d8add57d03273514597a07eaeaf762b931b.tar.gz
Add trivial function to compare GstNetAddress. See #520626.
Original commit message from CVS: Patch by: Olivier Crete <tester at tester ca> * docs/libs/gst-plugins-base-libs-sections.txt: * gst-libs/gst/netbuffer/gstnetbuffer.c: (gst_netaddress_equal): * gst-libs/gst/netbuffer/gstnetbuffer.h: Add trivial function to compare GstNetAddress. See #520626. API: GstNetBuffer::gst_netaddress_equal
-rw-r--r--ChangeLog10
-rw-r--r--docs/libs/gst-plugins-base-libs-sections.txt1
-rw-r--r--gst-libs/gst/netbuffer/gstnetbuffer.c40
-rw-r--r--gst-libs/gst/netbuffer/gstnetbuffer.h3
4 files changed, 54 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d89c53509..16ed6b7d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2008-03-07 Wim Taymans <wim.taymans@collabora.co.uk>
+ Patch by: Olivier Crete <tester at tester ca>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/netbuffer/gstnetbuffer.c: (gst_netaddress_equal):
+ * gst-libs/gst/netbuffer/gstnetbuffer.h:
+ Add trivial function to compare GstNetAddress. See #520626.
+ API: GstNetBuffer::gst_netaddress_equal
+
+2008-03-07 Wim Taymans <wim.taymans@collabora.co.uk>
+
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
Update mode property docs, it's deprecated now.
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index 313d703a6..d5affab21 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -595,6 +595,7 @@ gst_netaddress_get_ip6_address
gst_netaddress_get_net_type
gst_netaddress_set_ip4_address
gst_netaddress_set_ip6_address
+gst_netaddress_equal
<SUBSECTION Standard>
GstNetBufferClass
GST_TYPE_NETBUFFER
diff --git a/gst-libs/gst/netbuffer/gstnetbuffer.c b/gst-libs/gst/netbuffer/gstnetbuffer.c
index b897c9bda..964d1b841 100644
--- a/gst-libs/gst/netbuffer/gstnetbuffer.c
+++ b/gst-libs/gst/netbuffer/gstnetbuffer.c
@@ -237,3 +237,43 @@ gst_netaddress_get_ip6_address (GstNetAddress * naddr, guint8 address[16],
return TRUE;
}
+
+/**
+ * gst_netaddress_equal:
+ * @naddr1: The first #GstNetAddress
+ * @naddr2: The second #GstNetAddress
+ *
+ * Compare two #GstNetAddress structures
+ *
+ * Returns: TRUE if they are identical, FALSE otherwise
+ *
+ * Since: 0.10.18
+ */
+gboolean
+gst_netaddress_equal (const GstNetAddress * naddr1,
+ const GstNetAddress * naddr2)
+{
+ g_return_val_if_fail (naddr1 != NULL, FALSE);
+ g_return_val_if_fail (naddr2 != NULL, FALSE);
+
+ if (naddr1->type != naddr2->type)
+ return FALSE;
+
+ if (naddr1->port != naddr2->port)
+ return FALSE;
+
+ switch (naddr1->type) {
+ case GST_NET_TYPE_IP4:
+ if (naddr1->address.ip4 != naddr2->address.ip4)
+ return FALSE;
+ break;
+ case GST_NET_TYPE_IP6:
+ if (memcmp (naddr1->address.ip6, naddr2->address.ip6,
+ sizeof (naddr1->address.ip6)))
+ return FALSE;
+ break;
+ default:
+ break;
+ }
+ return TRUE;
+}
diff --git a/gst-libs/gst/netbuffer/gstnetbuffer.h b/gst-libs/gst/netbuffer/gstnetbuffer.h
index 2fd772149..4910ea372 100644
--- a/gst-libs/gst/netbuffer/gstnetbuffer.h
+++ b/gst-libs/gst/netbuffer/gstnetbuffer.h
@@ -105,6 +105,9 @@ GstNetType gst_netaddress_get_net_type (GstNetAddress *naddr);
gboolean gst_netaddress_get_ip4_address (GstNetAddress *naddr, guint32 *address, guint16 *port);
gboolean gst_netaddress_get_ip6_address (GstNetAddress *naddr, guint8 address[16], guint16 *port);
+gboolean gst_netaddress_equal (const GstNetAddress *naddr1,
+ const GstNetAddress *naddr2);
+
G_END_DECLS
#endif /* __GST_NETBUFFER_H__ */