summaryrefslogtreecommitdiff
path: root/src/tool_cb_wrt.c
Commit message (Collapse)AuthorAgeFilesLines
* tool_cb_wrt: fix outfile mode flags for WindowsJay Satiro2020-07-291-3/+6
| | | | | | | | | | | | | | | | - Use S_IREAD and S_IWRITE mode permission flags to create the file on Windows instead of S_IRUSR, S_IWUSR, etc. Windows only accepts a combination of S_IREAD and S_IWRITE. It does not acknowledge other combinations, for which it may generate an assertion. This is a follow-up to 81b4e99 from yesterday, which improved the existing file check with -J. Ref: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/open-wopen#remarks Ref: https://github.com/curl/curl/pull/5731 Closes https://github.com/curl/curl/pull/5742
* curl: improve the existing file check with -JDaniel Stenberg2020-07-281-9/+22
| | | | | | | | | | Previously a file that isn't user-readable but is user-writable would not be properly avoided and would get overwritten. Reported-by: BrumBrum on hackerone Assisted-by: Jay Satiro Bug: https://hackerone.com/reports/926638 Closes #5731
* curl: remove 'config' field from OutStructDaniel Stenberg2020-01-121-6/+9
| | | | | | | | | | | | As it was just unnecessary duplicated information already stored in the 'per_transfer' struct and that's around mostly anyway. The duplicated pointer caused problems when the code flow was aborted before the dupe was filled in and could cause a NULL pointer access. Reported-by: Brian Carpenter Fixes #4807 Closes #4810
* curl: support parallel transfersDaniel Stenberg2019-07-201-3/+5
| | | | | | | | This is done by making sure each individual transfer is first added to a linked list as then they can be performed serially, or at will, in parallel. Closes #3804
* build: fix Codacy/CppCheck warningsMarcel Raad2019-04-111-1/+1
| | | | | | | | | | - remove unused variables - declare conditionally used variables conditionally - suppress unused variable warnings in the CMake tests - remove dead variable stores - consistently use WIN32 macro to detect Windows Closes https://github.com/curl/curl/pull/3739
* tool_cb_wrt: fix bad-function-cast warningMarcel Raad2019-04-021-5/+3
| | | | | | | | | Commit f5bc578f4cdfdc6c708211dfc2962a0e9d79352d reintroduced the warning fixed in commit 2f5f31bb57d68b54e03bffcd9648aece1fe564f8. Extend fhnd's scope and reuse that variable instead of calling _get_osfhandle a second time to fix the warning again. Closes https://github.com/curl/curl/pull/3718
* tool_cb_wrt: fix writing to Windows null device NULJay Satiro2019-03-261-1/+6
| | | | | | | | | | | | - Improve console detection. Prior to this change WriteConsole could be called to write to a handle that may not be a console, which would cause an error. This issue is limited to character devices that are not also consoles such as the null device NUL. Bug: https://github.com/curl/curl/issues/3175#issuecomment-439068724 Reported-by: Gisle Vanem
* curl -J: do not append to the destination fileDaniel Stenberg2018-12-191-5/+4
| | | | | | Reported-by: Kamil Dudka Fixes #3380 Closes #3381
* tool_cb_wrt: Silence function cast compiler warningDaniel Gustafsson2018-11-131-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Commit 5bfaa86ceb3c2a9ac474a928e748c4a86a703b33 introduced a new compiler warning on Windows cross compilation with GCC. See below for an example of the warning from the autobuild logs (whitespace edited to fit): /src/tool_cb_wrt.c:175:9: warning: cast from function call of type 'intptr_t {aka long long int}' to non-matching type 'void *' [-Wbad-function-cast] (HANDLE) _get_osfhandle(fileno(outs->stream)), ^ Store the return value from _get_osfhandle() in an intermediate variable and cast the variable in WriteConsoleW() rather than the function call directly to avoid a compiler warning. In passing, also add inspection of the MultiByteToWideChar() return value and return failure in case an error is reported. Closes #3263 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com> Reviewed-by: Viktor Szakats <commit@vszakats.net>
* curl: fixed UTF-8 in current console code page (Windows)Yasuhiro Matsumoto2018-11-051-1/+30
| | | | | | Fixes #3211 Fixes #3175 Closes #3212
* curl: show headers in boldDaniel Stenberg2018-05-211-6/+7
| | | | | | | | | | | | | | | | | | The feature is only enabled if the output is believed to be a tty. -J: There's some minor differences and improvements in -J handling, as now J should work with -i and it actually creates a file first using the initial name and then *renames* that to the one found in Content-Disposition (if any). -i: only shows headers for HTTP transfers now (as documented). Previously it would also show for pieces of the transfer that were HTTP (for example when doing FTP over a HTTP proxy). -i: now shows trailers as well. Previously they were not shown at all. --libcurl: the CURLOPT_HEADER is no longer set, as the header output is now done in the header callback.
* tool_cb_wrt: fix variable shadowing warningMarcel Raad2017-07-091-3/+3
| | | | | | | | | | | GCC 4.4 complains: tool_cb_wrt.c:81: error: declaration of ‘isatty’ shadows a global declaration /usr/include/unistd.h:782: error: shadowed declaration is here Fix this by renaming the variable. Closes https://github.com/curl/curl/pull/1661
* tool_wrte_cb: remove check for config == NULLDaniel Stenberg2017-06-171-3/+0
| | | | | | | | | | ... as it really cannot have reached this far with config being NULL, thus this is unnecesary and misleading. Bug: https://news.ycombinator.com/item?id=14577585 and https://daniel.haxx.se/blog/2017/06/17/curl-doesnt-spew-binary-anymore/comment-page-1/#comment-18356 Forwarded-to-us-by: Jakub Wilk
* curl: prevent binary output spewed to terminalDaniel Stenberg2017-06-161-6/+27
| | | | | | | | | ... 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
* gcc7: fix ‘*’ in boolean context, suggest ‘&&’ instead ↵Alexis La Goutte2017-03-301-1/+1
| | | | | | [-Wint-in-bool-context] Closes #1371
* curl: fix callback argument inconsistencyHanno Böck2017-03-291-1/+1
| | | | | | | As you can see the callback definition uses a char* for the first argument, while the function uses a void*. URL: https://curl.haxx.se/mail/lib-2017-03/0116.html
* URLs: change all http:// URLs to https://Daniel Stenberg2016-02-031-1/+1
|
* src/tool_cb_wrt: separate fnc for output file creationKamil Dudka2015-04-081-32/+39
|
* tool: wrap lines longer than 79 columnsKamil Dudka2015-02-281-2/+2
| | | | ... to avoid a build failure when configured with --enable-debug
* tool: Updated the warnf() function to use the GlobalConfig structureSteve Holme2015-02-271-8/+8
| | | | | | As the 'error' and 'mute' options are now part of the GlobalConfig, rather than per Operation, updated the warnf() function to use this structure rather than the OperationConfig.
* tool_cfgable: Renamed Configurable structure to OperationConfigSteve Holme2014-02-231-2/+2
| | | | | To allow for the addition of a global config structure and prevent confusion between the two.
* Revert changes relative to lib/*.[ch] recent renamingYang Tse2013-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use of 76 lib/*.h renamed files ffd8e12... build: rename 76 lib/*.h files This also reverts removal of redundant include guard (redundant thanks to changes in above commits) done 2-12-2013, reverting 1 commit: c087374... curl_setup.h: remove redundant include guard This also reverts renaming and usage of lib/*.c source files done 3-12-2013, reverting 3 commits: 13606bb... build: make use of 93 lib/*.c renamed files 5b6e792... build: rename 93 lib/*.c files 7d83dff... build: commit 13606bbfde follow-up 1 Start of related discussion thread: http://curl.haxx.se/mail/lib-2013-01/0012.html Asking for confirmation on pushing this revertion commit: http://curl.haxx.se/mail/lib-2013-01/0048.html Confirmation summary: http://curl.haxx.se/mail/lib-2013-01/0079.html NOTICE: The list of 2 files that have been modified by other intermixed commits, while renamed, and also by at least one of the 6 commits this one reverts follows below. These 2 files will exhibit a hole in history unless git's '--follow' option is used when viewing logs. lib/curl_imap.h lib/curl_smtp.h
* build: make use of 76 lib/*.h renamed filesYang Tse2012-12-281-1/+1
| | | | | | 76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
* Fixes allowing HTTP test cases 1338, 1339, 1368 and 1369 to succeedYang Tse2012-06-071-2/+2
|
* curl tool: make curl.h first header included in tool_setup.hYang Tse2012-04-081-2/+0
|
* curl tool: use configuration files from lib directoryYang Tse2012-04-061-2/+2
| | | | | | | | | | | 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.
* tool_cb_wrt.c: disambiguate warning messageYang Tse2011-11-031-1/+1
|
* large headers: have curl accept >16K headersDaniel Stenberg2011-10-241-3/+11
| | | | | | | As commit 5850cc4808ab clarifies, libcurl can deliver header lines that are longer than CURL_MAX_WRITE_SIZE, only body data is limited to that size. The curl tool has check (when built debug-enabled) that made the wrong checks and this new test 1205 verifies that larger headers work.
* curl tool: fix some more OOM handlingYang Tse2011-09-301-25/+61
|
* curl tool: fix some OOM handlingYang Tse2011-09-261-0/+7
|
* remove short-lived CURL_WRITEFUNC_OUT_OF_MEMORYYang Tse2011-09-261-4/+0
|
* allow write callbacks to indicate OOM to libcurlYang Tse2011-09-251-0/+4
| | | | | | Allow (*curl_write_callback) write callbacks to return CURL_WRITEFUNC_OUT_OF_MEMORY to properly indicate libcurl of OOM conditions inside the callback itself.
* curl tool: reviewed code moved to tool_*.[ch] filesYang Tse2011-09-241-0/+103