summaryrefslogtreecommitdiff
path: root/src/tool_cfgable.h
Commit message (Collapse)AuthorAgeFilesLines
* ssh: add the ability to enable compression (for SCP/SFTP)Viktor Szakats2017-08-171-0/+1
| | | | | | | | | | | | | | | | | | The required low-level logic was already available as part of `libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1] option.) This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION` (boolean) and the new `curl` command-line option `--compressed-ssh` to request this `libssh2` feature. To have compression enabled, it is required that the SSH server supports a (zlib) compatible compression method and that `libssh2` was built with `zlib` support enabled. [1] https://www.libssh2.org/libssh2_session_flag.html Ref: https://github.com/curl/curl/issues/1732 Closes https://github.com/curl/curl/pull/1735
* curl --socks5-{basic,gssapi}: control socks5 authKamil Dudka2017-06-281-0/+1
| | | | Closes https://github.com/curl/curl/pull/1454
* --request-target: instead of --strip-path-slashDaniel Stenberg2017-06-211-1/+1
| | | | | | | | | | | | | | ... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH. This option instead provides the full "alternative" target to use in the request, instead of extracting the path from the URL. Test 1298 and 1299 updated accordingly. Idea-by: Evert Pot Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373 Closes #1593
* http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASHDaniel Stenberg2017-06-191-0/+1
| | | | | | | | | | | ... to enable sending "OPTIONS *" which wasn't possible previously. This option currently only works for HTTP. Added test cases 1298 + 1299 to verify Fixes #1280 Closes #1462
* curl: prevent binary output spewed to terminalDaniel Stenberg2017-06-161-0/+9
| | | | | | | | | ... unless "--output -" is used. Binary detection is done by simply checking for a binary zero in early data. Added test 1425 1426 to verify. Closes #1512
* curl: remove tool_writeenv.[ch]Daniel Stenberg2017-05-061-2/+1
| | | | | | | | | ... and USE_ENVIRONMENT and --environment. It was once added for RISC OS support and its platform specific behavior has been annoying ever since. Added in commit c3c8bbd3b2688da8e, mostly unchanged since then. Most probably not actually used for years. Closes #1463
* url: add option CURLOPT_SUPPRESS_CONNECT_HEADERSDesmond O. Chang2017-03-121-0/+2
| | | | | | | | | | | | | | - Add new option CURLOPT_SUPPRESS_CONNECT_HEADERS to allow suppressing proxy CONNECT response headers from the user callback functions CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION. - Add new tool option --suppress-connect-headers to expose CURLOPT_SUPPRESS_CONNECT_HEADERS and allow suppressing proxy CONNECT response headers from --dump-header and --include. Assisted-by: Jay Satiro Assisted-by: CarloCannas@users.noreply.github.com Closes https://github.com/curl/curl/pull/783
* vtls: add options to specify range of enabled TLS versionsJozef Kralik2017-03-081-0/+1
| | | | | | | This commit introduces the CURL_SSLVERSION_MAX_* constants as well as the --tls-max option of the curl tool. Closes https://github.com/curl/curl/pull/1166
* unix_socket: add support for abstract unix domain socketIsaac Boukris2017-01-131-0/+1
| | | | | | | | | | | | | | | | | | | | | In addition to unix domain sockets, Linux also supports an abstract namespace which is independent of the filesystem. In order to support it, add new CURLOPT_ABSTRACT_UNIX_SOCKET option which uses the same storage as CURLOPT_UNIX_SOCKET_PATH internally, along with a flag to specify abstract socket. On non-supporting platforms, the abstract address will be interpreted as an empty string and fail gracefully. Also add new --abstract-unix-socket tool parameter. Signed-off-by: Isaac Boukris <iboukris@gmail.com> Reported-by: Chungtsun Li (typeless) Reviewed-by: Daniel Stenberg Reviewed-by: Peter Wu Closes #1197 Fixes #1061
* preproxy: renamed what was added as SOCKS_PROXYDaniel Stenberg2016-12-161-3/+1
| | | | | | | CURLOPT_SOCKS_PROXY -> CURLOPT_PRE_PROXY Added the corresponding --preroxy command line option. Sets a SOCKS proxy to connect to _before_ connecting to a HTTP(S) proxy.
* curl: normal socks proxies still use CURLOPT_PROXYDaniel Stenberg2016-12-161-1/+1
| | | | | | | ... the newly introduced CURLOPT_SOCKS_PROXY is special and should be asked for specially. (Needs new code.) Unified proxy type to a single variable in the config struct.
* proxy: Support HTTPS proxy and SOCKS+HTTP(s)Alex Rousskov2016-11-241-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * HTTPS proxies: An HTTPS proxy receives all transactions over an SSL/TLS connection. Once a secure connection with the proxy is established, the user agent uses the proxy as usual, including sending CONNECT requests to instruct the proxy to establish a [usually secure] TCP tunnel with an origin server. HTTPS proxies protect nearly all aspects of user-proxy communications as opposed to HTTP proxies that receive all requests (including CONNECT requests) in vulnerable clear text. With HTTPS proxies, it is possible to have two concurrent _nested_ SSL/TLS sessions: the "outer" one between the user agent and the proxy and the "inner" one between the user agent and the origin server (through the proxy). This change adds supports for such nested sessions as well. A secure connection with a proxy requires its own set of the usual SSL options (their actual descriptions differ and need polishing, see TODO): --proxy-cacert FILE CA certificate to verify peer against --proxy-capath DIR CA directory to verify peer against --proxy-cert CERT[:PASSWD] Client certificate file and password --proxy-cert-type TYPE Certificate file type (DER/PEM/ENG) --proxy-ciphers LIST SSL ciphers to use --proxy-crlfile FILE Get a CRL list in PEM format from the file --proxy-insecure Allow connections to proxies with bad certs --proxy-key KEY Private key file name --proxy-key-type TYPE Private key file type (DER/PEM/ENG) --proxy-pass PASS Pass phrase for the private key --proxy-ssl-allow-beast Allow security flaw to improve interop --proxy-sslv2 Use SSLv2 --proxy-sslv3 Use SSLv3 --proxy-tlsv1 Use TLSv1 --proxy-tlsuser USER TLS username --proxy-tlspassword STRING TLS password --proxy-tlsauthtype STRING TLS authentication type (default SRP) All --proxy-foo options are independent from their --foo counterparts, except --proxy-crlfile which defaults to --crlfile and --proxy-capath which defaults to --capath. Curl now also supports %{proxy_ssl_verify_result} --write-out variable, similar to the existing %{ssl_verify_result} variable. Supported backends: OpenSSL, GnuTLS, and NSS. * A SOCKS proxy + HTTP/HTTPS proxy combination: If both --socks* and --proxy options are given, Curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. TODO: Update documentation for the new APIs and --proxy-* options. Look for "Added in 7.XXX" marks.
* curl: add --fail-earlyDaniel Stenberg2016-11-141-1/+1
| | | | | | | Exit with an error on the first transfer error instead of continuing to do the rest of the URLs. Discussion: https://curl.haxx.se/mail/archive-2016-11/0038.html
* curl: Add --retry-connrefusedDaniel Hwang2016-11-111-0/+1
| | | | | | to consider ECONNREFUSED as a transient error. Closes #1064
* tool: add --tcp-fastopen optionAlessandro Ghedini2016-04-181-0/+1
|
* news: CURLOPT_CONNECT_TO and --connect-toMichael Kaufmann2016-04-171-0/+1
| | | | | Makes curl connect to the given host+port instead of the host+port found in the URL.
* CURLOPT_SOCKS5_GSSAPI_SERVICE: Merged with CURLOPT_PROXY_SERVICE_NAMESteve Holme2016-04-091-6/+4
| | | | | | | | | As these two options provide identical functionality, the former for SOCK5 proxies and the latter for HTTP proxies, merged the two options together. As such CURLOPT_SOCKS5_GSSAPI_SERVICE is marked as deprecated as of 7.49.0.
* url: Corrected comments following 9d89a0387Steve Holme2016-04-091-3/+3
|
* TFTP: add option to suppress TFTP option requests (Part 2)Jay Satiro2016-02-231-0/+1
| | | | | | | | | | - Add tests. - Add an example to CURLOPT_TFTP_NO_OPTIONS.3. - Add --tftp-no-options to expose CURLOPT_TFTP_NO_OPTIONS. Bug: https://github.com/curl/curl/issues/481
* URLs: change all http:// URLs to https://Daniel Stenberg2016-02-031-1/+1
|
* curl --expect100-timeout: addedDaniel Stenberg2015-12-151-0/+1
| | | | | This is the new command line option to set the value for the existing libcurl option CURLOPT_EXPECT_100_TIMEOUT_MS
* oauth2: Don't use XOAUTH2 in OAuth 2.0 variablesSteve Holme2015-11-091-1/+1
|
* oauth2: Use OAuth 2.0 rather than XOAUTH2 in commentsSteve Holme2015-11-091-1/+1
| | | | | When referring to OAuth 2.0 we should use the official name rather the SASL mechanism name.
* CURLOPT_DEFAULT_PROTOCOL: addedNathaniel Waisbrot2015-08-221-0/+1
| | | | | | | | | | | | | | | - Add new option CURLOPT_DEFAULT_PROTOCOL to allow specifying a default protocol for schemeless URLs. - Add new tool option --proto-default to expose CURLOPT_DEFAULT_PROTOCOL. In the case of schemeless URLs libcurl will behave in this way: When the option is used libcurl will use the supplied default. When the option is not used, libcurl will follow its usual plan of guessing from the hostname and falling back to 'http'.
* SSL: Add an option to disable certificate revocation checksJay Satiro2015-07-171-0/+1
| | | | | | | | | | | | | | New tool option --ssl-no-revoke. New value CURLSSLOPT_NO_REVOKE for CURLOPT_SSL_OPTIONS. Currently this option applies only to WinSSL where we have automatic certificate revocation checking by default. According to the ssl-compared chart there are other backends that have automatic checking (NSS, wolfSSL and DarwinSSL) so we could possibly accommodate them at some later point. Bug: https://github.com/bagder/curl/issues/264 Reported-by: zenden2k <zenden2k@gmail.com>
* Negotiate: custom service names for SPNEGO.Linus Nielsen2015-04-281-0/+4
| | | | | * Add new options, CURLOPT_PROXY_SERVICE_NAME and CURLOPT_SERVICE_NAME. * Add new curl options, --proxy-service-name and --service-name.
* CURLOPT_PATH_AS_IS: addedDaniel Stenberg2015-03-241-3/+2
| | | | | | | | --path-as-is is the command line option Added docs in curl.1 and CURLOPT_PATH_AS_IS.3 Added test in test 1241
* curl: add --false-start optionAlessandro Ghedini2015-03-201-0/+2
|
* curl: add --cert-status optionAlessandro Ghedini2015-01-161-0/+1
| | | | This enables the CURLOPT_SSL_VERIFYSTATUS functionality.
* code/docs: Use Unix rather than UNIX to avoid use of the trademarkSteve Holme2014-12-261-5/+5
| | | | | Use Unix when generically writing about Unix based systems as UNIX is the trademark and should only be used in a particular product's name.
* tool: add --unix-socket optionPeter Wu2014-12-041-0/+1
| | | | Signed-off-by: Peter Wu <peter@lekensteyn.nl>
* SSL: implement public key pinningmoparisthebest2014-10-071-0/+1
| | | | | | | | | | | | Option --pinnedpubkey takes a path to a public key in DER format and only connect if it matches (currently only implemented with OpenSSL). Provides CURLOPT_PINNEDPUBLICKEY for curl_easy_setopt(). Extract a public RSA key from a website like so: openssl s_client -connect google.com:443 2>&1 < /dev/null | \ sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -noout -pubkey \ | openssl rsa -pubin -outform DER > google.com.der
* curl: add --proxy-headerMaciej Puzio2014-04-041-0/+1
|
* tool: Moved internal variable isatty to the global configSteve Holme2014-03-011-1/+1
|
* tool: Moved --libcurl to the global configSteve Holme2014-03-011-1/+1
|
* tool: Moved --progress-bar to the global configSteve Holme2014-03-011-2/+2
|
* tool: Moved --stderr to the global configSteve Holme2014-03-011-2/+2
|
* tool_cfgable: Code policing of structure pointersSteve Holme2014-02-271-4/+4
|
* tool: Moved --trace and --verbose to the global configSteve Holme2014-02-271-5/+5
|
* tool: Moved --silient to the global configSteve Holme2014-02-271-1/+1
| | | | | Other global options such as --libcurl, --trace and --verbose to follow.
* tool_cfgable: Added GlobalConfig pointer to OperationConfigSteve Holme2014-02-271-0/+3
| | | | | In order to ease the moving of global options such as the error stream, updated the OperationConfig structure to point to the GlobalConfig.
* tool: Moved --showerror to the global configSteve Holme2014-02-251-3/+3
| | | | | Other global options such as --libcurl, --trace and --verbose to follow.
* tool_cfgable: Added support for knowing the current operationSteve Holme2014-02-241-0/+1
|
* tool_cfgable: Added global config structureSteve Holme2014-02-231-1/+8
|
* tool_cfgable: Renamed Configurable structure to OperationConfigSteve Holme2014-02-231-5/+5
| | | | | To allow for the addition of a global config structure and prevent confusion between the two.
* tool_cfgable: Removed list_engine flag from config structureSteve Holme2014-02-221-1/+0
| | | | | | In preparation for separating the global config options from the per operation config options, reworked the list engines code to not use a member variable in the Configurable structure.
* NPN/ALPN: allow disabling via command lineFabian Frank2014-02-101-0/+2
| | | | | | | when using --http2 one can now selectively disable NPN or ALPN with --no-alpn and --no-npn. for now honored with NSS only. TODO: honor this option with GnuTLS and OpenSSL
* tool_getparam: Added support for parsing of specific URL optionsSteve Holme2014-02-081-2/+5
|
* tool_cfgable: For consistency renamed init_config() to config_init()Steve Holme2014-02-071-1/+1
|
* tool_cfgable: Introduced config_free() functionSteve Holme2014-02-071-1/+1
|