chiark / gitweb /
Clarify.
[adns.git] / src / adns.h
index 90b166bbaa249f5c231ce8ac4eb61552eb54125a..2ec1f39c1d2481b38b716ce1e8b536b4cea1f513 100644 (file)
@@ -1,4 +1,9 @@
-/**/
+/*
+ * Copyright (C)1998 Ian Jackson.
+ * This version provided for review and comment only.
+ *
+ * $Id$
+ */
 
 #ifndef ADNS_H_INCLUDED
 #define ADNS_H_INCLUDED
@@ -91,16 +96,24 @@ typedef enum {
 typedef enum {
   adns_s_ok,
   adns_s_timeout,
-  adns_s_unknownqtype,
   adns_s_nolocalmem,
   adns_s_allservfail,
+  adns_s_servfail,
+  adns_s_notimplemented,
+  adns_s_refused,
+  adns_s_reasonunknown,
+  adns_s_norecurse,
+  adns_s_serverfaulty,
+  adns_s_unknownreply,
   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) */
-  adns_s_max_misconfig= 199,
+  /* fixme: implement _s_cname */
+  adns_s_max_remotemisconfig= 199,
   adns_s_nxdomain,
-  adns_s_norecord,
-  adns_s_invaliddomain
+  adns_s_nodata,
+  adns_s_invaliddomain,
+  adns_s_domaintoolong,
 } adns_status;
 
 typedef struct {
@@ -135,8 +148,8 @@ typedef struct {
   adns_rrtype type;
   int nrrs;
   union {
-    struct in_addr *inaddr;        /* a */
     char *(*str);                  /* ns_raw, cname, ptr, ptr_raw, txt, <any>_mf */
+    struct in_addr *inaddr;        /* a */
     adns_rr_dmaddr *dmaddr;        /* ns */
     adns_rr_strpair *strpair;      /* hinfo, rp, rp_raw */
     adns_rr_intdmaddr *intdmaddr;  /* mx */
@@ -155,6 +168,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,
@@ -165,8 +180,6 @@ typedef struct {
  *  type will always be the type requested;
  *  If no (appropriate) requests are done adns_check returns EWOULDBLOCK;
  *  If no (appropriate) requests are outstanding adns_query and adns_wait return ESRCH;
- *  If malloc failure occurs during internal allocation or processing
- *  ands_check and _wait set *answer to 0.
  */
 
 int adns_init(adns_state *newstate_r, adns_initflags flags, FILE *diagfile/*0=>stderr*/);