aboutsummaryrefslogtreecommitdiff
path: root/src/tool_operate.c
AgeCommit message (Collapse)Author
2012-06-21curl: Made --metalink option toggle Metalink functionalityTatsuhiro Tsujikawa
In this change, --metalink option no longer takes argument. If it is specified, given URIs are processed as Metalink XML file. If given URIs are remote (e.g., http URI), curl downloads it first. Regardless URI is local file (e.g., file URI scheme) or remote, Metalink XML file is not written to local file system and the received data is fed into Metalink XML parser directly. This means with --metalink option, filename related options like -O and -o are ignored. Usage examples: $ curl --metalink http://example.org/foo.metalink This will download foo.metalink and parse it and then download the URI described there. $ curl --metalink file://foo.metalink This will parse local file foo.metalink and then download the URI described there.
2012-06-09Fixes allowing 26 more test cases in 1334 to 1393 range to succeedYang Tse
2012-06-08metalink: build fixes and adjustments IIYang Tse
Additionally, make hash checking ability mandatory in order to allow metalink support in curl. A command line option could be introduced to skip hash checking at runtime, but the ability to check hashes should always be built-in when providing metalink support.
2012-06-07metalink: build fixes and adjustments IYang Tse
2012-06-07Fixes allowing HTTP test cases 1338, 1339, 1368 and 1369 to succeedYang Tse
2012-05-26Reduced #ifdef HAVE_METALINKTatsuhiro Tsujikawa
2012-05-26Disable hash check if neither OpenSSL nor GNUTLS is installed.Tatsuhiro Tsujikawa
2012-05-26Minimize usage of structs from libmetalinkTatsuhiro Tsujikawa
2012-05-26Check checksum of downloaded file if checksum is availableTatsuhiro Tsujikawa
Metalink file contains several hash types of checksums, such as md5, sha-1, sha-256, etc. To deal with these checksums, I created abstraction layer based on lib/curl_md5.h and lib/md5.c. Basically, they are almost the same but I changed the code so that it is not hash type dependent. Currently, GNUTLS(nettle or gcrypt) and OpenSSL functions are supported. Checksum checking is done by reopening download file. If there is an I/O error, the current implementation just prints error message and does not try next resource. In this patch, the supported hash types are: md5, sha-1 and sha-256.
2012-05-26Always create directory hierarchy for Metalink.Tatsuhiro Tsujikawa
Filenames contained in Metalink file can include directory information. Filenames are unique in Metalink file, taking into account the directory information. So we need to create the directory hierarchy. Curl has --create-dirs option, but we create directory hierarchy for Metalink downloads regardless of the option value. This patch also put metalink int variable outside of HAVE_LIBMETALINK guard. This reduces the number of #ifdefs.
2012-05-26Support media-type parameter in Content-TypeTatsuhiro Tsujikawa
2012-05-26metalink: parse downloaded Metalink fileTatsuhiro Tsujikawa
Parse downloaded Metalink file and add downloads described there. Fixed compile error without metalink support.
2012-05-26metalink: minor metalinkfile fixTatsuhiro Tsujikawa
Don't update config->metalinkfile_last in operate(). Use local variable to point to the current metalinkfile.
2012-05-26metalink: show help message even if disabledTatsuhiro Tsujikawa
Print message if --metalink is used while metalink support is not enabled. Migrated Metalink support in tool_operate.c and removed operatemetalink().
2012-05-26Support Metalink.Tatsuhiro Tsujikawa
This change adds experimental Metalink support to curl. To enable Metalink support, run configure with --with-libmetalink. To feed Metalink file to curl, use --metalink option like this: $ curl -O --metalink foo.metalink We use libmetalink to parse Metalink files.
2012-05-25Made -D option work with -O and -J.Tatsuhiro Tsujikawa
To achieve this, first new structure HeaderData is defined to hold necessary data to perform header-related work. Then tool_header_cb now receives HeaderData pointer as userdata. All header-related work (currently, dumping header and Content-Disposition inspection) are done in this callback function. HeaderData.outs->config is used to determine whether each work is done. Unit tests were also updated because after this change, curl code always sets CURLOPT_HEADERFUNCTION and CURLOPT_HEADERDATA. Tested with -O -J -D, -O -J -i and -O -J -D -i and all worked fine.
2012-04-19Take in account that CURLAUTH_* bitmasks are now 'unsigned long' - follow-upYang Tse
MIPSPro compiler detected curl_easy_getinfo() related missing adjustments. SunPro compiler detected curl tool --libcurl option related missing adjustments.
2012-04-18Take in account that CURLAUTH_* bitmasks are now 'unsigned long'Yang Tse
Data type of internal vars holding CURLAUTH_* bitmasks changed from 'long' to 'unsigned long' for proper handling and operating.
2012-04-18Some explicit conversion to 'long' of curl_easy_setopt() third argumentYang Tse
Explicit conversion to 'long' of curl_easy_setopt() third argument for options CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH given that this is how its bitmasks are docummented to be used.
2012-04-12tool_operate.c: fix compiler warningYang Tse
2012-04-08curl tool: make curl.h first header included in tool_setup.hYang Tse
2012-04-06curl tool: use configuration files from lib directoryYang Tse
Configuration files such as curl_config.h and all config-*.h no longer exist nor are generated/copied into 'src' directory, now these only exist in 'lib' directory from where curl tool sources uses them. Additionally old src/setup.h has been refactored into src/tool_setup.h which now pulls lib/setup.h The possibility of a makefile needing an include path adjustment exists.
2012-04-05curl: add --post303 to set the CURL_REDIR_POST_303 optionDaniel Stenberg
2012-04-01curl tool: add filename_effective token for --write-outDave Reisner
By modifying the parameter list for ourWriteOut() and passing the OutStruct that collects data in tool_operate, we get access to the remote name that we're writing to. Shell scripters should find this useful when used in conjuntion with the --remote-header-name option.
2012-02-23Generate lists and use symbols in --libcurl code output.Colin Hogben
This patch improves the output of curl's --libcurl option by generating code which builds curl_httppost and curl_slist lists, and uses symbolic names for enum and flag values. Variants of the my_setopt macro in tool_setopt.h are added in order to pass extra type information to the code-generation step in tool_setopt.c. If curl is configured with --disable-libcurl-option then the macros call curl_easy_setopt directly.
2012-02-16curl: Added support for --mail-authSteve Holme
Added an extra command-line argument to support the optional AUTH parameter in SMTPs MAIL FROM command.
2012-02-13configure: add option disable --libcurl outputColin Hogben
2012-02-09--ssl-allow-beast addedDaniel Stenberg
This new option tells curl to not work around a security flaw in the SSL3 and TLS1.0 protocols. It uses the new libcurl option CURLOPT_SSL_OPTIONS with the CURLSSLOPT_ALLOW_BEAST bit set.
2012-02-09curl: use new library-side TCP_KEEPALIVE optionsDave Reisner
Use the new library CURLOPT_TCP_KEEPALIVE rather than disabling this via the sockopt callback. If --keepalive-time is used, apply the value to CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL.
2012-02-07curl tool: allow glob-loops to abort again upon critical errorsYang Tse
This prevents clobbering of non recoverable error return codes while retaining intended functionality of commit 65103efe
2012-02-06curl tool: don't abort glob-loop due to failuresDaniel Stenberg
We want to continue to the next URL to try even on failures returned from libcurl. This makes -f with ranges still get subsequent URLs even if occasional ones return error. This was a regression as it used to work and broke in the 7.23.0 release. Added test case 1328 to verify the fix. Bug: http://curl.haxx.se/bug/view.cgi?id=3481223 Reported by: Juan Barreto
2012-01-18Remove bogus optimisation of telnet upload.Colin Hogben
Remove wrongly implemented optimisation of telnet upload, apparently intended to allow the library to avoid manually polling for input.
2011-12-21operate: removed a single trailing spaceDaniel Stenberg
2011-12-21--retry: Retry transfers on timeout and DNS errorsDan Fandrich
2011-11-20-J -O: use -O name if no Content-Disposition header comes!Daniel Stenberg
A regression between 7.22.0 and 7.23.0 -- downloading a file with the flags -O and -J results in the content being written to stdout if and only if there was no Content-Disposition header in the http response. If there is a C-D header with a filename attribute, the output is correctly written. Reported by: Dave Reisner Bug: http://curl.haxx.se/mail/archive-2011-11/0030.html
2011-10-22tool_operate.c: OOM handling fixYang Tse
Move curl_easy_perform source code geneartion out of curl_easy_perform's loop for proper OOM handling and source code geneartion.
2011-10-16--show-error: position indepdenentDaniel Stenberg
Previously we required that -S/--show-error was used _after_ -s/--silent. This was slightly confusing since we strive to make arguments as position independent as possible. Now, you can use them in any order and the result should still be the same. Bug: http://curl.haxx.se/bug/view.cgi?id=3424286 Reported by: Andreas Olsson
2011-10-07libcurl: some OOM handling fixesYang Tse
2011-10-06curl tool: reviewed code moved to tool_*.[ch] filesYang Tse
2011-10-05curl tool: OOM handling fixesYang Tse
2011-10-05curl tool: reviewed code moved to tool_*.[ch] filesYang Tse
2011-10-05curl tool: OOM handling fixesYang Tse
2011-10-05curl tool: header inclusion adjustmentYang Tse
2011-10-05curl tool: code moved to tool_*.[ch] filesYang Tse