After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 515962 - [udp] add ipv6 support to multiudpsink and udpsrc, add multiudpsink ttl and loopback properties
[udp] add ipv6 support to multiudpsink and udpsrc, add multiudpsink ttl and l...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal enhancement
: 0.10.9
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 341537 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-02-12 09:33 UTC by Bruno Santos
Modified: 2008-05-22 20:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ipv6 patch for udp (19.87 KB, patch)
2008-02-12 09:40 UTC, Bruno Santos
none Details | Review
ipv6 patch for udp (19.87 KB, patch)
2008-02-12 09:41 UTC, Bruno Santos
none Details | Review
udp patch for the cvs version (18.80 KB, patch)
2008-02-13 12:35 UTC, Bruno Santos
none Details | Review
Adds IPv6 support to udpsrc and udpsink (14.59 KB, patch)
2008-02-14 12:16 UTC, Bruno Santos
none Details | Review
Adds IPv6 support to udpsrc and udpsink, adds ttl and loopback properties to multiudpsink. (17.23 KB, patch)
2008-02-14 13:33 UTC, Bruno Santos
none Details | Review
Add ipv6 support to udp (17.26 KB, patch)
2008-02-28 12:15 UTC, Bruno Santos
none Details | Review
updated patch (19.26 KB, patch)
2008-03-11 17:58 UTC, Wim Taymans
none Details | Review
added fallback to ipv4 in multiudpsink if OS does not support ipv6 (17.75 KB, patch)
2008-03-12 19:53 UTC, Bruno Santos
committed Details | Review

Description Bruno Santos 2008-02-12 09:33:40 UTC
This patch adds ipv6 support for udpsrc and udpsink. It has been tested in Ubuntu7.10 (x86) and Nokia N800 (armel) with an ipv6 enabled kernel. At this moment I'm unable to use cvs, because of the internet connection I'm using, so the patch for cvs will be made available later.

Issues: In order to receive ipv6 packets with udpsrc we need to specify the ipv6 localhost or else it will default to ipv4, we can do this by specifying multicast-group=::1 for unicast or multicast-group=FF0E::1 for multicast.

This patch was written by request of IT Aveiro (www.av.it.pt) on behalf of the C-Mobile Project.
Comment 1 Bruno Santos 2008-02-12 09:40:51 UTC
Created attachment 105016 [details] [review]
ipv6 patch for udp
Comment 2 Bruno Santos 2008-02-12 09:41:33 UTC
Created attachment 105017 [details] [review]
ipv6 patch for udp
Comment 3 Bruno Santos 2008-02-13 12:35:56 UTC
Created attachment 105133 [details] [review]
udp patch for the cvs version
Comment 4 Bruno Santos 2008-02-14 12:16:16 UTC
Created attachment 105224 [details] [review]
Adds IPv6 support to udpsrc and udpsink

This patch improves over the previous one by removing the uncessary additional socket, since we can use an AF_INET6 socket to send to IPv4 addresses.
Comment 5 Bruno Santos 2008-02-14 13:33:01 UTC
Created attachment 105233 [details] [review]
Adds IPv6 support to udpsrc and udpsink, adds ttl and loopback properties to multiudpsink.

Adds ttl and loopback properties to multiudpsink over the previous patch
Comment 6 Wim Taymans 2008-02-22 10:25:17 UTC
*** Bug 341537 has been marked as a duplicate of this bug. ***
Comment 7 Bruno Santos 2008-02-28 12:15:35 UTC
Created attachment 106153 [details] [review]
Add ipv6 support to udp

This patch improves over the previous ones by fixing a potencial read buffer overflow in gst_udp_get_addr.
Comment 8 Wim Taymans 2008-03-11 17:58:17 UTC
Created attachment 107079 [details] [review]
updated patch

Updated patch that applies to current HEAD.
Comment 9 Bruno Santos 2008-03-12 19:53:27 UTC
Created attachment 107176 [details] [review]
added fallback to ipv4 in multiudpsink if OS does not support ipv6

If the OS does not support IPv6 multiudpsink will fail in gst_multiudpsink_init_send. This new updated patch will created a IPv4 socket if it fails creating and Ipv6 socket.
Comment 10 Wim Taymans 2008-05-21 09:56:07 UTC
        Patch by: Bruno Santos <brunof at ua dot pt>

        * gst/udp/gstudpnetutils.c: (gst_udp_get_addr),
        (gst_udp_join_group), (gst_udp_leave_group),
        (gst_udp_is_multicast):
        * gst/udp/gstudpnetutils.h:
        Provide a bunch of helper methods to deal with IPv4 and IPv6
        transparently.

        * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init),
        (gst_multiudpsink_init), (gst_multiudpsink_set_property),
        (gst_multiudpsink_get_property), (join_multicast),
        (gst_multiudpsink_init_send), (gst_multiudpsink_add_internal),
        (gst_multiudpsink_remove):
        * gst/udp/gstmultiudpsink.h:
        Add multicast TTL and loopback properties.
        Use the helper methods to implement ip4 and ip6.

        * gst/udp/gstudpsrc.c: (gst_udpsrc_create), (gst_udpsrc_start):
        * gst/udp/gstudpsrc.h:
        Use the helper methods to implement ip4 and ip6.
        Fixes #515962.
Comment 11 Bruno Santos 2008-05-22 20:57:15 UTC
Nice :)

If you have any problems or issues regarding this patch (or anything related to IPv6), do not be afraid to ask for support.