tst_QDnsLookup: use the 4-argument writeDatagram() overload
When using writeDatagram(QNetworkDatagram), the sendmsg() call on FreeBSD is failing. It works on Linux and on macOS, so my guess is that IP_PKTINFO works to set the sender address but IP_SENDSRCADDR is not allowed in this context for some reason. Before: recvmsg(5,{{ AF_INET 127.0.0.1:19530 },16,[{"H\M-p\^A\0\0\^A\0\0\0\0\0\^A\tso"...,49}],1,{{level=IPPROTO_IP,type=IP_RECVDSTADDR,data={0x7f,0x00,0x00,0x01}},{level=IPPROTO_IP,type=IP_RECVTTL,data={0x40}}},48,0},0) = 49 (0x31) sendmsg(5,{{ AF_INET 127.0.0.1:19530 },16,[{"H\M-p\M^@\^C\0\^A\0\0\0\0\0\^A\t"...,49}],1,{{level=IPPROTO_IP,type=IP_RECVDSTADDR,data={0x7f,0x00,0x00,0x01}}},24,0},MSG_NOSIGNAL) ERR#22 'Invalid argument' After: recvmsg(5,{{ AF_INET 127.0.0.1:16018 },16,[{"\^U\M-X\^A\0\0\^A\0\0\0\0\0\^A\t"...,49}],1,{{level=IPPROTO_IP,type=IP_RECVDSTADDR,data={0x7f,0x00,0x00,0x01}},{level=IPPROTO_IP,type=IP_RECVTTL,data={0x40}}},48,0},0) = 49 (0x31) sendmsg(5,{{ AF_INET 127.0.0.1:16018 },16,[{"\^U\M-X\M^@\^C\0\^A\0\0\0\0\0\^A"...,49}],1,{},0,0},MSG_NOSIGNAL) = 49 (0x31) Change-Id: I455fe22ef4ad4b2f9b01fffd17c77565e230ce31 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 41675df695206d046d4786af142f163dfe9b18dd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
787b1e7079
commit
3053c9b2a3
@ -558,7 +558,8 @@ void tst_QDnsLookup::setNameserverLoopback()
|
||||
QByteArray reply = data;
|
||||
reply[2] = 0x80U; // header->qr = true;
|
||||
reply[3] = 3; // header->rcode = NXDOMAIN;
|
||||
server.writeDatagram(dgram.makeReply(reply));
|
||||
server.writeDatagram(reply.constData(), reply.size(), dgram.senderAddress(),
|
||||
dgram.senderPort());
|
||||
server.close();
|
||||
|
||||
// now check that the QDnsLookup finished
|
||||
|
Loading…
x
Reference in New Issue
Block a user