From 12077b4e2ed997206c0e02291263c432ac51bca2 Mon Sep 17 00:00:00 2001 From: Niels Provos Date: Wed, 16 Jul 2008 03:47:47 +0000 Subject: [PATCH] support setting of AA or RD in dns server response svn:r910 --- evdns.c | 8 ++++++++ evdns.h | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/evdns.c b/evdns.c index 30656a05..8069e5d2 100644 --- a/evdns.c +++ b/evdns.c @@ -1619,6 +1619,14 @@ evdns_server_request_add_cname_reply(struct evdns_server_request *req, const cha ttl, -1, 1, cname); } +/* exported function */ +void +evdns_server_request_set_flags(struct evdns_server_request *exreq, int flags) +{ + struct server_request *req = TO_SERVER_REQUEST(exreq); + req->base.flags &= ~(EVDNS_FLAGS_AA|EVDNS_FLAGS_RD); + req->base.flags |= flags; +} static int evdns_server_request_format_response(struct server_request *req, int err) diff --git a/evdns.h b/evdns.h index 3dbcc1ad..3c086730 100644 --- a/evdns.h +++ b/evdns.h @@ -527,10 +527,17 @@ typedef void (*evdns_request_callback_fn_type)(struct evdns_server_request *, vo #define EVDNS_CLASS_INET 1 +/* flags that can be set in answers; as part of the err parameter */ +#define EVDNS_FLAGS_AA 0x400 +#define EVDNS_FLAGS_RD 0x080 + struct evdns_server_port *evdns_add_server_port(int socket, int is_tcp, evdns_request_callback_fn_type callback, void *user_data); struct evdns_server_port *evdns_add_server_port_with_base(struct event_base *base, int socket, int is_tcp, evdns_request_callback_fn_type callback, void *user_data); void evdns_close_server_port(struct evdns_server_port *port); +/** allows setting of the AA or RD flags */ +void evdns_server_request_set_flags(struct evdns_server_request *req, int flags); + int evdns_server_request_add_reply(struct evdns_server_request *req, int section, const char *name, int type, int dns_class, int ttl, int datalen, int is_name, const char *data); int evdns_server_request_add_a_reply(struct evdns_server_request *req, const char *name, int n, void *addrs, int ttl); int evdns_server_request_add_aaaa_reply(struct evdns_server_request *req, const char *name, int n, void *addrs, int ttl); -- 2.40.0