PDA

View Full Version : Can't connect to Internet Radio



Ringerrr
2006-08-11, 04:07
SlimServer Version: 6.3.1
Player Firmware Version: 40
Host: Intel Mac OS X 10.4.7 (firewall ports open and enabled)
Using Squeezebox 1

Get the following error message (from the Web Interface) when I attempt to connect to any Internet Radio Stations: There was an error loading the remote feed for (for example) SHOUTcast Internet Radio: (Failed to connect to content.us.squeezenetwork.com:8080. Perl's error is 'Resource temporarily unavailable'. )

On the squeezebox display itself I get the messages: 'failed to parse' and 'failed to connect' to (something like) us.squeezenetwork.com.

I thought, with SB1, I don't have access to the SqueezeNetwork - (certainly it doesn't give me a PIN so I can't register my player). Does this mean I can no longer receive Internet Radio at all without buying a whole new Squeezebox (despite the fact it was working fine until just a few weeks ago.... about the time that the Transporter was announced, co-incidentally)?

Any help/advice gratefully received....

andyg
2006-08-11, 07:21
We use SqueezeNetwork to store the list of Shoutcast stations, so your SlimServer is just trying to download a small file from there to get this list. That error means it's having some problem downloading the file.

You can try downloading it with a web browser to make sure your connection is OK. If this works and SlimServer still doesn't work, you may need to set a proxy server in SlimServer settings.

http://content.us.squeezenetwork.com:8080/shoutcast/index.opml

Ringerrr
2006-08-11, 07:41
Andy,

Thanks for the response. Yes, I can access the file fine through a web browser, but not through slimserver (either using the Squeezebox itself, or using the web interface), for some reason. You mention that changing a proxy server setting might resolve the issue - please advise how to go about doing this (particularly because I don't use a proxy server on my local network, to the best of my knowledge). Thanks in advance....

Ringerrr
2006-08-11, 07:59
Thanks for the suggestion, Mark. Ummmm. Can't see why the firewall would be blocking SlimServer. Like I say, it was working fine up until like a week or so ago, when it suddenly stopped working. I have ports 3483 open for both TCP & UDP and 9000 open for TCP traffic only - both on my Mac's own firewall and the one built into my Linksys ADSL Router. According to the documentation I've read that should do it. Right?

Ringerrr
2006-08-11, 11:43
FYI, looking in log.txt reveals the following:

2006-08-11 19:26:44.2403 ERROR: AsyncHTTP: Couldn't resolve IP address for: content.us.squeezenetwork.com

Any ideas why it can't resolve the IP address?

andyg
2006-08-11, 11:53
No, but you could try increasing your radio station timeout. Also, running with --d_http_async will provide more information about DNS lookups.

Ringerrr
2006-08-11, 12:07
Thanks again Andy.

Increasing the radio station timeout parameter just means it takes longer to return the same error. Adding --d_http_async logging revealed the following diagnostic information:

2006-08-11 19:26:44.2403 ERROR: AsyncHTTP: Couldn't resolve IP address for: content.us.squeezenetwork.com

2006-08-11 20:02:56.9404 SimpleAsyncHTTP: GETing http://content.us.squeezenetwork.com:8080/shoutcast/index.opml
2006-08-11 20:02:56.9409 AsyncHTTP: Starting async DNS lookup for [content.us.squeezenetwork.com] using server [127.0.0.1] [timeout 30]
2006-08-11 20:03:26.9427 ERROR: AsyncHTTP: Couldn't resolve IP address for: content.us.squeezenetwork.com

2006-08-11 20:03:26.9613 SimpleAsyncHTTP(http://content.us.squeezenetwork.com:8080/shoutcast/index.opml) destroy called.

Any ideas why SlimServer is using the locahost for DNS lookups rather than the gateway address (192.168.1.1) that it should be/was using?

andyg
2006-08-11, 12:11
Ah OK, so check your DNS settings to make sure 127.0.0.1 is not listed as a DNS server in /etc/resolv.conf.

Ringerrr
2006-08-11, 16:43
Nice suggestion Andy! Unfortunately, looking at /etc/resolv.conf reveals the following:

domain WAG54GX2
nameserver 212.42.1.68
nameserver 212.42.1.60

...where WAG54GX2 is the name of my Linksys router and 212.42.1.68 and 212.42.1.60 are the correct DNS entries supplied by my ISP that have been programmed into the router (which has a LAN address of 192.168.1.1). Hmmmm....so why is it that SlimServer is looking to 127.0.0.1 to resolve the content.us.squeezenetwork.com domain?

Incidentally, I wonder if this issue may be to do with upgrading to 6.3.1 - everything worked fine under 6.2 (from memory).....

andyg
2006-08-11, 17:11
Hmm I need to look into how Net::DNS finds nameservers, there may be a bug in there. When you run with --d_http_async, there is a message right at startup and looks like this:

2006-08-11 20:09:19.9237 Async: Verifying if we can use nameserver 192.168.100.1...
2006-08-11 20:09:19.9238 Testing lookup of www.google.com
2006-08-11 20:09:19.9525 Lookup successful, using 192.168.100.1 for DNS lookups

Does this check fail for you?

The reason this problem didn't exist in 6.2 was because it used the gethostbyname call. The reason we can't use that anymore is because it blocks SlimServer for many seconds when it can't resolve something. See bugs 1627 and 3309.

andyg
2006-08-11, 18:24
So here is how Net::DNS finds a DNS server. The default is 127.0.0.1 so if it can't find another server using any of these methods it will use localhost.

/etc/resolv.conf
~/.resolv.conf (home dir)
./.resolv.conf (current dir)
RES_NAMESERVERS environment variable

These are all read from top to bottom, with anything found overwriting a previously found item. So if you have the environment variable RES_NAMESERVERS set, it'll overwrite your normal resolv.conf value. You could use this variable to manually set the DNS server if all else fails.

Ringerrr
2006-08-12, 14:56
Don't mean to sound stupid, but ..errr.. how do I start Slimserver with the --d_http_async setting from a Mac? Because launching Slimserver is done through a System Preferences dialog, there doesn't appear to be any way of modifying the way it is invoked.

...and when I change the parameter in Slimserver settings, it is apparently lost/reset when I stop/restart the service....

P.S. Interestingly, if I stop and start Slimserver manually now the problem seems to go away (i.e. it picks up the correct resolve.conf settings I posted above earlier - could this problem be something I wonder to do with the Slimserver service starting up automatically too early on boot up before all the networky-stuff is initialised)?

andyg
2006-08-12, 14:59
Open up a Terminal window.

cd ~/Library/PreferencePanes/SlimServer.prefPane/Contents/server/

./slimserver.pl --d_http_async

Ringerrr
2006-08-13, 01:55
A-ha! Thanks...that worked great. Here's the output (which again looks fine now since stopping and restarting SlimServer):

2006-08-13 09:45:51.4384 AsyncHTTP: Verifying if we can use nameserver 212.42.1.68...
2006-08-13 09:45:51.4385 Testing lookup of www.google.com
2006-08-13 09:45:51.4767 Lookup successful, using 212.42.1.68 for DNS lookups

...all of which implies to me it's still something to do with rebooting the Mac (something I rarely have to do) and SlimServer starting up automatically before the resolv.conf file had been correctly populated. Based on the contents of this thread, I think the resolution is to either:

1) start SlimServer manually (rather than automatically) from System Preferences once the OS is fully up, or,
2) make a static copy of the current, valid resolv.conf file (assuming that those settings are unlikely to change) in my ~ directory (called .resolv.conf)

Thanks very much once again Andy for your help - you've been incredible.

Regards,

Huw

rew1000
2006-11-25, 15:17
I've been having the same problem when using AlienBBC since I upgraded to slimserver 6.5.0. This is also on a Mac running OS X 10.4. When booting or waking from sleep, it takes several seconds to acquire a wireless signal and get networking configured. During this time, /etc/resolv.conf is not present. If slimserver starts during this time, it cannot find a working DNS server. After a few seconds, DNS lookups work fine for other applications, but slimserver cannot resolve URLs unless it is restarted.

The workarounds suggested by ringerrr are really helpful, but not ideal. Can anyone suggest a way of delaying slimserver booting, or getting slimserver to refresh its choice of nameserver when it fails to resolve a name?

(Or failing that, enabling a local nameserver so that lookup requests to localhost will succeed. Or even a way to restart slimserver remotely?)

Many thanks...

Richard

e.g.

Booted at 2006-11-25 14:39:10

2006-11-25 14:39:43.1852 Async Networking init...
2006-11-25 14:40:14.0001 Aysnc: No DNS servers responded, you may have trouble with network connections. Please check your network settings.

...

2006-11-25 16:35:17.9555 ERROR: Async: Couldn't resolve IP address for: www.bbc.co.uk

2006-11-25 16:35:17.9561 ERROR: scanRemoteURL: Can't connect to remote server to retrieve playlist: Couldn't resolve IP address for: www.bbc.co.uk.

SPotter
2009-01-04, 10:25
I have same problem with Squeezebox 2 - since I moved from Montreal to Truro
!!??
"Failed to Parse" is an issue with the web page content - not DNS
My guess is Logitech changed something without testing for compatability with older products.
I'll dig further, later.
...
(later:-)
OK There are two error messages:-
1) "Failed to parse http://www.slimdevices.com/picks/radio.opml"
2) "Failed to connect to http://www.slimdevices.com/" !!???
I tried several DNS addresses in (squeezebox) network set up - no difference.
Both URLs are accessible from other PCs on the same LAN (same subnet).
Accessible from browser on same machine as slimserver?
(In this case a FreeBSD 6.2 box) - No -> oh?
How about another URL from that machine? - No -> oh?
OK ping router from that machine)? - Yes
ping my ISP (eastlink.ca) (from that machine)? - No -> oh? (It was working a couple of days ago)
Check ip address that router is using - write it down (should come from ISP)
check /etc/resolv.conf - match? present? - No!!

OK - add ISP DNS address (from router) to /etc/resolv.conf

Ping a website - OK
browse to http://www.slimdevices.com - OK
browse to http://www.slimdevices.com/picks/radio.opml - OK

I expect squeezebox will now work, too (it is downstairs! - I'll report back if it doesn't)
:-)

Merde: It doesn't: Same errors: failed to parse, failed to connect !!???

OK Let's try restarting the slimserver:-
/usr/local/etc/rc.d/slimserver.sh stop
/usr/local/etc/rc.d/slimserver.sh start

(Interruption: wife having trouble logging in, again, to hrc canada epass services - as usual)

OK internet radio working on squeezebox now?
Well, if I browse to server:9000 I can pick Internet Radio=>Slim Devices Picks - OK
Downstairs: squeezebox access now? YES :-)))