diff options
Diffstat (limited to 'src/dns.h')
-rw-r--r-- | src/dns.h | 111 |
1 files changed, 4 insertions, 107 deletions
@@ -29,102 +29,9 @@ #include "config.h" #include "mem_pool.h" #include "events.h" -#include "upstream.h" - -struct rspamd_dns_reply; -struct config_file; - -typedef void (*dns_callback_type) (struct rspamd_dns_reply *reply, gpointer arg); - -enum rspamd_request_type { - DNS_REQUEST_A = 0, - DNS_REQUEST_PTR, - DNS_REQUEST_MX, - DNS_REQUEST_TXT, - DNS_REQUEST_SRV, - DNS_REQUEST_SPF, - DNS_REQUEST_AAA -}; - -struct rspamd_dns_request { - memory_pool_t *pool; /**< pool associated with request */ - struct rspamd_dns_resolver *resolver; - struct rspamd_dns_io_channel *io; - dns_callback_type func; - gpointer arg; - struct event timer_event; - struct event io_event; - struct timeval tv; - guint retransmits; - guint16 id; - struct rspamd_async_session *session; - struct rspamd_dns_reply *reply; - guint8 *packet; - const gchar *requested_name; - off_t pos; - guint packet_len; - gint sock; - enum rspamd_request_type type; - time_t time; - struct rspamd_dns_request *next; -}; - -union rspamd_reply_element_un { - struct { - struct in_addr addr; - guint16 addrcount; - } a; -#ifdef HAVE_INET_PTON - struct { - struct in6_addr addr; - } aaa; -#endif - struct { - gchar *name; - } ptr; - struct { - gchar *name; - guint16 priority; - } mx; - struct { - gchar *data; - } txt; - struct { - guint16 priority; - guint16 weight; - guint16 port; - gchar *target; - } srv; -}; - -struct rspamd_reply_entry { - union rspamd_reply_element_un content; - guint16 type; - guint16 ttl; - struct rspamd_reply_entry *prev, *next; -}; - - -enum dns_rcode { - DNS_RC_NOERROR = 0, - DNS_RC_FORMERR = 1, - DNS_RC_SERVFAIL = 2, - DNS_RC_NXDOMAIN = 3, - DNS_RC_NOTIMP = 4, - DNS_RC_REFUSED = 5, - DNS_RC_YXDOMAIN = 6, - DNS_RC_YXRRSET = 7, - DNS_RC_NXRRSET = 8, - DNS_RC_NOTAUTH = 9, - DNS_RC_NOTZONE = 10, -}; - -struct rspamd_dns_reply { - struct rspamd_dns_request *request; - enum dns_rcode code; - struct rspamd_reply_entry *entries; -}; +#include "rdns.h" +struct rspamd_dns_resolver; /* Rspamd DNS API */ @@ -145,17 +52,7 @@ struct rspamd_dns_resolver *dns_resolver_init (struct event_base *ev_base, struc * @return TRUE if request was sent. */ gboolean make_dns_request (struct rspamd_dns_resolver *resolver, - struct rspamd_async_session *session, memory_pool_t *pool, dns_callback_type cb, - gpointer ud, enum rspamd_request_type type, ...); - -/** - * Get textual presentation of DNS error code - */ -const gchar *dns_strerror (enum dns_rcode rcode); - -/** - * Get textual presentation of DNS request type - */ -const gchar *dns_strtype (enum rspamd_request_type type); + struct rspamd_async_session *session, memory_pool_t *pool, + dns_callback_type cb, gpointer ud, enum rdns_request_type type, const char *name); #endif |