/* oop-adns.h, liboop, copyright 1999 Dan Egnor
This is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License, version 2.1 or later.
See the file COPYING for details. */
#ifndef OOP_ADNS_H
#define OOP_ADNS_H
#ifndef ADNS_H_INCLUDED
#error You must include "adns.h" before "oop-adns.h"!
#endif
#include "oop.h"
typedef struct oop_adapter_adns oop_adapter_adns;
typedef struct oop_adns_query oop_adns_query;
typedef void *oop_adns_call(oop_adapter_adns *,adns_answer *,void *);
/* A liboop adns adapter creates an adns instance tied to a liboop source.
oop_adns_new() returns NULL on failure.*/
oop_adapter_adns *oop_adns_new(oop_source *,adns_initflags,FILE *diag);
void oop_adns_delete(oop_adapter_adns *);
/* Submit an asynchronous DNS query. Returns NULL on system failure.
The returned pointer is valid until the callback occurs or the
query is cancelled (see below). */
oop_adns_query *oop_adns_submit(
oop_adapter_adns *,int *errcode,
const char *owner,adns_rrtype type,adns_queryflags flags,
oop_adns_call *,void *);
oop_adns_query *oop_adns_submit_reverse(
oop_adapter_adns *,int *errcode,
const struct sockaddr *addr,adns_rrtype type,adns_queryflags flags,
oop_adns_call *,void *);
/* Cancel a running query. */
void oop_adns_cancel(oop_adns_query *);
#endif
syntax highlighted by Code2HTML, v. 0.9.1