After some testing around the multi-homed jmmdns interface, some obversations that might contribute to improving it.
I have a network which is constantly up/down or going out of range (mobile robots), so that is an important part of it. With the current code, I had to implement my own NetworkTopologyListener to handle this.
This gets messy when wanting to add listeners. With the current jmmdns interface, its a one-shot call. It has no memory, so when new interfaces go up, or old ones go down and then up again, it doesn't remove/re-add them.
I had to extend the jmmdns interface to do this, save them when I called my own addListener api, and then individually add them from this saved list to the jmdns interfaces whenever the network topology callback fired. Which ultimately means I end up ignoring jmmdns' addListeners and doing all the grunt work underneath. The very same thing occurs with adding services.
I expect this should be expected behaviour. All of this work would actually be nicely buried under the hood and would make the jmmdns api (specifically addListener, addService) actually usable. A network topology callback might still be useful, but jmmdns could have its own callback which does all the above mentioned work and then calls the user's callback.
Apart from that, jmmdns is a nice start :)