vlc_bool_t b_multicast = VLC_FALSE;
int i;
- if( psz_addr == NULL )
- {
- msg_Err( p_object, "*FIXME* Unexpected NULL URI for net_AddressIsMulticast" );
- msg_Err( p_object, "This should not happen. VLC needs fixing." );
- return VLC_FALSE;
- }
-
memset( &hints, 0, sizeof( hints ) );
hints.ai_socktype = SOCK_DGRAM; /* UDP */
hints.ai_flags = AI_NUMERICHOST;
i = vlc_getaddrinfo( p_object, psz_addr, 0,
&hints, &res );
- /*if( i == 0 )
- i = vlc_getnameinfo( res->ai_addr, res->ai_addrlen, psz_buf,
- sizeof( psz_buf ), NULL, NI_NUMERICHOST );*/
if( i )
{
msg_Err( p_object, "Invalid node for net_AddressIsMulticast: %s : %s",
psz_addr, vlc_gai_strerror( i ) );
- return b_multicast;
+ return VLC_FALSE;
}
if( res->ai_family == AF_INET )
{
#if !defined( SYS_BEOS )
struct sockaddr_in *v4 = (struct sockaddr_in *) res->ai_addr;
- b_multicast = ( ntohl( v4->sin_addr.s_addr ) >= 0xe0000000 && ntohl( v4->sin_addr.s_addr ) <= 0xefffffff );
+ b_multicast = ( ntohl( v4->sin_addr.s_addr ) >= 0xe0000000 )
+ && ( ntohl( v4->sin_addr.s_addr ) <= 0xefffffff );
#endif
}
else if( res->ai_family == AF_INET6 )
{
-#if defined( WIN32 ) || defined( HAVE_IF_NAMETOINDEX )
- struct sockaddr_in6 *v6 = (struct sockaddr_in6 *) res->ai_addr;
- b_multicast = IN6_IS_ADDR_MULTICAST( &v6->sin6_addr);
+#if defined( WIN32 ) || defined( HAVE_GETADDRINFO )
+ struct sockaddr_in6 *v6 = (struct sockaddr_in6 *)res->ai_addr;
+ b_multicast = IN6_IS_ADDR_MULTICAST( &v6->sin6_addr );
#endif
}
p += sprintf( p, "c=IN IP4 %s", psz_destination ? psz_destination : "0.0.0.0" );
- if( net_AddressIsMulticast( p_media, psz_destination ? psz_destination : "0.0.0.0" ) )
+ if( ( psz_destination != NULL )
+ && net_AddressIsMulticast( p_media->p_vod, psz_destination ) )
{
/* Add the ttl if it is a multicast address */
- p += sprintf( p, "/%d\r\n", p_media->i_ttl );
+ p += sprintf( p, "/%d\r\n", p_media->i_ttl );
}
else
{