#ifndef SYSROOT_RESOLV_H_
#define SYSROOT_RESOLV_H_

#include <arpa/nameser.h>
#include <netinet/in.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

#define MAXNS 3
#define MAXDFLSRCH 3
#define MAXDNSRCH 6
#define LOCALDOMAINPARTS 2

#define RES_TIMEOUT 5
#define MAXRESOLVSORT 10
#define RES_MAXNDOTS 15
#define RES_MAXRETRANS 30
#define RES_MAXRETRY 5
#define RES_DFLRETRY 2
#define RES_MAXTIME 65535

/* unused; purely for broken apps */
typedef struct __res_state {
  int retrans;
  int retry;
  unsigned long options;
  int nscount;
  struct sockaddr_in nsaddr_list[MAXNS];
#define nsaddr nsaddr_list[0]
  unsigned short id;
  char* dnsrch[MAXDNSRCH + 1];
  char defdname[256];
  unsigned long pfcode;
  unsigned ndots : 4;
  unsigned nsort : 4;
  unsigned ipv6_unavail : 1;
  unsigned unused : 23;
  struct {
    struct in_addr addr;
    uint32_t mask;
  } sort_list[MAXRESOLVSORT];
  void* qhook;
  void* rhook;
  int res_h_errno;
  int _vcsock;
  unsigned _flags;
  union {
    char pad[52];
    struct {
      uint16_t nscount;
      uint16_t nsmap[MAXNS];
      int nssocks[MAXNS];
      uint16_t nscount6;
      uint16_t nsinit;
      struct sockaddr_in6* nsaddrs[MAXNS];
      unsigned int _initstamp[2];
    } _ext;
  } _u;
} * res_state;

#define __RES 19991006

#ifndef _PATH_RESCONF
#define _PATH_RESCONF "/etc/resolv.conf"
#endif

struct res_sym {
  int number;
  char* name;
  char* humanname;
};

#define RES_F_VC 0x00000001
#define RES_F_CONN 0x00000002
#define RES_F_EDNS0ERR 0x00000004

#define RES_EXHAUSTIVE 0x00000001

#define RES_INIT 0x00000001
#define RES_DEBUG 0x00000002
#define RES_AAONLY 0x00000004
#define RES_USEVC 0x00000008
#define RES_PRIMARY 0x00000010
#define RES_IGNTC 0x00000020
#define RES_RECURSE 0x00000040
#define RES_DEFNAMES 0x00000080
#define RES_STAYOPEN 0x00000100
#define RES_DNSRCH 0x00000200
#define RES_INSECURE1 0x00000400
#define RES_INSECURE2 0x00000800
#define RES_NOALIASES 0x00001000
#define RES_USE_INET6 0x00002000
#define RES_ROTATE 0x00004000
#define RES_NOCHECKNAME 0x00008000
#define RES_KEEPTSIG 0x00010000
#define RES_BLAST 0x00020000
#define RES_USEBSTRING 0x00040000
#define RES_NOIP6DOTINT 0x00080000
#define RES_USE_EDNS0 0x00100000
#define RES_SNGLKUP 0x00200000
#define RES_SNGLKUPREOP 0x00400000
#define RES_USE_DNSSEC 0x00800000

#define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH | RES_NOIP6DOTINT)

#define RES_PRF_STATS 0x00000001
#define RES_PRF_UPDATE 0x00000002
#define RES_PRF_CLASS 0x00000004
#define RES_PRF_CMD 0x00000008
#define RES_PRF_QUES 0x00000010
#define RES_PRF_ANS 0x00000020
#define RES_PRF_AUTH 0x00000040
#define RES_PRF_ADD 0x00000080
#define RES_PRF_HEAD1 0x00000100
#define RES_PRF_HEAD2 0x00000200
#define RES_PRF_TTLID 0x00000400
#define RES_PRF_HEADX 0x00000800
#define RES_PRF_QUERY 0x00001000
#define RES_PRF_REPLY 0x00002000
#define RES_PRF_INIT 0x00004000

struct __res_state* __res_state(void);
#define _res (*__res_state())

int res_init(void);
int res_query(const char*, int, int, unsigned char*, int);
int res_querydomain(const char*, const char*, int, int, unsigned char*, int);
int res_search(const char*, int, int, unsigned char*, int);
int res_mkquery(int, const char*, int, int, const unsigned char*, int, const unsigned char*,
                unsigned char*, int);
int res_send(const unsigned char*, int, unsigned char*, int);
int dn_comp(const char*, unsigned char*, int, unsigned char**, unsigned char**);
int dn_expand(const unsigned char*, const unsigned char*, const unsigned char*, char*, int);
int dn_skipname(const unsigned char*, const unsigned char*);

#ifdef __cplusplus
}
#endif

#endif  // SYSROOT_RESOLV_H_
