DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cert.d \
cert-status.d cert-type.d ciphers.d compressed.d compressed-ssh.d \
- config.d \
+ config.d doh-url.d \
connect-timeout.d connect-to.d continue-at.d cookie.d cookie-jar.d \
create-dirs.d crlf.d crlfile.d data-ascii.d data-binary.d data.d \
data-raw.d data-urlencode.d delegation.d digest.d disable.d \
--- /dev/null
+Long: doh-url
+Arg: <URL>
+Help: Resolve host names over DOH
+Protocols: all
+---
+Specifies which DNS-over-HTTPS (DOH) server to use to resolve hostnames,
+instead of using the default name resolver mechanism. The URL must be HTTPS.
+
+If this option is used several times, the last one will be used.
config->url_get = NULL;
config->url_out = NULL;
+ Curl_safefree(config->doh_url);
Curl_safefree(config->cipher_list);
Curl_safefree(config->proxy_cipher_list);
Curl_safefree(config->cert);
struct getout *url_get; /* point to the node to fill in URL */
struct getout *url_out; /* point to the node to fill in outfile */
struct getout *url_ul; /* point to the node to fill in upload */
+ char *doh_url;
char *cipher_list;
char *proxy_cipher_list;
char *cipher13_list;
{"*b", "egd-file", ARG_STRING},
{"*B", "oauth2-bearer", ARG_STRING},
{"*c", "connect-timeout", ARG_STRING},
+ {"*C", "doh-url" , ARG_STRING},
{"*d", "ciphers", ARG_STRING},
{"*D", "dns-interface", ARG_STRING},
{"*e", "disable-epsv", ARG_BOOL},
if(err)
return err;
break;
+ case 'C': /* doh-url */
+ GetStr(&config->doh_url, nextarg);
+ break;
case 'd': /* ciphers */
GetStr(&config->cipher_list, nextarg);
break;
"IPv6 address to use for DNS requests"},
{" --dns-servers <addresses>",
"DNS server addrs to use"},
+ {" --doh-url <URL>",
+ "Resolve host names over DOH"},
{"-D, --dump-header <filename>",
"Write the received headers to <filename>"},
{" --egd-file <file>",
my_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS,
(long)(config->connecttimeout * 1000));
+ if(config->doh_url)
+ my_setopt_str(curl, CURLOPT_DOH_URL, config->doh_url);
+
if(config->cipher_list)
my_setopt_str(curl, CURLOPT_SSL_CIPHER_LIST, config->cipher_list);