]> jfr.im git - solanum.git/blame - authd/dns.h
opm: silly bugfix
[solanum.git] / authd / dns.h
CommitLineData
8cf45447
AC
1/* authd/dns.h - header for authd DNS functions
2 * Copyright (c) 2016 William Pitcock <nenolod@dereferenced.org>
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice is present in all copies.
7 *
8 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
9 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
11 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
12 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
13 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
14 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
15 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
16 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
17 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
18 * POSSIBILITY OF SUCH DAMAGE.
19 */
20
21#ifndef _AUTHD_DNS_H
22#define _AUTHD_DNS_H
23
24#define DNS_REQ_IDLEN 10
25
b3265d7a 26#include "stdinc.h"
8cf45447
AC
27#include "res.h"
28#include "reslib.h"
29
399c6333
EM
30typedef enum
31{
32 QUERY_INVALID = 0,
33 QUERY_A = '4',
34 QUERY_AAAA = '6',
35 QUERY_PTR_A = 'R',
36 QUERY_PTR_AAAA = 'S',
37} query_type;
38
39/* Similar to that in ircd */
40typedef void (*DNSCB)(const char *res, bool status, query_type type, void *data);
41
42struct dns_query
8cf45447
AC
43{
44 struct DNSQuery query;
399c6333 45 query_type type;
8cf45447 46 struct rb_sockaddr_storage addr;
399c6333
EM
47 uint64_t id;
48
49 DNSCB callback;
50 void *data;
8cf45447
AC
51};
52
2b0cc3d3 53extern struct dns_query *lookup_hostname(const char *ip, DNSCB callback, void *data);
399c6333 54extern struct dns_query *lookup_ip(const char *host, int aftype, DNSCB callback, void *data);
540676fc 55extern void cancel_query(struct dns_query *query);
399c6333 56
60374ac9 57extern void handle_resolve_dns(int parc, char *parv[]);
26d491b9 58extern void enumerate_nameservers(uint32_t rid, const char letter);
6445c1cf 59extern void reload_nameservers(const char letter);
8cf45447
AC
60
61#endif