1 #ifndef _RESOLVE_CLNT_H_INCLUDED_
2 #define _RESOLVE_CLNT_H_INCLUDED_
22 #define RESOLVE_REGULAR "resolve"
23 #define RESOLVE_VERIFY "verify"
25 #define RESOLVE_FLAG_FINAL (1<<0)
26 #define RESOLVE_FLAG_ROUTED (1<<1)
27 #define RESOLVE_FLAG_ERROR (1<<2)
28 #define RESOLVE_FLAG_FAIL (1<<3)
30 #define RESOLVE_CLASS_LOCAL (1<<8)
31 #define RESOLVE_CLASS_ALIAS (1<<9)
32 #define RESOLVE_CLASS_VIRTUAL (1<<10)
33 #define RESOLVE_CLASS_RELAY (1<<11)
34 #define RESOLVE_CLASS_DEFAULT (1<<12)
36 #define RESOLVE_CLASS_FINAL \
37 (RESOLVE_CLASS_LOCAL | RESOLVE_CLASS_ALIAS | RESOLVE_CLASS_VIRTUAL)
39 #define RESOLVE_CLASS_MASK \
40 (RESOLVE_CLASS_LOCAL | RESOLVE_CLASS_ALIAS | RESOLVE_CLASS_VIRTUAL \
41 | RESOLVE_CLASS_RELAY | RESOLVE_CLASS_DEFAULT)
54 #define RESOLVE_NULL_FROM ""
56 #define resolve_clnt_query_from(f, a, r) \
57 resolve_clnt(RESOLVE_REGULAR, (f), (a), (r))
58 #define resolve_clnt_verify_from(f, a, r) \
59 resolve_clnt(RESOLVE_VERIFY, (f), (a), (r))
61 #define RESOLVE_CLNT_ASSIGN(reply, transport, nexthop, recipient) { \
62 (reply).transport = (transport); \
63 (reply).nexthop = (nexthop); \
64 (reply).recipient = (recipient); \
void resolve_clnt_init(RESOLVE_REPLY *)
void resolve_clnt(const char *, const char *, const char *, RESOLVE_REPLY *)
struct RESOLVE_REPLY RESOLVE_REPLY
void resolve_clnt_free(RESOLVE_REPLY *)