Closed cagney closed 1 year ago
I'm guessing the call is:
ret = sendto(rs->control_svc->fd, pkt->data, pkt->data_len, 0, &rs->naddr.sa, addrlen);
if (ret < 0)
DPRINTF(E_LOG, L_RAOP, "Could not send playback sync to device '%s': %s\n", rs->devname, strerror(errno));
off hand, how does owntone handle the optional .sin_len and .sin6_len?
To answer my own question, getaddrinfo(3) et.al. are being used so that field shouldn't be a problem. Nice!
Nice work looking into the error, sounds like you are familiar with C/networking? Sorry to hear the amp isn't working. As you could see it looks like it just isn't accepting the sync packets, which is odd. I haven't heard of an error like this before. There is no firewall in-between, right? You could try forcing Airplay 2 with the raop_disable
setting in the config file, but I'm not too optimistic it will be any different.
Since the amp supports Airplay 1 another, more difficult, thing you could try would be try with another Airplay 1 client, for instance iTunes for Windows, and then grab the traffic with Wireshark. Airplay 1 is unencrypted, so if it works it might be possible to spot the difference or a clue.
"Invalid argument" suggests EINVAL so, presumably, one of the parameters to sendto() isn't right.
Yes, that's true, I was thinking it was the fd. That code is pretty battle-tested, so I think it is unlikely to be anything else, unless it's something that just shows up in NetBSD. Can you run OwnTone in gdb and print the parameter values?
If you have a Linux platform it might also be worth checking if OwnTone on that displays the same behavior.
Closing, no feedback
Trying to get owntone to send music to a RX-V477 from a NetBSD m/c:
The raop part of the logs contain: