Maintained by: NLnet Labs

[Unbound-users] get ttl in libunbound?

David Hubbard
Mon Nov 23 14:48:12 CET 2009

Hi Wouter,

To me TTL is useful, obviously. :-) Also, it is already available, but
not exposed through the libunbound interface. However, I can always
work around it if it's not exposed.


On Mon, Nov 23, 2009 at 4:08 AM, W.C.A. Wijngaards <wouter at> wrote:
> Hash: SHA1
> Hi,
> Not sure what to do about this.  Unbound already returns the TTL inside
> the 'raw packet data' chunk in the result.  I understand that that is
> not really easy, since you need (say) ldns_wire2pkt to get at that TTL.
> Is this bloat or is this useful?
> Best regards,
>   Wouter
> On 11/14/2009 06:08 AM, David Hubbard wrote:
>> Hi all,
>> This patch adds a call to free(ttl) that balances the call to
>> calloc(). The previous patch creates a memory leak.
>> This patch also moves 'unsigned *ttl' to the end of struct ub_result,
>> so that binaries linked against will still work.
>> David
>> On Fri, Nov 13, 2009 at 4:18 PM, David Hubbard
>> <david.c.hubbard at> wrote:
>>> Hi Ondrej,
>>> On Fri, Nov 13, 2009 at 4:10 PM, Ondřej Surý <ondrej at> wrote:
>>>> On Fri, Nov 13, 2009 at 23:55, David Hubbard <david.c.hubbard at> wrote:
>>>>> Hi all,
>>>>> I'd like to get the TTL value for a DNS request. I looked at what it
>>>>> would take to add this to struct ub_result and it doesn't look too
>>>>> difficult - patch attached.
>>>> Please don't change the existing API. In this case it could be solved
>>>> just by recompiling all dependant programs, but generally changing
>>>> existing API causes a lot of troubles (beware not adding new functions
>>>> and data types - but really changing existing functions).
>>> I agree - this patch breaks the ABI. I don't think this is an urgent
>>> matter, so would it be acceptable to put this in the queue for
>>> whenever the next major API changes happen?
>>> I do want to use the full validating resolver (especially dnssec). I
>>> also find the libunbound interface simpler, so my code is easy to
>>> read. I'm trying to replace code that used a different dns resolver
>>> library that has gone dormant and doesn't have dnssec support.
>>> One possibility is to place unsigned* ttl at the end of struct
>>> ub_result - then existing applications would not break. I think it
>>> "looks nicer" where it is. Either way, it doesn't really matter.
>>> Thanks for your consideration,
>>> David
>>> _______________________________________________
>>> Unbound-users mailing list
>>> Unbound-users at
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Fedora -
> oMUAn0kaxb4ZbcQiPGyVP3QHXU+FmiXV
> =Lt49