diff --git a/include/vlc_network.h b/include/vlc_network.h index b2a2a619a7a36db0dae312e03de7f3c9e923bff7..96216f86fe64cdffc44e83819a6b11b253d41ab6 100644 --- a/include/vlc_network.h +++ b/include/vlc_network.h @@ -126,13 +126,13 @@ static inline int net_ConnectUDP (vlc_object_t *obj, const char *host, int port, return net_ConnectDgram (obj, host, port, hlim, IPPROTO_UDP); } -VLC_API int net_OpenDgram( vlc_object_t *p_this, const char *psz_bind, int i_bind, const char *psz_server, int i_server, int family, int proto ); -#define net_OpenDgram( a, b, c, d, e, g, h ) \ - net_OpenDgram(VLC_OBJECT(a), b, c, d, e, g, h) +VLC_API int net_OpenDgram( vlc_object_t *p_this, const char *psz_bind, int i_bind, const char *psz_server, int i_server, int proto ); +#define net_OpenDgram( a, b, c, d, e, g ) \ + net_OpenDgram(VLC_OBJECT(a), b, c, d, e, g) static inline int net_ListenUDP1 (vlc_object_t *obj, const char *host, int port) { - return net_OpenDgram (obj, host, port, NULL, 0, 0, IPPROTO_UDP); + return net_OpenDgram (obj, host, port, NULL, 0, IPPROTO_UDP); } VLC_API void net_ListenClose( int *fd ); diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c index ac8f22633c24692c831f55e343318d18c5c8f030..04f79f5f07f395d78ba95d115c36602a4825a64f 100644 --- a/modules/access/rtp/rtp.c +++ b/modules/access/rtp/rtp.c @@ -216,13 +216,11 @@ static int Open (vlc_object_t *obj) { case IPPROTO_UDP: case IPPROTO_UDPLITE: - fd = net_OpenDgram (obj, dhost, dport, - shost, sport, AF_UNSPEC, tp); + fd = net_OpenDgram (obj, dhost, dport, shost, sport, tp); if (fd == -1) break; if (rtcp_dport > 0) /* XXX: source port is unknown */ - rtcp_fd = net_OpenDgram (obj, dhost, rtcp_dport, shost, 0, - AF_UNSPEC, tp); + rtcp_fd = net_OpenDgram (obj, dhost, rtcp_dport, shost, 0, tp); break; case IPPROTO_DCCP: diff --git a/modules/access/udp.c b/modules/access/udp.c index 9f922ed06e6146b09c3955b8f9bc4b9af52501e2..bcde1793c6ec49f6b1c90aee1de36b60c8003070 100644 --- a/modules/access/udp.c +++ b/modules/access/udp.c @@ -88,27 +88,12 @@ static int Open( vlc_object_t *p_this ) char *psz_parser; const char *psz_server_addr, *psz_bind_addr = ""; int i_bind_port = 1234, i_server_port = 0; - int fam = AF_UNSPEC; int fd; /* Set up p_access */ access_InitFields( p_access ); ACCESS_SET_CALLBACKS( NULL, BlockUDP, Control, NULL ); - if (strlen (p_access->psz_access) > 0) - { - switch (p_access->psz_access[strlen (p_access->psz_access) - 1]) - { - case '4': - fam = AF_INET; - break; - - case '6': - fam = AF_INET6; - break; - } - } - /* Parse psz_name syntax : * [serveraddr[:serverport]][@[bindaddr]:[bindport]] */ psz_parser = strchr( psz_name, '@' ); @@ -152,7 +137,7 @@ static int Open( vlc_object_t *p_this ) psz_server_addr, i_server_port, psz_bind_addr, i_bind_port ); fd = net_OpenDgram( p_access, psz_bind_addr, i_bind_port, - psz_server_addr, i_server_port, fam, IPPROTO_UDP ); + psz_server_addr, i_server_port, IPPROTO_UDP ); free (psz_name); if( fd == -1 ) { diff --git a/modules/stream_out/rtcp.c b/modules/stream_out/rtcp.c index 83420b9e17051b24264be28c9766c7072d737a90..92c31549266cba77fc078236b5761e3e0e0cf612 100644 --- a/modules/stream_out/rtcp.c +++ b/modules/stream_out/rtcp.c @@ -106,7 +106,7 @@ rtcp_sender_t *OpenRTCP (vlc_object_t *obj, int rtp_fd, int proto, sport++; dport++; - fd = net_OpenDgram (obj, src, sport, dst, dport, AF_UNSPEC, proto); + fd = net_OpenDgram (obj, src, sport, dst, dport, proto); if (fd != -1) { /* Copy the multicast IPv4 TTL value (useless for IPv6) */ diff --git a/src/network/udp.c b/src/network/udp.c index 0a6627033f8311e8c0dcf52cff69e607ffeef5bc..cb72868f70ef14d5af54e3e628a2db9d78e504f7 100644 --- a/src/network/udp.c +++ b/src/network/udp.c @@ -134,12 +134,11 @@ static int net_SetupDgramSocket( vlc_object_t *p_obj, int fd, const struct addri /* */ static int net_ListenSingle (vlc_object_t *obj, const char *host, int port, - int family, int protocol) + int protocol) { struct addrinfo hints, *res; memset (&hints, 0, sizeof( hints )); - hints.ai_family = family; hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = protocol; hints.ai_flags = AI_PASSIVE; @@ -171,22 +170,10 @@ static int net_ListenSingle (vlc_object_t *obj, const char *host, int port, } #ifdef IPV6_V6ONLY - /* If IPv6 was forced, set IPv6-only mode. - * If IPv4 was forced, do nothing extraordinary. - * If nothing was forced, try dual-mode IPv6. */ + /* Try dual-mode IPv6 if available. */ if (ptr->ai_family == AF_INET6) - { - int on = (family == AF_INET6); - setsockopt (fd, SOL_IPV6, IPV6_V6ONLY, &on, sizeof (on)); - } - if (ptr->ai_family == AF_INET) + setsockopt (fd, SOL_IPV6, IPV6_V6ONLY, &(int){ 0 }, sizeof (int)); #endif - if (family == AF_UNSPEC && ptr->ai_next != NULL) - { - msg_Warn (obj, "ambiguous network protocol specification"); - msg_Warn (obj, "please select IP version explicitly"); - } - fd = net_SetupDgramSocket( obj, fd, ptr ); if( fd == -1 ) continue; @@ -728,11 +715,10 @@ int net_ConnectDgram( vlc_object_t *p_this, const char *psz_host, int i_port, * OpenDgram a datagram socket and return a handle *****************************************************************************/ int net_OpenDgram( vlc_object_t *obj, const char *psz_bind, int i_bind, - const char *psz_server, int i_server, - int family, int protocol ) + const char *psz_server, int i_server, int protocol ) { if ((psz_server == NULL) || (psz_server[0] == '\0')) - return net_ListenSingle (obj, psz_bind, i_bind, family, protocol); + return net_ListenSingle (obj, psz_bind, i_bind, protocol); msg_Dbg (obj, "net: connecting to [%s]:%d from [%s]:%d", psz_server, i_server, psz_bind, i_bind); @@ -741,7 +727,6 @@ int net_OpenDgram( vlc_object_t *obj, const char *psz_bind, int i_bind, int val; memset (&hints, 0, sizeof (hints)); - hints.ai_family = family; hints.ai_socktype = SOCK_DGRAM; hints.ai_protocol = protocol;