The XBMC doesn’t implement the Bonjour discovery, but directly tries to retrieve the playlist using the IP+port number of Firefly.
This is true. That’s why you have to specify an IP address in your xbmc settings, and not just let it autodetect.
Firefly doesn’t like this and refuses the TCP connection by returning an ACK with windows size 0.
Firefly doesn’t care. It will happy accept any connection, regardless of how the client knows it’s there.
Is this new behaviour of Firefly? Should it be changed or should XBMC implement the complete Bonjour protocol ?
Nope. It’s fine without it. It would of course be easier to locate daap servers with full bonjour on xbmc, but it’s not strictly necessary.
As far as the packet traces you got:
A TCP SYN that gets a RST is something that’s happening at the stack level. If it were firefly closing the connection, you’d get: SYN, SYN+ACK, ACK, then firefly would register the connection and start the FIN teardown.
Instead, the stack itself is closing the connection with a reset. That means that either:
1. Nothing is listening on the port you tried to connect to
2. The firewall is resetting those connections.
Those are the only two options.