------- Original Message -------
El domingo, 28 de mayo de 2023 a las 12:12, Juan Orti escribió:
I don't understand why it's not working, as the service listens on the :: address. Maybe it's using a socket option that it's causing this? I need to investigate this further.
# netstat -putan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::3003 :::* LISTEN 2/AdGuardHome
tcp 0 0 :::54 :::* LISTEN 2/AdGuardHome
udp 0 0 :::54 :::* 2/AdGuardHome
# cat /proc/net/udp6
sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
4718: 00000000000000000000000000000000:0036 00000000000000000000000000000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 38510801 2 0000000073476783 0
After stracing the AdGuardHome process, I can see that the UDP packet is indeed reaching the service but it's the reply that fails to be sent:
11 10:25:04.445902 recvmsg(25UDPv6:[38993134],
11 10:25:04.446238 <... recvmsg resumed>{msg_name={sa_family=AF_INET6, sin6_port=htons(33308), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fddc:f797:78ef:10::b46", &sin6_addr), sin6_scope_id=0}, msg_namelen=112 => 28, msg_iov=[{iov_base="\246\245\1 \0\1\0\0\0\0\0\1\3www\6google\3com\0\0\1\0\1\0\0)\4\320\0\0\0\0\0\f\0\n\0\10\207a\315\224\245\253\v\37", iov_len=65535}], msg_iovlen=1, msg_control=[{cmsg_len=36, cmsg_level=SOL_IPV6, cmsg_type=0x32}], msg_controllen=40, msg_flags=0}, 0) = 55 <0.000059>
11 10:25:04.446371 futex(0xc000064548, FUTEX_WAKE_PRIVATE, 1
11 10:25:04.446415 <... futex resumed>) = 1 <0.000032>
11 10:25:04.446461 recvmsg(25UDPv6:[38993134],
11 10:25:04.446658 <... recvmsg resumed>{msg_namelen=112}, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000097>
11 10:25:04.447130 sendmsg(25UDPv6:[38993134], {msg_name={sa_family=AF_INET6, sin6_port=htons(33308), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "fddc:f797:78ef:10::b46", &sin6_addr), sin6_scope_id=0}, msg_namelen=28, msg_iov=[{iov_base="\246\245\201\200\0\1\0\1\0\0\0\0\3www\6google\3com\0\0\1\0\1\300\f\0\1\0\1\0\0\0\n\0\4\330\357&x", iov_len=48}], msg_iovlen=1, msg_control=[{cmsg_len=36, cmsg_level=SOL_IPV6, cmsg_type=0x32}], msg_controllen=40, msg_flags=0}, 0) = -1 EINVAL (Invalid argument) <0.000020>
It's not clear to me what's wrong with the sendmsg syscall. Any ideas?
Thanks.