[avahi] Re: [avahi-commits] r646 - in /trunk: avahi-core/core.h
avahi-core/server.c avahi-core/socket.c avahi-core/socket.h
avahi-daemon/avahi-daemon.conf avahi-daemon/main.c docs/TODO
Marc Krochmal
marc at apple.com
Thu Sep 29 10:23:14 PDT 2005
On Sep 29, 2005, at 9:59 AM, Lennart Poettering wrote:
> Nice to know that someone from Apple takes so much interest in Avahi
> that he takes notice of every commit. ;-)
Avahi is an exciting development for mDNS-SD so I'm interested.
> I wonder if it is a good idea to put such a requirement in an RFC (or
> spec). This is clearly an implementation issue and not a specification
> issue. Whether REUSEADDR/REUSEPORT is set or not, doesn't change the
> protocol behaviour at all, so I guess a SHOULD is what should be put
> here, if at all.
>
> Linux doesn't implement REUSEPORT, and I guess some embedded TCP/IP
> stacks don't implement either REUSEPORT or REUSEADDR, so I think it is
> very odd to require this feature in the spec. In addition the exact
> behaviour of REUSEADDR/REUSEPORT is not well the defined. (we already
> had a discussion about that)
>
> In short: please change this MUST to a SHOULD and please refer to
> REUSEADDR in addition to REUSEPORT.
OK, I agree that it should be a SHOULD. I'll make a note to change it.
> Hrm. You know that I don't think that mDNS is reliable when multiple
> stacks run on the same host. I hope I already made my reasoning for
> that clear.
Well I didn't spell out *all* the details, but this is what I said...
"Regarding the statement on Avahi's web site, I've spoken to Lennart
who works on Avahi about it since I think he's overstating the
fallout. While Lennart is correct that two responders on the same
machine could conflict, since they might have different known answer
lists and one responder could steal the unicast responses of the
other responder, these issues won't actually result in the protocols
failing, since mDNS is resilient to packet loss, so it can cope with
these conflicts. While it's suboptimal to have multiple responders
on the same machine, you should be able to run Avahi, Howl, and
Bonjour on the same Linux machine without any problems."
> The reason why I added this disallow-other-stacks option was primarily
> security. Some guy came up on IRC and needed a way to make sure that
> all mDNS traffic sent out from or recieved by the local machine was
> done through Avahi and *only* through Avahi. Blocking port 5353 for
> other apps by not setting REUSEADDR is an efficient way to do this.
Interesting. OK that makes sense, but I just fear that setting this
by default would break some applications that have embedded versions
of mDNS. I've talked to many developers over the years and have
tried to convince them that using a single mDNSResponder was a good
idea, but they still insisted on embedding the code into their
application, so it would be unfortunate if those applications now
stopped working because Avahi was installed. It would also be nice
to have Avahi and Darwin mdnsd running on the same machine without
any *major* conflicts.
>> Could you at least set SO_REUSEADDR by default?
>
> Ok, I did so in r652.
>
> BTW, could you please reply to commits directly to the main mailing
> list instead of just me?
Sure, no problem. Obviously some e-mails are only meant for you
alone, but for the rest I can respond to the list.
> I modified the configuration of avahi-commits now in away that it sets
> a Reply-To: header pointing to the main mailing list. If you don't
> object I will forward all older mails to the main mailing list now?
Sure, go ahead.
-Marc
More information about the avahi
mailing list