chiark / gitweb /
Add A record parsing.
[adns.git] / src / adns.h
index cdb8d28f44bffd2e4982b77149a37d546ee867c6..29cf8157593fe16ea9186352cd5db613d86e8012 100644 (file)
@@ -105,6 +105,7 @@ typedef enum {
   adns_s_norecurse,
   adns_s_serverfaulty,
   adns_s_unknownreply,
+  adns_s_invaliddata,
   adns_s_max_tempfail= 99,
   adns_s_inconsistent, /* PTR gives domain whose A does not match */
   adns_s_cname, /* CNAME found where data eg A expected (not if _qf_loosecname) */
@@ -146,8 +147,10 @@ typedef struct {
   adns_status status;
   char *cname; /* always NULL if query was for CNAME records */
   adns_rrtype type;
-  int nrrs;
+  int nrrs, rrsz;
   union {
+    void *untyped;
+    unsigned char *bytes;
     char *(*str);                  /* ns_raw, cname, ptr, ptr_raw, txt, <any>_mf */
     struct in_addr *inaddr;        /* a */
     adns_rr_dmaddr *dmaddr;        /* ns */
@@ -168,6 +171,8 @@ typedef struct {
  *  Must always be non-null pointer;
  *  If *query_io is 0 to start with then any query may be returned;
  *  If *query_io is !0 adns_query then only that query may be returned.
+ *  If the call is successful, *query_io, *answer_r, and *context_r
+ *  will all be set.
  * Errors:
  *  Return values are 0 or an errno value;
  *  Seriously fatal system errors (eg, failure to create sockets,
@@ -263,4 +268,6 @@ void adns_interest(adns_state, int *maxfd_io, fd_set *readfds_io,
  *  }
  */
 
+const char *adns_strerror(adns_status st);
+
 #endif