Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: DSS on SuSE 9.3 64 bit -> SDP not found -> 404




> -----Original Message-----
> From: Pit [mailto:email@hidden]
> Sent: Tuesday, February 13, 2007 4:02 PM
> To: Leon Kolchinsky; email@hidden
> Subject: RE: DSS on SuSE 9.3 64 bit -> SDP not found -> 404
> 
> Thanks for your reply. I checked my network config and didn't found
> any failures. I have multiple domain-names accociated with my ip.
> 
> The configuration files look like:
> /etc/hosts:
> 127.0.0.1 localhost
> 1.2.3.4 subdomainname.onlinehome-server.info subdomainname
> 1.2.3.4 abc.net
> 
> /etc/resolv.conf:
> search onlinehome-server.info ver a.b.c.d
> nameserver 1
> nameserver 2
> nameserver 3
> 
> I changed the first entry in the /etc/hosts to
> 127.0.0.1 abc.net localhost
> 
> After restarting Darwin the admin-area shows me the correct entries
> for dns and server -> abc.net
> 
> But the 404 error still exists.
> 
> BTW, I also tried to bind darwin to the server ip by using the
> bind_ip_addr property. After restarting darwin with these settings i
> got "FATAL: The specified RTSP listening IP address doesn't exist"
> Errors in the Error.log
> 
> I hope you can help.
> 

Try this patch from Denis Ahrens -
http://lists.apple.com/archives/Streaming-server-dev/2005/Jan/msg00002.html

I'm quoting here:
-----------------
Hi

It seems that even DSS 5.5 (revision 480) still uses the wrong
source bind adress when answering RTCP packets. Not a big problem
but when the broadcaster is behind a NAT or firewall then this
can result in problems.


My DSS is running on a machine with two IP adresses.


192.168.1.10 (default interface) and
192.168.1.20


my DSS is bound to 192.168.1.20 but the RTCP answer packets
to the Applebroadcaster are still coming from 192.168.1.10
which is wrong. My NAT has no state with 192.168.1.10 and
throws the packets away.


The following simple patch corrects this problem:

Index: ReflectorStream.cpp
===================================================================
RCS file: /cvs/apsl/StreamingServer/APIModules/QTSSReflectorModule/
ReflectorStream.cpp,v
retrieving revision 1.54
diff -u -r1.54 ReflectorStream.cpp
--- ReflectorStream.cpp 2004/09/25 11:46:58 1.54
+++ ReflectorStream.cpp 2005/01/23 05:23:46
@@ -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,


Also the comment above this code says otherwise this patch fixes my
problem. maybe the comment is not correct anymore.

Finished quoting.

Also consider "RecieverReport patch for DSS 5.5" from Denis (As you can see
it includes the first
one)(http://lists.apple.com/archives/Streaming-server-dev/2005/Aug/msg00009.
html):
1. it fixes the source ip-adress of the reciever reports. they are
   now send from the ip-address where the DSS is bind to.

2. it recalculates the dest ip-address with every request (5sec), so you get
the reports even when the ip-address of the Broadcaster changes.

3. the destport of the report is now based on the sourceport of the
   request. so even when there is a NAT in between you get the report.


Index: APIModules/QTSSReflectorModule/ReflectorStream.cpp
===================================================================
RCS file:
/cvs/apsl/StreamingServer/APIModules/QTSSReflectorModule/ReflectorStream.cpp
,v
retrieving revision 1.55
diff -u -r1.55 ReflectorStream.cpp
--- ReflectorStream.cpp 2005/07/26 23:56:10     1.55
+++ ReflectorStream.cpp 2005/08/13 19:01:20
@@ -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,
@@ -1412,7 +1412,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) && (thePacket->IsRTCP()))
             {
                 // If the source is multicast, this shouldn't be necessary
 
Assert(!SocketUtils::IsMulticastIPAddr(theSender->fStream->fStreamInfo.fDest
IPAddr));
@@ -1422,8 +1422,8 @@
                 
                 // RTCPs are always on odd ports, so check to see if this
port is an
                 // RTP port, and if so, just add 1.
-                if (!(theRemotePort & 1))
-                    theSender->fStream->fDestRTCPPort++;                
+//              if (!(theRemotePort & 1))
+//                  theSender->fStream->fDestRTCPPort++;                
             }
             thePacket->fStreamCountID =
++(theSender->fStream->fPacketCount);
             thePacket->fBucketsSeenThisPacket = 0;



You may also read these threads about IP binding:
http://lists.apple.com/archives/Streaming-server-users/2004/Mar/msg00223.htm
l

http://lists.apple.com/archives/Streaming-server-users/2003/Feb/msg00303.htm
l


I don't know if this will help you, I've never tried the above things.
It would be interesting to here about your progress.

Regards,
Leon Kolchinsky


> Best Reg
> > ----- Original Message -----
> > From: "Leon Kolchinsky" <email@hidden>
> > To: "'Pit'" <email@hidden>, email@hidden
> > Subject: RE: DSS on SuSE 9.3 64 bit -> SDP not found -> 404
> > Date: Tue, 13 Feb 2007 11:16:37 +0200
> >
> >
> >
> >
> > > -----Original Message-----
> > > From: streaming-server-dev-
> > > bounces+leonk=email@hidden [mailto:streaming-
> > > server-dev-bounces+leonk=email@hidden] On
> Behalf
> > > Of Pit
> > > Sent: Monday, February 12, 2007 9:13 PM
> > > To: email@hidden
> > > Subject: DSS on SuSE 9.3 64 bit -> SDP not found -> 404
> > >
> > > I could successfully build version 5.6.0 rev 498 on a SuSE 9.3 with
> gcc3.4
> > >
> > > Unfortunately I can't access any sdp files I created. When I access
> > > a sdp the server returns always a 404.
> > >
> > > When I change the ip in the sdp to 127.0.0.1 the server returns a
> > > correct rtsp response with the requested sdp.
> > >
> > > It's also strange that the admin-area shows in the general tab:
> > > Server: localhost"
> > > DNS Name (default): localhost".
> > >
> > > I think this should point to my server ip and dns.
> > >
> > > Here is one of my sdp's:
> > > v=0
> > > o=-  3272359420 3272359471 IN IP4 1.2.3.4
> > > s=a
> > > c=IN IP4 1.2.3.4
> > > a=tool:sdr v3.0
> > > a=type:broadcast
> > > m=audio 12000 RTP/AVP 5
> > > m=video 48000 RTP/AVP 34
> > >
> > >
> > > Could this be a problem concerning 64 bit ...?
> > > Because I could successfully build and use the same version (5.6.0
> > > rev 498) on a 32 bit system without these strange 404 errors.
> > >
> >
> > I think you have misconfigured your network.
> >
> > Recheck your configs (yours should be in similar manner):
> >
> > In /etc/hosts:
> > 127.0.0.1	localhost yourserverdnsname
> >
> > In /etc/resolv.conf:
> > nameserver IPofDNSserver1
> > nameserver IPofDNSserver2
> > search yourdomainname
> > domain yourdomainname
> >
> >
> > This is how it looks on adminpage of my server:
> > Server Snapshot
> > Server: 	video
> > Status: 	Started Tue, 13. Feb 2007 11:01:47
> > Current Time On Server: 	Tue, 13. Feb 2007 11:03:43
> > Up Time: 	1 min 56 sec
> > DNS Name (default): 	video
> > Server Version: 	5.5.3
> > Server API Version: 	4.0
> > CPU Load: 	1.00%
> > Current # of Connections: 	0
> > Current Throughput: 	0 bps
> > Total Bytes Served: 	0 Bytes
> > Total Connections Served: 	0
> >
> > > Thanks for your help.
> > >
> > > Peter
> > >
> > > --
> >
> >
> > Leon Kolchinsky
> 
> >
> 
> 
> --
> _______________________________________________
> Search for products and services at:
> http://search.mail.com
> 
> Powered by Outblaze

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Streaming-server-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/streaming-server-dev/email@hidden

This email sent to email@hidden

References: 
 >RE: DSS on SuSE 9.3 64 bit -> SDP not found -> 404 (From: Pit <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.