From: Christophe Massiot Date: Sun, 9 Jun 2002 22:57:00 +0000 (+0000) Subject: * IPv6 multicast support, courtesy of Remco Poortinga ; X-Git-Tag: 0.5.0~1307 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=d68093864dac12643792af743be3edc15743f4a5;p=vlc * IPv6 multicast support, courtesy of Remco Poortinga ; * Mac OS X icons and fixes, courtesy of Benjamin Mironer . --- diff --git a/AUTHORS b/AUTHORS index 04cfadccc0..e5f2417759 100644 --- a/AUTHORS +++ b/AUTHORS @@ -299,6 +299,10 @@ D: Many ports (Mac OS X, iPAQ, *BSD, Solaris...) D: documentation S: France +N: Benjamin Mironer +E: bmironer@noos.fr +D: Mac OS X fixes + N: Arkadiusz Miskiewicz E: misiek@pld.ORG.PL D: autoconf and Makefile patches @@ -320,6 +324,11 @@ E: pomel@via.ecp.fr C: pomel S: France +N: Remco Poortinga +E: poortinga@telin.nl +D: IPv6 multicast patch +S: Netherlands + N: Jean-Paul Saman E: jpsaman@wxs.nl D: libmad plug-in diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib index 3f218ae647..11e88ca190 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib @@ -3,13 +3,13 @@ IBDocumentLocation - 13 255 500 426 0 0 1152 746 + 28 196 500 426 0 0 1152 746 IBEditorPositions 235 401 417 350 182 0 0 1152 746 29 - 797 461 262 44 0 0 1152 746 + 809 162 262 44 0 0 1152 746 445 347 561 370 117 0 0 1152 746 460 @@ -19,8 +19,8 @@ 248.0 IBOpenObjects - 528 29 + 528 IBSystem Version 5Q125 diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib index 24c78150a2..b468ee66c1 100644 Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib differ diff --git a/extras/MacOSX/Resources/divx.icns b/extras/MacOSX/Resources/divx.icns new file mode 100644 index 0000000000..7e2ba65c38 Binary files /dev/null and b/extras/MacOSX/Resources/divx.icns differ diff --git a/extras/MacOSX/Resources/generic.icns b/extras/MacOSX/Resources/generic.icns new file mode 100644 index 0000000000..28dc564a3e Binary files /dev/null and b/extras/MacOSX/Resources/generic.icns differ diff --git a/extras/MacOSX/Resources/mpeg.icns b/extras/MacOSX/Resources/mpeg.icns new file mode 100644 index 0000000000..9af347afe7 Binary files /dev/null and b/extras/MacOSX/Resources/mpeg.icns differ diff --git a/extras/MacOSX/Resources/mpeg1.icns b/extras/MacOSX/Resources/mpeg1.icns new file mode 100644 index 0000000000..a09f3d0ec9 Binary files /dev/null and b/extras/MacOSX/Resources/mpeg1.icns differ diff --git a/extras/MacOSX/Resources/mpeg2.icns b/extras/MacOSX/Resources/mpeg2.icns new file mode 100644 index 0000000000..ae8649ed14 Binary files /dev/null and b/extras/MacOSX/Resources/mpeg2.icns differ diff --git a/extras/MacOSX/Resources/mpeg4.icns b/extras/MacOSX/Resources/mpeg4.icns new file mode 100644 index 0000000000..9da18bf909 Binary files /dev/null and b/extras/MacOSX/Resources/mpeg4.icns differ diff --git a/extras/MacOSX/vlc.pbproj/project.pbxproj b/extras/MacOSX/vlc.pbproj/project.pbxproj index cc44d2282d..cd5d5917b6 100644 --- a/extras/MacOSX/vlc.pbproj/project.pbxproj +++ b/extras/MacOSX/vlc.pbproj/project.pbxproj @@ -96,6 +96,12 @@ F51352810170659801A80A1F, F51352820170659801A80A1F, F52EEB2F017E3F8C01A80A1F, + F5C6804202B407B701B7B2C9, + F5C6804302B407B701B7B2C9, + F5C6804402B407B701B7B2C9, + F5C6804502B407B701B7B2C9, + F5C6804602B407B701B7B2C9, + F5C6804702B407B701B7B2C9, ); isa = PBXGroup; path = Resources; @@ -204,12 +210,12 @@ CFBundleTypeExtensions - VOB + vob CFBundleTypeIconFile vlc.icns CFBundleTypeName - VOB File (DVD) + VOB File (DVD Video) CFBundleTypeRole Viewer @@ -222,7 +228,7 @@ CFBundleTypeIconFile vlc.icns CFBundleTypeName - MPEG file + MPEG File CFBundleTypeRole Viewer @@ -230,12 +236,35 @@ CFBundleTypeExtensions avi - asf CFBundleTypeIconFile - vlc.icns + divx.icns + CFBundleTypeName + DivX File + CFBundleTypeRole + Viewer + + + CFBundleTypeExtensions + + m1v + + CFBundleTypeIconFile + mpeg1.icns CFBundleTypeName - DivX + MPEG-1 Video File + CFBundleTypeRole + Viewer + + + CFBundleTypeExtensions + + m2v + + CFBundleTypeIconFile + mpeg2.icns + CFBundleTypeName + MPEG-2 Video File CFBundleTypeRole Viewer @@ -255,11 +284,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.4.0 + 0.4.2 CFBundleSignature VLC# CFBundleVersion - 0.4.0 + 0.4.2 NSMainNibFile MainMenu NSPrincipalClass @@ -286,6 +315,12 @@ F52EEB2A017E3F0701A80A1F, F52EEB2B017E3F0701A80A1F, F52EEB30017E3F8C01A80A1F, + F5C6804802B407B701B7B2C9, + F5C6804902B407B701B7B2C9, + F5C6804A02B407B701B7B2C9, + F5C6804B02B407B701B7B2C9, + F5C6804C02B407B701B7B2C9, + F5C6804D02B407B701B7B2C9, ); isa = PBXResourcesBuildPhase; name = "Bundle Resources"; @@ -358,6 +393,72 @@ settings = { }; }; + F5C6804202B407B701B7B2C9 = { + isa = PBXFileReference; + path = divx.icns; + refType = 4; + }; + F5C6804302B407B701B7B2C9 = { + isa = PBXFileReference; + path = mpeg2.icns; + refType = 4; + }; + F5C6804402B407B701B7B2C9 = { + isa = PBXFileReference; + path = mpeg.icns; + refType = 4; + }; + F5C6804502B407B701B7B2C9 = { + isa = PBXFileReference; + path = generic.icns; + refType = 4; + }; + F5C6804602B407B701B7B2C9 = { + isa = PBXFileReference; + path = mpeg1.icns; + refType = 4; + }; + F5C6804702B407B701B7B2C9 = { + isa = PBXFileReference; + path = mpeg4.icns; + refType = 4; + }; + F5C6804802B407B701B7B2C9 = { + fileRef = F5C6804202B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; + F5C6804902B407B701B7B2C9 = { + fileRef = F5C6804302B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; + F5C6804A02B407B701B7B2C9 = { + fileRef = F5C6804402B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; + F5C6804B02B407B701B7B2C9 = { + fileRef = F5C6804502B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; + F5C6804C02B407B701B7B2C9 = { + fileRef = F5C6804602B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; + F5C6804D02B407B701B7B2C9 = { + fileRef = F5C6804702B407B701B7B2C9; + isa = PBXBuildFile; + settings = { + }; + }; //F50 //F51 //F52 diff --git a/plugins/network/ipv6.c b/plugins/network/ipv6.c index d138b2b979..c9f7aa10f3 100644 --- a/plugins/network/ipv6.c +++ b/plugins/network/ipv6.c @@ -2,10 +2,11 @@ * ipv6.c: IPv6 network abstraction layer ***************************************************************************** * Copyright (C) 2002 VideoLAN - * $Id: ipv6.c,v 1.10 2002/06/01 16:45:34 sam Exp $ + * $Id: ipv6.c,v 1.11 2002/06/09 22:57:00 massiot Exp $ * * Authors: Alexis Guillard * Christophe Massiot + * Remco Poortinga * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -103,6 +104,8 @@ static void getfunctions( function_list_t * p_function_list ) static int BuildAddr( struct sockaddr_in6 * p_socket, char * psz_address, int i_port ) { + char * psz_multicast_interface = ""; + #if defined(WIN32) /* Try to get getaddrinfo() and freeaddrinfo() from wship6.dll */ typedef int (CALLBACK * GETADDRINFO) ( const char *nodename, @@ -143,6 +146,17 @@ static int BuildAddr( struct sockaddr_in6 * p_socket, && psz_address[strlen(psz_address) - 1] == ']' ) { psz_address++; + /* see if there is an interface name in there... */ + if( (psz_multicast_interface = strchr(psz_address, '%')) != NULL ) + { + *psz_multicast_interface = '\0'; + psz_multicast_interface++; + intf_WarnMsg( 3, "Interface name specified: \"%s\"", + psz_multicast_interface ); + /* now convert that interface name to an index */ + p_socket->sin6_scope_id = if_nametoindex(psz_multicast_interface); + intf_WarnMsg( 3, " = #%i\n", p_socket->sin6_scope_id ); + } psz_address[strlen(psz_address) - 1] = '\0' ; #if !defined( WIN32 ) @@ -307,7 +321,22 @@ static int OpenUDP( vlc_object_t * p_this, network_socket_t * p_socket ) } /* Join the multicast group if the socket is a multicast address */ - /* FIXME: To be written */ + if( IN6_IS_ADDR_MULTICAST(&sock.sin6_addr) ) + { + struct ipv6_mreq imr; + int res; + + imr.ipv6mr_interface = sock.sin6_scope_id; + imr.ipv6mr_multiaddr = sock.sin6_addr; + res = setsockopt(i_handle, IPPROTO_IPV6, IPV6_JOIN_GROUP, &imr, + sizeof(imr)); + + if( res == -1 ) + { + intf_ErrMsg( "ipv6 error: setsockopt JOIN_GROUP failed" ); + } + } + if( *psz_server_addr ) {