aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-08-20curl_easy_perform_ev: debug/test functionDaniel Stenberg
This function is meant to work *exactly* as curl_easy_perform() but will use the event-based libcurl API internally instead of curl_multi_perform(). To avoid relying on an actual event-based library and to not use non-portable functions (like epoll or similar), there's a rather inefficient emulation layer implemented on top of Curl_poll() instead. There's currently some convenience logging done in curl_easy_perform_ev which helps when tracking down problems. They may be suitable to remove or change once things seem to be fine enough. curl has a new --test-event option when built with debug enabled that then uses curl_easy_perform_ev() instead of curl_easy_perform(). If built without debug, using --test-event will only output a warning message. NOTE: curl_easy_perform_ev() is not part if the public API on purpose. It is only present in debug builds of libcurl and MUST NOT be considered stable even then. Use it for libcurl-testing purposes only. runtests.pl now features an -e command line option that makes it use --test-event for all curl command line tests. The man page is updated.
2013-08-16glob: error out on range overflowDaniel Stenberg
The new multiply() function detects range value overflows. 32bit machines will overflow on a 32bit boundary while 64bit hosts support ranges up to the full 64 bit range. Added test 1236 to verify. Bug: http://curl.haxx.se/bug/view.cgi?id=1267 Reported-by: Will Dietz
2013-08-16urlglob: better detect unclosed braces, empty lists and overflowsDaniel Stenberg
A rather big overhaul and cleanup. 1 - curl wouldn't properly detect and reject globbing that ended with an open brace if there were brackets or braces before it. Like "{}{" or "[0-1]{" 2 - curl wouldn't properly reject empty lists so that "{}{}" would result in curl getting (nil) strings in the output. 3 - By using strtoul() instead of sscanf() the code will now detected over and underflows. It now also better parses the step argument to only accept positive numbers and only step counters that is smaller than the delta between the maximum and minimum numbers. 4 - By switching to unsigned longs instead of signed ints for the counters, the max values for []-ranges are now very large (on 64bit machines). 5 - Bumped the maximum number of globs in a single URL to 100 (from 10) 6 - Simplified the code somewhat and now it stores fixed strings as single- entry lists. That's also one of the reasons why I did (5) as now all strings between "globs" will take a slot in the array. Added test 1234 and 1235 to verify. Updated test 87. This commit fixes three separate bug reports. Bug: http://curl.haxx.se/bug/view.cgi?id=1264 Bug: http://curl.haxx.se/bug/view.cgi?id=1265 Bug: http://curl.haxx.se/bug/view.cgi?id=1266 Reported-by: Will Dietz
2013-08-14--help: fix the --sasl-ir in the help outputDaniel Stenberg
2013-08-14curl: make --no-[option] work properly for several optionsDaniel Stenberg
--create-dirs, --crlf, --socks5-gssapi-nec and --sasl-ir
2013-08-01curl: second follow-up for commit 5af2bfb9Yang Tse
Display progress-bar unconditionally on first call
2013-07-31curl: follow-up for commit 5af2bfb9Yang Tse
Use tvnow() and tvdiff() to avoid introducing new linkage issues
2013-07-31curl: --progress-bar max update frequency now at 5HzDaniel Stenberg
2013-07-31curl: make --progress-bar update the line less frequentlyDaniel Stenberg
Also, use memset() instead of a lame loop. The previous logic that tried to avoid too many updates were very ineffective for really fast transfers, as then it could easily end up doing hundreds of updates per second that would make a significant impact in transfer performance! Bug: http://curl.haxx.se/mail/archive-2013-07/0031.html Reported-by: Marc Doughty
2013-07-30md5 & metalink: use better build macros on Apple operating systemsNick Zitzmann
Previously we used __MAC_10_X and __IPHONE_X to mark digest-generating code that was specific to OS X and iOS. Now we use __MAC_OS_X_VERSION_MAX_ALLOWED and __IPHONE_OS_VERSION_MAX_ALLOWED instead of those macros. Bug: http://sourceforge.net/p/curl/bugs/1255/ Reported by: Edward Rudd
2013-07-29tool_operhlp.c: fix add_file_name_to_url() OOM handlingYang Tse
2013-07-29tool_operate.c: fix brace placement for vi/emacs delimiter matchingYang Tse
2013-07-29tool_operate.c: move <fabdef.h> header inclusion locationYang Tse
2013-07-22curl: fix upload of a zip file in OpenVMSJohn E. Malmberg
Two fixes: 1. Force output file format to be stream-lf so that partial downloads can be continued. This should have minor impact as if the file does not exist, it was created with stream-lf format. The only time this was an issue is if there was already an existing file with a different format. 2. Fix file uploads are now fixed. a. VMS binary files such as ZIP archives are now uploaded correctly. b. VMS text files are read once to get the correct size and then converted to line-feed terminated records as they are read into curl. The default VMS text formats do not contain either line-feed or carriage-return terminated records. Those delimiters are added by the operating system file read calls if the application requests them. Bug: http://curl.haxx.se/bug/view.cgi?id=496
2013-07-22curl: fix symbolic names for CURL_NETRC_* enum in --libcurl outputYang Tse
2013-07-22curl: fix symbolic names for CURLUSESSL_* enum in --libcurl outputYang Tse
2013-07-22tool_operate.c: fix passing curl_easy_setopt long arg on some x64 ABIsYang Tse
We no longer pass our 'bool' data type variables nor constants as an argument to my_setopt(), instead we use proper 1L or 0L values. This also fixes macro used to pass string argument for CURLOPT_SSLCERT, CURLOPT_SSLKEY and CURLOPT_EGDSOCKET using my_setopt_str() instead of my_setopt(). This also casts enum or int argument data types to long when passed to my_setopt_enum().
2013-07-19Makefile.b32: Borland makefile adjustments. Tested with BCC 5.5.1Yang Tse
2013-07-17cmake: Fix for MSVC2010 project generationSergei Nikulov
Fixed issue with static build for MSVC2010. After some investigation I've discovered known issue http://public.kitware.com/Bug/view.php?id=11240 When .rc file is linked to static lib it fails with following linker error LINK : warning LNK4068: /MACHINE not specified; defaulting to X86 file.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' Fix add target property /MACHINE: for MSVC generation. Also removed old workarounds - it caused errors during msvc build. Bug: http://curl.haxx.se/mail/lib-2013-07/0046.html
2013-07-14src/tool: allow timeouts to accept decimal valuesDave Reisner
Implement wrappers around strtod to convert the user argument to a double with sane error checking. Use this to allow --max-time and --connect-timeout to accept decimal values instead of strictly integers. The manpage is updated to make mention of this feature and, additionally, forewarn that the actual timeout of the operation can vary in its precision (particularly as the value increases in its decimal precision).
2013-07-14src/tool_paramhlp: try harder to catch negativesDave Reisner
strto* functions happily chomp off leading whitespace, so simply checking for str[0] can lead to false negatives. Do the full parse and check the out value instead.
2013-07-08Added winssl-zlib target to VC builds.Guenter Knauf
2013-05-11Updated zlib version in build files.Guenter Knauf
2013-05-06build: fixed unit1394 for debug and metlink buildsDaniel Stenberg
2013-05-06unit1394.c: plug the curl tool unit test inKamil Dudka
2013-05-06src/Makefile.am: build static lib for unit tests if enabledKamil Dudka
2013-05-06tool_getparam: ensure string termination in parse_cert_parameter()Kamil Dudka
2013-05-06tool_getparam: fix memleak in handling the -E optionKamil Dudka
2013-05-06tool_getparam: describe what parse_cert_parameter() doesKamil Dudka
... and de-duplicate the code initializing *passphrase
2013-05-06curl -E: allow to escape ':' in cert nicknameJared Jennings
2013-04-27Corrected version numbers after bumpSteve Holme
2013-04-27sasl-ir: Added --sasl-ir option to curl command line toolSteve Holme
2013-04-20tool_paramhlp: Fixed options being included in usernameSteve Holme
Fix to prevent the options from being displayed when curl requests the user's password if the following command line is specified: --user username;options
2013-04-11Enabled MinGW sync resolver builds.Guenter Knauf
2013-04-09Fixed ares-enabled builds with static makefiles.Guenter Knauf
2013-04-04--engine: spellfix the help messageDaniel Stenberg
Reported by: Fredrik Thulin
2013-03-13tool_main.c: remove redundant vms_show storage-class specifierYang Tse
vms_show 'extern' storage-class specifier removed from tool_main.c due to... - Advice from Tor Arntsen: http://curl.haxx.se/mail/lib-2013-03/0164.html - HP OpenVMS docs stating that 'Extern is the default storage class for variables declared outside a function.' http://h71000.www7.hp.com/commercial/c/docs/dec_c_help_5.html (Storage_Classes section)
2013-03-13tool_main.c: fix VMS global variable storage-class specifierTom Grace
An extern submits a psect and a global reference to the linker to point to it. Using "extern int vms_show = 0" also creates a globaldef. The use of the extern by itself does declare a psect but does not declare a globalsymbol. It does declare a globalref. But the linker needs one and only one globaldef or there is an error.
2013-03-12curl.h: stricter CURL_EXTERN linkage decorations logicYang Tse
No API change involved. Info: http://curl.haxx.se/mail/lib-2013-02/0234.html
2013-03-07checksrc: ban unsafe functionsDaniel Stenberg
The list of unsafe functions currently consists of sprintf, vsprintf, strcat, strncat and gets. Subsequently, some existing code needed updating to avoid warnings on this.
2013-02-19metalink: fix improbable crash parsing metalink filenameNick Zitzmann
The this_url pointer wasn't being initialized, so if strdup() would return null when copying the filename in a metalink file, then hilarity would ensue during the cleanup phase. This change was brought to you by clang, which noticed this and raised a warning.
2013-02-15metalink_cleanup: yet another follow-up fixDaniel Stenberg
2013-02-15metalink_cleanup: define it without argumentDaniel Stenberg
Since the function takes no argument, the macro shouldn't take one as some compilers will error out on that.
2013-02-14remove ifdefsDaniel Stenberg
Clarify the code by reducing ifdefs
2013-02-13move msvc IDE related files to 'vc' directory treeYang Tse
2013-02-09Updated dependency libs.Guenter Knauf
2013-02-06msvc: move Makefile.msvc.names into winbuild/Daniel Stenberg
In an attempt to clear up misc files from the root dir
2013-02-06vms_show: post VMS patch cleanup - IIYang Tse
- remove multiple declarations of vms_show and add comments
2013-02-06tool_main.c: post VMS patch cleanup - IYang Tse
- remove header inclusion already done in curl_setup_once.h
2013-02-05VMS: fix and generate the VMS build configJohn E. Malmberg
config_h.com is a new file that generates a config.h file based on the curl_config.h.in file and a quick scan of the configure script. This is actually a generic procedure that is shared with other VMS packages. The existing pre-built config-vms.h had over 100 entries that were not correct and in some cases conflicted with the build options available in the build_vms.com. generate_config_vms_h_curl.com is a helper procedure to the config_h.com. It covers the cases that the generic config_h.com is not able to figure out, and accepts input from the build_vms.com procedure. build_curlbuild_h.com is a new file to generate the curlbuild.h file that Curl is now using when it is using a curl_config.h file. post-config-vms.h is a new file that is needed to provide VMS specific definitions, and most of them need to be set before the system header files are included. The VMS build procedure is fixed: 1. Fixed to link in the correct HP ssl library. 2. Fixed to detect if HP Kerberos is installed. 3. Fixed to detect if HP LDAP is installed. 4. Fixed to detect if gnv$libzshr is installed. 5. Simplified the input parameter parsing to not use a loop. 6. Warn that 64 bit pointer option support is not complete in comments. 7. Default to IEEE floating if platform supports it so resulting libcurl will be compatible with other open source projects on VMS. 8. Default to LARGEFILE if platform supports it. 9. Default to enable SSL, LDAP, Kerberos, libz if the libraries are present. 10. Build with exact case global symbols for libcurl. 11. Generate linker option file needed. 12. Compiler list option only commonly needed items. 13. fulllist option for those who really want it. 14. Create debug symbol file on Alpha, IA64.