Keep source sockaddr for every cached DNS record
authorRafał Miłecki <rafal@milecki.pl>
Mon, 20 Mar 2017 23:00:15 +0000 (00:00 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Tue, 21 Mar 2017 21:55:54 +0000 (22:55 +0100)
commita0403cde2d5684b63c0ea2c25a5414ede9ac99c3
treeaf1f6ba8ff569ed20976e8c3cd3d529219e00658
parent1478293fd95f29f16887c5e6554035cd38d4b2d7
Keep source sockaddr for every cached DNS record

This will be required for sending questions on TTL timeouts. When that
happens we want to send unicast question but it's currently broken as we
don't know original IP address.

This change stores whole sockaddr (using struct sockaddr_storage). In
theory it'd be sufficient to store struct in_addr or struct in6_addr but
1) There isn't helper struct for storing IP version agnostic address
2) interface_send_packet already expects struct sockaddr

It hopefully won't hurt memory usage that bad to store a bit more info.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
cache.c
cache.h
dns.c