mirror of
https://git.freebsd.org/ports.git
synced 2025-07-09 13:29:24 -04:00
DSS uses the IP addess where it is bind to and not the IP addess of the default interface. o Use the correct port number and not a generated one. o Bump PORTREVISION, accordingly. These are important for Broadcaster behind a NAT. Submitted by: Denis Ahrens <denis@berlin.ccc.de> References:: http://lists.apple.com/archives/streaming-server-dev/2004/May/msg00000.html Sponsored by: Ensure Technology Ltd.
34 lines
1.9 KiB
C++
34 lines
1.9 KiB
C++
--- APIModules/QTSSReflectorModule/ReflectorStream.cpp.orig Thu Jun 10 09:03:34 2004
|
|
+++ APIModules/QTSSReflectorModule/ReflectorStream.cpp Sun May 1 19:53:44 2005
|
|
@@ -179,7 +179,7 @@
|
|
theRRWriter++;
|
|
*theRRWriter = htonl(theSsrc);
|
|
theRRWriter++;
|
|
- *theRRWriter = FOUR_CHARS_TO_INT('Q','T','S','S');
|
|
+ *theRRWriter = htonl(FOUR_CHARS_TO_INT('Q','T','S','S'));
|
|
theRRWriter++;
|
|
*theRRWriter = htonl(0);
|
|
theRRWriter++;
|
|
@@ -381,11 +381,11 @@
|
|
// specified by the source info, we can use that to demultiplex separate broadcasts on
|
|
// the same port. If the src IP addr is 0, we cannot do this and must dedicate 1 port per
|
|
// broadcast
|
|
- fSockets = sSocketPool.GetUDPSocketPair(INADDR_ANY, fStreamInfo.fPort, fStreamInfo.fSrcIPAddr, 0);
|
|
+ fSockets = sSocketPool.GetUDPSocketPair(fStreamInfo.fDestIPAddr, fStreamInfo.fPort, fStreamInfo.fSrcIPAddr, 0);
|
|
if ((fSockets == NULL) && fStreamInfo.fSetupToReceive)
|
|
{
|
|
fStreamInfo.fPort = 0;
|
|
- fSockets = sSocketPool.GetUDPSocketPair(INADDR_ANY, fStreamInfo.fPort, fStreamInfo.fSrcIPAddr, 0);
|
|
+ fSockets = sSocketPool.GetUDPSocketPair(fStreamInfo.fDestIPAddr, fStreamInfo.fPort, fStreamInfo.fSrcIPAddr, 0);
|
|
}
|
|
if (fSockets == NULL)
|
|
return QTSSModuleUtils::SendErrorResponse(inRequest, qtssServerInternal,
|
|
@@ -1388,7 +1388,7 @@
|
|
{
|
|
// Check to see if we need to set the remote RTCP address
|
|
// for this stream. This will be necessary if the source is unicast.
|
|
- if ((theRemoteAddr != 0) && (theSender->fStream->fDestRTCPAddr == 0))
|
|
+ if ((theRemoteAddr != 0) && (theSender->fStream->fDestRTCPAddr == 0) && (thePacket->IsRTCP()))
|
|
{
|
|
// If the source is multicast, this shouldn't be necessary
|
|
Assert(!SocketUtils::IsMulticastIPAddr(theSender->fStream->fStreamInfo.fDestIPAddr));
|