Skip to content

Commit

Permalink
curl: --doh-url added
Browse files Browse the repository at this point in the history
  • Loading branch information
bagder committed Sep 6, 2018
1 parent abff183 commit 5ffbb63
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion docs/cmdline-opts/Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

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 \
Expand Down
9 changes: 9 additions & 0 deletions docs/cmdline-opts/doh-url.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
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.
1 change: 1 addition & 0 deletions src/tool_cfgable.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ static void free_config_fields(struct OperationConfig *config)
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);
Expand Down
1 change: 1 addition & 0 deletions src/tool_cfgable.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ struct OperationConfig {
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;
Expand Down
4 changes: 4 additions & 0 deletions src/tool_getparam.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ static const struct LongShort aliases[]= {
{"*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},
Expand Down Expand Up @@ -619,6 +620,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
if(err)
return err;
break;
case 'C': /* doh-url */
GetStr(&config->doh_url, nextarg);
break;
case 'd': /* ciphers */
GetStr(&config->cipher_list, nextarg);
break;
Expand Down
2 changes: 2 additions & 0 deletions src/tool_help.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ static const struct helptxt helptext[] = {
"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>",
Expand Down
3 changes: 3 additions & 0 deletions src/tool_operate.c
Original file line number Diff line number Diff line change
Expand Up @@ -1262,6 +1262,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
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);

Expand Down

0 comments on commit 5ffbb63

Please sign in to comment.