mirror of
https://github.com/curl/curl.git
synced 2026-08-25 10:13:36 +03:00
curl: Add support for various DNS binding options.
(Passed on to c-ares.) Allows something like this: curl --dns-interface sta8 --dns-ipv4-addr 8.8.1.111 --interface sta8 \ --localaddr 8.8.1.111 --dns-servers 8.8.8.1 www.google.com Signed-off-by: Ben Greear <greearb@candelatech.com>
This commit is contained in:
parent
df69440d05
commit
32352ed6ad
5 changed files with 39 additions and 5 deletions
|
|
@ -73,11 +73,14 @@ static const struct LongShort aliases[]= {
|
|||
/* all these ones, starting with "*" or "$" as a short-option have *no*
|
||||
short option to mention. */
|
||||
{"*", "url", TRUE},
|
||||
{"*4", "dns-ipv4-addr", TRUE},
|
||||
{"*6", "dns-ipv6-addr", TRUE},
|
||||
{"*a", "random-file", TRUE},
|
||||
{"*b", "egd-file", TRUE},
|
||||
{"*B", "bearer", TRUE},
|
||||
{"*c", "connect-timeout", TRUE},
|
||||
{"*d", "ciphers", TRUE},
|
||||
{"*D", "dns-interface", TRUE},
|
||||
{"*e", "disable-epsv", FALSE},
|
||||
{"*E", "epsv", FALSE},
|
||||
/* 'epsv' made like this to make --no-epsv and --epsv to work
|
||||
|
|
@ -85,6 +88,7 @@ static const struct LongShort aliases[]= {
|
|||
#ifdef USE_ENVIRONMENT
|
||||
{"*f", "environment", FALSE},
|
||||
#endif
|
||||
{"*F", "dns-servers", TRUE},
|
||||
{"*g", "trace", TRUE},
|
||||
{"*h", "trace-ascii", TRUE},
|
||||
{"*i", "limit-rate", TRUE},
|
||||
|
|
@ -496,6 +500,14 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
switch(letter) {
|
||||
case '*': /* options without a short option */
|
||||
switch(subletter) {
|
||||
case '4': /* --dns-ipv4-addr */
|
||||
/* addr in dot notation */
|
||||
GetStr(&config->dns_ipv4_addr, nextarg);
|
||||
break;
|
||||
case '6': /* --dns-ipv6-addr */
|
||||
/* addr in dot notation */
|
||||
GetStr(&config->dns_ipv6_addr, nextarg);
|
||||
break;
|
||||
case 'a': /* random-file */
|
||||
GetStr(&config->random_file, nextarg);
|
||||
break;
|
||||
|
|
@ -513,6 +525,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
case 'd': /* ciphers */
|
||||
GetStr(&config->cipher_list, nextarg);
|
||||
break;
|
||||
case 'D': /* --dns-interface */
|
||||
/* interface name */
|
||||
GetStr(&config->dns_interface, nextarg);
|
||||
break;
|
||||
case 'e': /* --disable-epsv */
|
||||
config->disable_epsv = toggle;
|
||||
break;
|
||||
|
|
@ -524,6 +540,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
config->writeenv = toggle;
|
||||
break;
|
||||
#endif
|
||||
case 'F': /* --dns-servers */
|
||||
/* IP addrs of DNS servers */
|
||||
GetStr(&config->dns_servers, nextarg);
|
||||
break;
|
||||
case 'g': /* --trace */
|
||||
GetStr(&config->trace_dump, nextarg);
|
||||
if(config->tracetype && (config->tracetype != TRACE_BIN))
|
||||
|
|
@ -1802,4 +1822,3 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
|
||||
return PARAM_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue