On Fri, Jan 23, 2015 at 9:38 AM, Ludovic Courtès <l...@gnu.org> wrote: > I suspect the IP shown above is the result of: > > (getaddrinfo (gethostname)) > > or something like that. DNS lookups don’t work in the chroot, except > for “localhost”, so you may have to patch tests that rely on this. > Sockets themselves should work fine.
The error is produced by the system call "setsockopt". Here is the part of the strace log showing the error: ... write(4, "UpnpInit with HostIP=, DestPort="..., 35) = 35 socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 6 ioctl(6, SIOCGIFCONF, {40, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}}}) = 0 ioctl(6, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0 ... bind(8, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 getsockname(8, {sa_family=AF_INET, sin_port=htons(42159), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0 write(4, "\n*******************************"..., 326) = 326 write(4, "sockfd = 8, .... port = 42159\n", 30) = 30 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 9 setsockopt(9, SOL_IP, IP_MULTICAST_TTL, "\4", 1) = 0 fcntl(9, F_GETFL) = 0x2 (flags O_RDWR) fcntl(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 10 setsockopt(10, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(10, {sa_family=AF_INET, sin_port=htons(1900), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 setsockopt(10, SOL_IP, IP_ADD_MEMBERSHIP, "\357\377\377\372\0\0\0\0", 8) = -1 ENODEV (No such device) fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f551880b000 write(3, "\n*******************************"..., 326) = 326 write(3, "Error in setsockopt() IP_ADD_MEM"..., 79) = 79 shutdown(10, SHUT_RDWR) = -1 ENOTCONN (Transport endpoint is not connected) ... Outside of the build environment, when the test passes, I see the same system call with the same parameters, but the call succeeds. The only difference seems to be in the first part which looks like this ... write(4, "UpnpInit with HostIP=, DestPort="..., 35) = 35 socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 5 ioctl(5, SIOCGIFCONF, {80, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"eth0", {AF_INET, inet_addr("192.168.0.5")}}}}) = 0 ioctl(5, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0 ioctl(5, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 close(5) = 0 ... and shows the additional device "eth0". >From the above I understand that libupnp embedded server wants to setup multicast, but, as far as I know, this doesn't work with the "lo" interface and fails. I do not see a workaround. Anyone? Regards, Fede