[patch] SLP support (+ question)

Brad Hards bhards at bigpond.net.au
Sun Sep 22 23:27:00 EST 2002

Hash: SHA1

On Mon, 23 Sep 2002 08:03, jw schultz wrote:
> On Mon, Sep 23, 2002 at 12:38:14AM +1000, Brad Hards wrote:
> > The attached patch adds "first draft" support for service location
> > protocol, using OpenSLP  (http://www.openslp.org). This allows you to
> > automagically discover all the rsync servers on your network (which is
> > defined in terms of your SLP configuration - typically equal to multicast
> > scope, but you can change it around with Directory agents).
> Why?  This looks like bloat to me.  SLP is really meant for
> GUI client support.  Are their any GUI interfaces that are
> using rsync that also want SLP?.  Use of an rsync server
> is by invitation only.  I don't recall seeing anyone ask for
> this in at least the last 6 months.
The "why" is a bit involved. I am interested in systems that are usable by 
normal people. The main issue with networking systems is that it takes a lot 
of configuration on both the network layer (eg for an IP address) and the 
application layer (for naming and general configuration).
As an example, consider a couple of doctors at a medical conference. They both 
have little laptops, and after some discussion, doctor A wants to give doctor 
B a copy of a document. They don't have a fileserver or anything like that, 
but they have built in wireless, or a USB host-to-host cable, or some 
link-layer medium.

Question: what are the chances that they can get that file from one computer 
to another?

Answer: right now, only if they both have floppy disks and the document will 
fit on a floppy. Otherwise, they have to email it when they get home in a 

I think that is failing "normal" people. You shouldn't need network admin 
skills to get one file from one laptop to another.

So here is a simple example of how to solve this problem, involving LInux and 
some other tools I'm working on:
* Users plug in the USB host-to-host cable to both ends.
* Linux hotplug mechanism loads the right driver(s) for the USB cable on each 
* Linux hotplug mechanism invokes a link-local address autoconfiguration tool 
to provide unique IP addresses on each host.
* Linux hotplug mechanism invokes a multicast DNS responder on each host, to 
do name<->IP lookups.
* Linux hotplug mechanism starts rsync in daemon mode on each host, for an 
"exchange" service
* rsync registers with slpd.
* User invokes GUI tool, which uses SLP to determine the available rsync 
services. There might be more than one if the link-layer has more than two 
machines on it, like a wireless link.
* User browses for the various "exchange" services that are being offered 
* User uses GUI tool to copy file.

Why rsync? Nice tool, widely available, and [comment] lines mean that the 
archives are self-describing.

As for GUI support, there are no clients yet. SLP history shows that client 
support lags server support. There is some general SLP support being added to 
KDE in 3.1 and 3.2 (done by Tim Jansen). Of course, clients can't do much 
without server support, and service templates. 

I agree that adding SLP support is going to make rsync bigger. Here is a naive 
build of both a clean 2.5.5 version, and one with SLP added.
553787 Sep 23 08:44 ../clean/rsync-2.5.5/rsync
556226 Sep 23 08:39 ./rsync
Of course, you also need the shared library:
54595 Sep 22 19:29 /usr/lib/libslp.so.1.0.0

I don't think that is much "bloat", but it is a compile time option if you 
don't want to use it.

> With the value in doubt we could at least wait until the
> "final draft" of SLP.
SLPv2 has issued RFCs and is on standards-track. There might be a SLPv3, but 
the API is pretty unlikely to change.

> Having said all that.  If the various file-managers (As used
> in KDE, GNOME etc), actually start supporting rsync
> transfers and SLP it might be worth adding.  The time to add
> it, if ever, would be when we get requests from the
> file-manger developers who can show us the advantage in their
> source trees.
Obviously it needs to be a completed package. However I think some form of 
service-location is worth while (and there are other options, apart from 
SLP), and I think this is a problem worth solving. An rsync kioslave has been 
talked about before, and I think it'd be cool to be able to put "rysnc://" 
into konqueror and get back a list of local services.

- -- 
http://conf.linux.org.au. 22-25Jan2003. Perth, Australia. Birds in Black.
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org


More information about the rsync mailing list