Commit 96457d6e authored by Marek Vavruša's avatar Marek Vavruša

libknot: A/AAAA address getter

parent 18cb20cb
......@@ -340,3 +340,4 @@ tests/worker_queue.c
tests/zone_events.c
tests/zonedb.c
tests/ztree.c
src/libknot/rrtype/aaaa.h
......@@ -179,6 +179,7 @@ libknot_la_SOURCES = \
libknot/processing/requestor.c \
libknot/processing/requestor.h \
libknot/rrtype/rdname.h \
libknot/rrtype/aaaa.h \
libknot/rrtype/dnskey.h \
libknot/rrtype/nsec.h \
libknot/rrtype/nsec3.c \
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "libknot/rdataset.h"
#include "libknot/errcode.h"
#include "common/sockaddr.h"
#include <stdlib.h>
static inline
int knot_a_addr(const knot_rdataset_t *rrs, size_t pos, struct sockaddr_in *dst)
{
KNOT_RDATASET_CHECK(rrs, pos, return KNOT_EINVAL);
knot_rdata_t *rr = knot_rdataset_at(rrs, pos);
return sockaddr_set_raw(dst, AF_INET, knot_rdata_data(rr), knot_rdata_rdlen(rr));
}
static inline
int knot_aaaa_addr(const knot_rdataset_t *rrs, size_t pos, struct sockaddr_in6 *dst)
{
KNOT_RDATASET_CHECK(rrs, pos, return KNOT_EINVAL);
knot_rdata_t *rr = knot_rdataset_at(rrs, pos);
return sockaddr_set_raw(dst, AF_INET6, knot_rdata_data(rr), knot_rdata_rdlen(rr));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment