Thanks for the debug log.
There are two interesting things to note:
- CC attempts to find calibre using a "broadcast" scheme. For most people this is the most reliable way to find calibre. For you, the log says that it never works.
- CC also uses "bonjour" (aka zeroconf, mDNS, UPNP) to find calibre. In your case this usually, but not always, works. That matches our experience with bonjour, that it is rather unreliable.
The question: why does the broadcast scheme not work? One possibility is that CC is enumerating the IP addresses available to it, selecting one of them without regard to whether it is WiFi or cellular, then broadcasting on only that address. Another is that it is *not* enumerating the addresses but is instead sending the broadcast to 0.0.0.0, something that does not work on all platforms. Steve will need to chime in at some point with how the broadcast code works on iOS CC. FWIW: Android CC enumerates the IP addresses and sends the broadcast on each of them.
You can test this (if you want) by turning off the cellular connection. After that, if you go to CC's settings then you will probably see the correct 192... address. Now attempt to connect CC to calibre. It will probably work, but at this point we don't know why because it could be bonjour. Whether or not the broadcast worked will be in the CC debug log. If you want to check it yourself, send yourself the log, open it in an editor, go to the end, search up for "ServerScan: Broadcasting" (no quotes), then read down until you see something like "WirelessDevice: Found 1 servers". If the broadcast worked you will see "ServerScan: Received response from <IP>:9090 via Broadcast" just above that line. If you don't want to check it, send it to me.
As for why iOS CC is showing the 10... address, I suspect it is also because iOS CC is taking the first address available to it instead of filtering for a WiFi address.