views:

143

answers:

1

I am playing around a bit with Bonjour and for prototyping I use the Pybonjour library, which seemed to work like a charm for my first trials. However, when I try to create a service that is visible in Finder, I fail hard. I used this page as a reference for the service identifiers to use. The document specifies which services are browseable in Finder.

I tried _afpovertcp._tcp and it appeared instantly in Finder. The two more interesting ones (_webdav._tcp, _ftp._tcp) however, does not. Am I missing some required component, or is this a configuration error (e.g. some built-in firewall enabled by default?). I am using Snow Leopard 10.6.3 for the test.

I also tried the server part on an Ubuntu machine with exactly the same result. Additionally, I noticed that the Terminal.app discovers the FTP server (on both the Ubuntu and OSX server).

EDIT: Update: SMB (_smp._tcp) works, same behavior as AFP.

I am seeing these possibilities:

  • Finder requires something more than just the service string
  • Discovery of FTP and WebDAV services is turned off by default and needs to be enabled somehow
  • Discovery of FTP and WebDAV has been removed in snow leopard (let's hope not!!)
A: 

Instead of using the Finder, try the Bonjour Browser http://www.tildesoft.com/Programs.html . It is a utility for discovering all services with Bonjour. Also of use is the command line utility dns-sd which can be used to simulate publishing services that Bonjour can discover. The command

dns-sd -R "Test Printer Service" _printer._tcp "" 666

simulates a printing service that bonjour will discover. Swap out _printer._tcp with any of the service types to simulate them.

I'm building a iPad app that uses the Bonjour services, so I'm still learning about them too.

Hope this helps.

Rich
Yes, I used a similar tool, and the service is discovered. Also, it is shown in e.g. terminal. But that beats the purpose of it all. I want to be able to browse the service in Finder, without requiring the end user to type any URL or install third-party software.
Krumelur