]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
rename dns_client_createx() to dns_client_create()
authorEvan Hunt <each@isc.org>
Tue, 23 Mar 2021 01:16:28 +0000 (18:16 -0700)
committerOndřej Surý <ondrej@sury.org>
Mon, 19 Apr 2021 11:25:48 +0000 (13:25 +0200)
there's no longer a need to use an alternate name.

(cherry picked from commit 568d455c99a5d1768dc45daf1a82be67b97e8a86)

bin/delv/delv.c
lib/dns/client.c
lib/dns/include/dns/client.h
lib/dns/win32/libdns.def.in
lib/irs/context.c
lib/irs/getnameinfo.c
lib/samples/resolve.c
lib/samples/sample-async.c

index fdec4a661edf314b83acf51cc6d5181178d5b71e..0c8e951753227175c70de10768677c58bec73e19 100644 (file)
@@ -71,7 +71,6 @@
 #include <isccfg/log.h>
 #include <isccfg/namedconf.h>
 
-#include <irs/netdb.h>
 #include <irs/resconf.h>
 
 #define CHECK(r)                             \
@@ -1773,8 +1772,8 @@ main(int argc, char *argv[]) {
 
        /* Create client */
        clopt = DNS_CLIENTCREATEOPT_USECACHE;
-       result = dns_client_createx(mctx, actx, taskmgr, socketmgr, timermgr,
-                                   clopt, &client, srcaddr4, srcaddr6);
+       result = dns_client_create(mctx, actx, taskmgr, socketmgr, timermgr,
+                                  clopt, &client, srcaddr4, srcaddr6);
        if (result != ISC_R_SUCCESS) {
                delv_log(ISC_LOG_ERROR, "dns_client_create: %s",
                         isc_result_totext(result));
@@ -1794,7 +1793,7 @@ main(int argc, char *argv[]) {
        CHECK(convert_name(&qfn, &query_name, qname));
 
        /* Set up resolution options */
-       resopt = DNS_CLIENTRESOPT_ALLOWRUN | DNS_CLIENTRESOPT_NOCDFLAG;
+       resopt = DNS_CLIENTRESOPT_NOCDFLAG;
        if (no_sigs) {
                resopt |= DNS_CLIENTRESOPT_NODNSSEC;
        }
index 6b90c7778341ad65f11f203444bcffc2ecb8b166..215722ed7033bcc60f9f49d661da01a9c09835a7 100644 (file)
@@ -105,8 +105,6 @@ struct dns_client {
 #define DEF_FIND_TIMEOUT    5
 #define DEF_FIND_UDPRETRIES 3
 
-#define DNS_CLIENTATTR_OWNCTX 0x01
-
 /*%
  * Internal state for a single name resolution procedure
  */
@@ -303,13 +301,13 @@ createview(isc_mem_t *mctx, dns_rdataclass_t rdclass, unsigned int options,
 }
 
 isc_result_t
-dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
-                  isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
-                  unsigned int options, dns_client_t **clientp,
-                  const isc_sockaddr_t *localaddr4,
-                  const isc_sockaddr_t *localaddr6) {
-       dns_client_t *client;
+dns_client_create(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
+                 isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
+                 unsigned int options, dns_client_t **clientp,
+                 const isc_sockaddr_t *localaddr4,
+                 const isc_sockaddr_t *localaddr6) {
        isc_result_t result;
+       dns_client_t *client = NULL;
        dns_dispatchmgr_t *dispatchmgr = NULL;
        dns_dispatch_t *dispatchv4 = NULL;
        dns_dispatch_t *dispatchv6 = NULL;
@@ -443,19 +441,6 @@ destroyclient(dns_client_t *client) {
 
        isc_task_detach(&client->task);
 
-       /*
-        * If the client has created its own running environments,
-        * destroy them.
-        */
-       if ((client->attributes & DNS_CLIENTATTR_OWNCTX) != 0) {
-               isc_taskmgr_destroy(&client->taskmgr);
-               isc_timermgr_destroy(&client->timermgr);
-               isc_socketmgr_destroy(&client->socketmgr);
-
-               isc_app_ctxfinish(client->actx);
-               isc_appctx_destroy(&client->actx);
-       }
-
        isc_mutex_destroy(&client->lock);
        client->magic = 0;
 
@@ -1051,35 +1036,22 @@ dns_client_resolve(dns_client_t *client, const dns_name_t *name,
                   dns_rdataclass_t rdclass, dns_rdatatype_t type,
                   unsigned int options, dns_namelist_t *namelist) {
        isc_result_t result;
-       isc_appctx_t *actx;
        resarg_t *resarg;
 
        REQUIRE(DNS_CLIENT_VALID(client));
+       REQUIRE(client->actx != NULL);
        REQUIRE(namelist != NULL && ISC_LIST_EMPTY(*namelist));
 
-       if ((client->attributes & DNS_CLIENTATTR_OWNCTX) == 0 &&
-           (options & DNS_CLIENTRESOPT_ALLOWRUN) == 0)
-       {
-               /*
-                * If the client is run under application's control, we need
-                * to create a new running (sub)environment for this
-                * particular resolution.
-                */
-               return (ISC_R_NOTIMPLEMENTED); /* XXXTBD */
-       } else {
-               actx = client->actx;
-       }
-
        resarg = isc_mem_get(client->mctx, sizeof(*resarg));
 
        isc_mutex_init(&resarg->lock);
+       *resarg = (resarg_t){
+               .actx = client->actx,
+               .client = client,
+               .result = DNS_R_SERVFAIL,
+               .namelist = namelist,
+       };
 
-       resarg->actx = actx;
-       resarg->client = client;
-       resarg->result = DNS_R_SERVFAIL;
-       resarg->namelist = namelist;
-       resarg->trans = NULL;
-       resarg->canceled = false;
        result = dns_client_startresolve(client, name, rdclass, type, options,
                                         client->task, resolve_done, resarg,
                                         &resarg->trans);
@@ -1093,7 +1065,7 @@ dns_client_resolve(dns_client_t *client, const dns_name_t *name,
         * Start internal event loop.  It blocks until the entire process
         * is completed.
         */
-       result = isc_app_ctxrun(actx);
+       result = isc_app_ctxrun(client->actx);
 
        LOCK(&resarg->lock);
        if (result == ISC_R_SUCCESS || result == ISC_R_SUSPEND) {
index 6350db1a69e52cfec60e7f84a4e9494baacbe937..bdc73c9a195ad8cc905097f9d5d774a2fa7d7ab6 100644 (file)
@@ -73,7 +73,7 @@ ISC_LANG_BEGINDECLS
 /*%< Do not return DNSSEC data (e.g. RRSIGS) with response. */
 #define DNS_CLIENTRESOPT_NODNSSEC 0x01
 /*%< Allow running external context. */
-#define DNS_CLIENTRESOPT_ALLOWRUN 0x02
+#define DNS_CLIENTRESOPT_RESERVED 0x02
 /*%< Don't validate responses. */
 #define DNS_CLIENTRESOPT_NOVALIDATE 0x04
 /*%< Don't set the CD flag on upstream queries. */
@@ -85,7 +85,7 @@ ISC_LANG_BEGINDECLS
  * Optional flags for dns_client_(start)request.
  */
 /*%< Allow running external context. */
-#define DNS_CLIENTREQOPT_ALLOWRUN 0x01
+#define DNS_CLIENTREQOPT_RESERVED 0x01
 /*%< Use TCP transport. */
 #define DNS_CLIENTREQOPT_TCP 0x02
 
@@ -93,7 +93,7 @@ ISC_LANG_BEGINDECLS
  * Optional flags for dns_client_(start)update.
  */
 /*%< Allow running external context. */
-#define DNS_CLIENTUPDOPT_ALLOWRUN 0x01
+#define DNS_CLIENTUPDOPT_RESERVED 0x01
 /*%< Use TCP transport. */
 #define DNS_CLIENTUPDOPT_TCP 0x02
 
@@ -133,11 +133,11 @@ typedef struct dns_clientreqevent {
 } dns_clientreqevent_t; /* too long? */
 
 isc_result_t
-dns_client_createx(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
-                  isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
-                  unsigned int options, dns_client_t **clientp,
-                  const isc_sockaddr_t *localaddr4,
-                  const isc_sockaddr_t *localaddr6);
+dns_client_create(isc_mem_t *mctx, isc_appctx_t *actx, isc_taskmgr_t *taskmgr,
+                 isc_socketmgr_t *socketmgr, isc_timermgr_t *timermgr,
+                 unsigned int options, dns_client_t **clientp,
+                 const isc_sockaddr_t *localaddr4,
+                 const isc_sockaddr_t *localaddr6);
 /*%<
  * Create a DNS client object with minimal internal resources, such as
  * a default view for the IN class and IPv4/IPv6 dispatches for the view.
@@ -267,11 +267,8 @@ dns_client_startresolve(dns_client_t *client, const dns_name_t *name,
  * error. Otherwise, it returns the result code of the entire resolution
  * process, either success or failure.
  *
- * It is typically expected that the client object passed to
- * dns_client_resolve() was created via dns_client_create() and has its own
- * managers and contexts.  However, if the DNS_CLIENTRESOPT_ALLOWRUN flag is
- * set in 'options', this function performs the synchronous service even if
- * it does not have its own manager and context structures.
+ * It is expected that the client object passed to dns_client_resolve() was
+ * created via dns_client_create() and has external managers and contexts.
  *
  * dns_client_startresolve() is an asynchronous version of dns_client_resolve()
  * and does not block.  When name resolution is completed, 'action' will be
@@ -407,11 +404,8 @@ dns_client_startrequest(dns_client_t *client, dns_message_t *qmessage,
  * 'rmessage' will contain the response message.  The caller must provide a
  * valid initialized message.
  *
- * It is usually expected that the client object passed to
- * dns_client_request() was created via dns_client_create() and has its own
- * managers and contexts.  However, if the DNS_CLIENTREQOPT_ALLOWRUN flag is
- * set in 'options', this function performs the synchronous service even if
- * it does not have its own manager and context structures.
+ * It is expected that the client object passed to dns_client_request() was
+ * created via dns_client_create() and has external managers and contexts.
  *
  * dns_client_startrequest() is an asynchronous version of dns_client_request()
  * and does not block.  When the transaction is completed, 'action' will be
index c491dfb134bc8e589887d17ec9f905c906fa89d3..6560b26ba1a163673b5571591c81b5224cdb502a 100644 (file)
@@ -137,7 +137,7 @@ dns_cert_totext
 dns_client_addtrustedkey
 dns_client_cancelresolve
 dns_client_clearservers
-dns_client_createx
+dns_client_create
 dns_client_destroy
 dns_client_destroyrestrans
 dns_client_freeresanswer
index 3d5b1c68af81301ba2e34989e7aef7fd6b565da8..c7dcd0ec25232ba46b4a164f6d279bf2d46c6035 100644 (file)
@@ -185,8 +185,8 @@ irs_context_create(irs_context_t **contextp) {
        }
 
        /* Create a DNS client object */
-       result = dns_client_createx(mctx, actx, taskmgr, socketmgr, timermgr, 0,
-                                   &client, NULL, NULL);
+       result = dns_client_create(mctx, actx, taskmgr, socketmgr, timermgr, 0,
+                                  &client, NULL, NULL);
        if (result != ISC_R_SUCCESS) {
                goto fail;
        }
index b1268cec5cbfbcdcc2c8b9320e702116dfa60605..a4088d2da8072d5ec7e1ae32aacdbc294ba3a874 100644 (file)
@@ -319,9 +319,8 @@ found:
 
                /* Get the PTR RRset */
                ISC_LIST_INIT(answerlist);
-               iresult = dns_client_resolve(
-                       client, ptrname, dns_rdataclass_in, dns_rdatatype_ptr,
-                       DNS_CLIENTRESOPT_ALLOWRUN, &answerlist);
+               iresult = dns_client_resolve(client, ptrname, dns_rdataclass_in,
+                                            dns_rdatatype_ptr, 0, &answerlist);
                switch (iresult) {
                case ISC_R_SUCCESS:
                /*
index 176786e43332f08ad90941b74c4dc875736fba3f..f33a2868b95d2b750778536071e5fa789fb83307 100644 (file)
@@ -241,7 +241,7 @@ main(int argc, char *argv[]) {
        dns_rdataset_t *rdataset;
        dns_namelist_t namelist;
        isc_mem_t *keymctx = NULL;
-       unsigned int clientopt, resopt;
+       unsigned int clientopt, resopt = 0;
        bool is_sep = false;
        const char *port = "53";
        isc_mem_t *mctx = NULL;
@@ -385,8 +385,8 @@ main(int argc, char *argv[]) {
        }
 
        clientopt = 0;
-       result = dns_client_createx(mctx, actx, taskmgr, socketmgr, timermgr,
-                                   clientopt, &client, addr4, addr6);
+       result = dns_client_create(mctx, actx, taskmgr, socketmgr, timermgr,
+                                  clientopt, &client, addr4, addr6);
        if (result != ISC_R_SUCCESS) {
                fprintf(stderr, "dns_client_create failed: %u, %s\n", result,
                        isc_result_totext(result));
@@ -444,7 +444,6 @@ main(int argc, char *argv[]) {
        }
 
        /* Perform resolution */
-       resopt = DNS_CLIENTRESOPT_ALLOWRUN;
        if (keynamestr == NULL) {
                resopt |= DNS_CLIENTRESOPT_NODNSSEC;
        }
index f9643a5a60dec992503c292670175fcbcfdfc888..5ff92b07fa94ba633a05a256218369358806c30a 100644 (file)
@@ -342,10 +342,10 @@ main(int argc, char *argv[]) {
 
        isc_app_ctxstart(query_actx);
 
-       result = dns_client_createx(mctx, query_actx, taskmgr, socketmgr,
-                                   timermgr, 0, &client, NULL, NULL);
+       result = dns_client_create(mctx, query_actx, taskmgr, socketmgr,
+                                  timermgr, 0, &client, NULL, NULL);
        if (result != ISC_R_SUCCESS) {
-               fprintf(stderr, "dns_client_createx failed: %u\n", result);
+               fprintf(stderr, "dns_client_create failed: %u\n", result);
                exit(1);
        }