udns_resolver.c:916: dns_submit_dn: Assertion `q->dnsq_origdnl0 > 0' failed.

Iñaki Baz Castillo ibc at aliax.net
Tue Jul 5 18:03:11 MSD 2011


2011/7/5 Iñaki Baz Castillo <ibc at aliax.net>:
> Ok, I've captured a trace and the DNS query sent by udns is wrong (I
> attach the full capture exported from wireshark to txt):
>
>    Source: 192.168.1.16 (192.168.1.16)
>    Destination: 8.8.8.8 (8.8.8.8)
> User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
>    Source port: 56776 (56776)
>    Destination port: domain (53)
>    Length: 133
>    Checksum: 0xe83e [validation disabled]
>        [Good Checksum: False]
>        [Bad Checksum: False]
> Domain Name System (query)
>    Transaction ID: 0x4a9f
>    Flags: 0x0100 (Standard query)
>        0... .... .... .... = Response: Message is a query
>        .000 0... .... .... = Opcode: Standard query (0)
>        .... ..0. .... .... = Truncated: Message is not truncated
>        .... ...1 .... .... = Recursion desired: Do query recursively
>        .... .... .0.. .... = Z: reserved (0)
>        .... .... ...0 .... = Non-authenticated data: Unacceptable
>    Questions: 1
>    Answer RRs: 0
>    Authority RRs: 0
>    Additional RRs: 1
>    Queries
>        <Unknown extended label>: type Unknown (40891), class Unknown (0)
>            Name: <Unknown extended label>
>            Type: Unknown (40891)
>            Class: Unknown (0x0000)
>    Additional records
>        <Root>: type Unused, class Unknown (43378)
>            Name: <Root>
>            Type: Unused (unused)
>            Class: Unknown (0xa972)
>            Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
>            Data length: 0
>
>
> The DNS replies "0010 = Reply code: Server failure (2)". Note that I'm
> using DNS server 8.8.8.8 (Google) in this case, without using unbound.


The above trace occurs in udns async mode (in my code). If I query any
other kind of DNS record but SRV, I get BADQUERY error.

I've also tryed your sync code with a DNS A query:
  if (dns_resolve_a4(NULL, argv[i], 0) == NULL)

then:

~# ./a.out ".a _"
.a _: malformed query

So it behaves different in SRV and other records, and also in sync and
async mode (in sync mode SRV for ".a _" produces "nodata" error while
in async mode generates a malformed DNS request and shown in my
previous trace).


-- 
Iñaki Baz Castillo
<ibc at aliax.net>


More information about the udns mailing list