X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=client%2Fadnshost.h;h=93a7608b11bfc8213684c009df1bb4daf5da2430;hp=3e93ca7b90ca6b7155d4f6e485c3b1748b83fc24;hb=4b2c4f8a37e33604c1aeddafe49b7c33089692a4;hpb=e3f575ffc7bcb15d23f6844c7cf5562d2b93ac40 diff --git a/client/adnshost.h b/client/adnshost.h index 3e93ca7..93a7608 100644 --- a/client/adnshost.h +++ b/client/adnshost.h @@ -28,13 +28,20 @@ #ifndef ADNSHOST_H_INCLUDED #define ADNSHOST_H_INCLUDED +#include #include #include #include #include #include +#include #include +#include +#include +#include +#include + #include "config.h" #include "adns.h" #include "dlist.h" @@ -57,6 +64,7 @@ struct optioninfo { }; enum ttlmode { tm_none, tm_rel, tm_abs }; +enum outputformat { fmt_default, fmt_simple, fmt_inline, fmt_asynch }; struct perqueryflags_remember { int show_owner, show_type, show_cname; @@ -67,21 +75,31 @@ extern int ov_env, ov_pipe, ov_asynch; extern int ov_verbose; extern adns_rrtype ov_type; extern int ov_search, ov_qc_query, ov_qc_anshost, ov_qc_cname; -extern int ov_tcp, ov_cname; +extern int ov_tcp, ov_cname, ov_format; extern char *ov_id; extern struct perqueryflags_remember ov_pqfr; -extern optfunc of_help, of_type, of_asynch_id, of_cancel_id; +extern optfunc of_help, of_type, of_ptr, of_asynch_id, of_cancel_id; const struct optioninfo *opt_findl(const char *opt); const struct optioninfo *opt_finds(const char **optp); -void opt_do(const struct optioninfo *oip, const char *arg); +void opt_do(const struct optioninfo *oip, const char *arg, int invert); /* declarations related to query processing */ +struct query_node { + struct query_node *next, *back; + struct perqueryflags_remember pqfr; + char *id, *owner; + adns_query qu; +}; + extern adns_state ads; +extern struct outstanding_list { struct query_node *head, *tail; } outstanding; -void domain_do(const char *domain); +void ensure_adns_init(void); +void query_do(const char *domain); +void query_done(struct query_node *qun, adns_answer *answer); void of_asynch_id(const struct optioninfo *oi, const char *arg); void of_cancel_id(const struct optioninfo *oi, const char *arg); @@ -90,8 +108,11 @@ void of_cancel_id(const struct optioninfo *oi, const char *arg); void sysfail(const char *what, int errnoval) NONRETURNING; void usageerr(const char *what, ...) NONRETURNPRINTFFORMAT(1,2); +void outerr(void) NONRETURNING; void *xmalloc(size_t sz); char *xstrsave(const char *str); +extern int rcode; + #endif