Yang Tse [Mon, 9 Aug 2010 11:06:27 +0000 (13:06 +0200)]
build: fix previous push
Yang Tse [Mon, 9 Aug 2010 07:33:53 +0000 (09:33 +0200)]
build: don't build libhostname unless shared libcurl is built
Yang Tse [Mon, 9 Aug 2010 03:45:11 +0000 (05:45 +0200)]
build: libhostname and chkhostname linkage adjustments followup
Daniel Stenberg [Sun, 8 Aug 2010 20:51:37 +0000 (22:51 +0200)]
typo: remove duplicate semicolon
Daniel Stenberg [Sat, 7 Aug 2010 23:06:29 +0000 (01:06 +0200)]
multi: avoid a malloc() when a transfer is complete
The struct used for storing the message for a completed transfer is now
no longer allocated separatly but is kept within the main struct kept
for each easy handle so that we avoid one malloc (and the subsequent
free).
Yang Tse [Sun, 8 Aug 2010 00:58:19 +0000 (02:58 +0200)]
build: libhostname linkage adjustments followup
Guenter Knauf [Sat, 7 Aug 2010 16:32:39 +0000 (18:32 +0200)]
Fix to overwrite libcurl name.
Yang Tse [Sat, 7 Aug 2010 15:39:36 +0000 (17:39 +0200)]
build: chkhostname build adjustments followup
U-D5B1PQ1J\Administrador [Sat, 7 Aug 2010 12:33:14 +0000 (14:33 +0200)]
build: allow NTLM tests to run on more build configurations
Daniel Stenberg [Sat, 7 Aug 2010 12:06:28 +0000 (14:06 +0200)]
curl_easy_setopt.3: rename stream to userdata
In some places where the name 'stream' has been used for naming a
function argument that is in fact settable with a setopt() option we now
call that argument 'userdata' to make it more obvious that it is in fact
possible to set by the application.
Suggested by: Jeff Pohlmeyer
Guenter Knauf [Fri, 6 Aug 2010 23:29:04 +0000 (01:29 +0200)]
Block created curlbuild.h for NetWare to avoid usage from other platforms.
Daniel Stenberg [Fri, 6 Aug 2010 22:24:04 +0000 (00:24 +0200)]
RELEASE-NOTES: synced with recent changes
Yang Tse [Fri, 6 Aug 2010 16:40:13 +0000 (18:40 +0200)]
build: ensure that libhostname doesn't get installed
Daniel Stenberg [Fri, 6 Aug 2010 08:57:44 +0000 (10:57 +0200)]
multi_socket: set timeout for 100-continue
When libcurl internally decided to wait for a 100-continue header, there
was no call to the timeout function so there was no timeout callback
called when the multi_socket API was used and thus applications became
either completely wrong or at least ineffecient depending on how they
handled the situation. We now set a timeout to get triggered.
Reported by: Ben Darnell
Bug: http://curl.haxx.se/bug/view.cgi?id=3039744
Guenter Knauf [Fri, 6 Aug 2010 01:42:18 +0000 (03:42 +0200)]
Some more Watcom makefile massage ...
For now removed the .autodepend directive until I've figured out
which of my changes broke it again.
Yang Tse [Thu, 5 Aug 2010 14:27:39 +0000 (16:27 +0200)]
build: fix libssh2_scp_send64() availability
Yang Tse [Wed, 4 Aug 2010 17:05:09 +0000 (19:05 +0200)]
build: remove unneeded cast to (void *)
Yang Tse [Wed, 4 Aug 2010 16:54:45 +0000 (18:54 +0200)]
build: remove unused file
Daniel Stenberg [Wed, 4 Aug 2010 15:23:38 +0000 (17:23 +0200)]
SCP: send large files properly with new enough libssh2
libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit
architectures and we make sure to use that ability.
Reported by: Mikael Johansson
Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html
Yang Tse [Tue, 3 Aug 2010 11:09:39 +0000 (13:09 +0200)]
build: add missing new files to non-configure target build files
Yang Tse [Tue, 3 Aug 2010 10:00:32 +0000 (12:00 +0200)]
md4: replace bcopy usage with memcpy
Daniel Stenberg [Mon, 2 Aug 2010 22:00:01 +0000 (00:00 +0200)]
RELEASE-NOTES: synced with recent changes
Daniel Stenberg [Mon, 2 Aug 2010 21:51:56 +0000 (23:51 +0200)]
TODO-RELEASE: clear, file not really used ATM
Daniel Stenberg [Mon, 2 Aug 2010 21:48:21 +0000 (23:48 +0200)]
typecheck-gcc: add checks for recently added options
I added all OBJECTPOINT curl_easy_setopt() options from 178 to 202. Left
to add: the five FUNCTIONPOINT (callbacks) options added since:
SSH_KEYFUNCTION
INTERLEAVEFUNCTION
CHUNK_BGN_FUNCTION
CHUNK_END_FUNCTION
FNMATCH_FUNCTION
Daniel Stenberg [Mon, 2 Aug 2010 21:47:44 +0000 (23:47 +0200)]
.gitignore: ignore all built examples
Daniel Stenberg [Mon, 2 Aug 2010 21:46:24 +0000 (23:46 +0200)]
example: fix code to build warning-free
Daniel Stenberg [Mon, 2 Aug 2010 21:17:30 +0000 (23:17 +0200)]
Curl_connected_proxy: skip the bits.tcpconnect check
Simply because the TCP might be connected already we cannot skip the
proxy connect procedure. We need to be careful to not overload more
meaning to the bits.tcpconnect field like this.
With this fix, SOCKS proxies work again when the multi interface is
used. I believe this regression was added with commit
4b351d018e,
released as 7.20.1.
Left todo: add a test case that verifies this functionality that
prevents us from breaking it again in the future!
Reported by: Robin Cornelius
Bug: http://curl.haxx.se/bug/view.cgi?id=3033966
Daniel Stenberg [Mon, 2 Aug 2010 20:51:24 +0000 (22:51 +0200)]
sethostname: provide local prototype for gethostname
This is only to avoid warnings on some systems.
Daniel Stenberg [Mon, 2 Aug 2010 16:53:03 +0000 (18:53 +0200)]
build: add typecast to avoid warning
There is an implicit conversion from "unsigned long" to "long";
rounding, sign extension, or loss of accuracy may result.
Guenter Knauf [Mon, 2 Aug 2010 10:24:54 +0000 (12:24 +0200)]
Rename CURL_SOURCES macro; revert previous rename of curl_SOURCES macro.
Guenter Knauf [Mon, 2 Aug 2010 03:51:17 +0000 (05:51 +0200)]
Removed ugly dependency lists since wmake knows the .autodepend directive.
Guenter Knauf [Mon, 2 Aug 2010 02:53:17 +0000 (04:53 +0200)]
Use suffix search path for sources in lib folder.
Guenter Knauf [Mon, 2 Aug 2010 00:01:56 +0000 (02:01 +0200)]
Changed src/Makefile.Watcom to use CURL_SOURCES from src/Makefile.inc.
Guenter Knauf [Sun, 1 Aug 2010 23:50:53 +0000 (01:50 +0200)]
Renamed curl_SOURCES to CURL_ALLFILES to overcome wmake's case-insensitivity.
Guenter Knauf [Sun, 1 Aug 2010 23:30:37 +0000 (01:30 +0200)]
Removed wlink from DLL loader list because it doesnt work with Watcom < 1.8.
Guenter Knauf [Sun, 1 Aug 2010 23:24:04 +0000 (01:24 +0200)]
Moved the LDAP API defines from Makefile.Watcom to config-win32.h.
These defines are only needed for older Watcom versions (< 1280).
Daniel Stenberg [Sun, 1 Aug 2010 22:10:18 +0000 (00:10 +0200)]
retry: consider retrying even if -f is used
The --retry logic does retry HTTP when some specific response codes are
returned, but because the -f option sets the CURLOPT_FAILONERROR to
libcurl, the return codes are different for such situations and then the
curl tool failed to consider it for retrying.
Reported by: Mike Power
Bug: http://curl.haxx.se/bug/view.cgi?id=3037362
Daniel Stenberg [Sun, 1 Aug 2010 21:50:46 +0000 (23:50 +0200)]
multi: fix FTPS connecting the data connection with OpenSSL
Commit
496002ea1cd76af7f (released in 7.20.1) broke FTPS when using the
multi interface and OpenSSL was used. The condition for the non-blocking
connect was incorrect.
Reported by: Georg Lippitsch
Bug: http://curl.haxx.se/mail/lib-2010-07/0270.html
Guenter Knauf [Sun, 1 Aug 2010 02:48:29 +0000 (04:48 +0200)]
Fixed curlbuild.h rule.
Guenter Knauf [Sun, 1 Aug 2010 00:39:03 +0000 (02:39 +0200)]
Added rule to create curlbuild.h if not present (for builds from git).
Guenter Knauf [Sat, 31 Jul 2010 22:54:40 +0000 (00:54 +0200)]
Added dependend libs for curl static linking.
Guenter Knauf [Sat, 31 Jul 2010 09:52:05 +0000 (11:52 +0200)]
Fixed curl.exe static linking.
Daniel Stenberg [Fri, 30 Jul 2010 21:19:08 +0000 (23:19 +0200)]
warning: silence a win64 compiler warning
conversion from 'size_t' to 'curl_socklen_t', possible loss of data
Reported by: Adam Light
Daniel Stenberg [Fri, 30 Jul 2010 21:08:17 +0000 (23:08 +0200)]
KNOWN_BUG: The SOCKET type in Win64 is 64 bits
The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t
on that platform), and long is only 32 bits. It makes it impossible for
curl_easy_getinfo() to return a socket properly with the
CURLINFO_LASTSOCKET option as for all other operating systems.
Daniel Stenberg [Fri, 30 Jul 2010 20:36:31 +0000 (22:36 +0200)]
smtp_connect: always provide host name buffer
Previously the host name buffer was only used if gethostname() exists,
but since we converted that into a curl private function that function
always exists and will be used so the buffer needs to exist for all
cases/systems.
Daniel Stenberg [Fri, 30 Jul 2010 20:32:57 +0000 (22:32 +0200)]
sethostname: avoid including unistd.h to duck for warnings
Daniel Stenberg [Fri, 30 Jul 2010 20:26:19 +0000 (22:26 +0200)]
sethostname: ISO C does not allow extra `;' outside of a function
Kamil Dudka [Thu, 29 Jul 2010 22:47:49 +0000 (00:47 +0200)]
NTLM tests: boost coverage by forcing the hostname
A shared library tests/libtest/.libs/lihostname.so is preloaded in NTLM
test-cases to override the system implementation of gethostname(). It
makes it possible to test the NTLM authentication for exact match, and
this way test the implementation of MD4 and DES.
If LD_PRELOAD doesn't work, a debug build willl also workk as debug
builds are now made to prefer a specific environment variable and will
then return that content as host name instead of the actual one.
Kamil wrote the bulk of this, Daniel Stenberg polished it.
Guenter Knauf [Thu, 29 Jul 2010 07:06:55 +0000 (09:06 +0200)]
Added a comment with an alternate idea to avoid the backslash line contination character.
Guenter Knauf [Thu, 29 Jul 2010 03:33:04 +0000 (05:33 +0200)]
Changed comparison to match size_t var type.
Guenter Knauf [Thu, 29 Jul 2010 03:20:43 +0000 (05:20 +0200)]
Removed unused vars to avoid compiler warnings.
Guenter Knauf [Thu, 29 Jul 2010 01:50:09 +0000 (03:50 +0200)]
Make Watcom makefiles use Makefile.inc to reduce future maintainance.
lib/Makefile.Watcom works fine already, for src/Makefile.Watcom we
need first to tweak src/Makefile.inc a bit - therefore the handtweaked
list still exists for now.
Guenter Knauf [Thu, 29 Jul 2010 01:18:40 +0000 (03:18 +0200)]
Watcom makefiles overhaul.
- make both libcurl and curl makefiles use register calling convention
(previously libcurl had stack calling convention).
- added include paths to the Watcom headers so its no longer required
to set the environment vars for this.
- added -wcd=201 to supress compiler warning about unreachable code.
- use macros for all tools, and removed dependency on GNU tools like rm.
- make ipv6 and debug builds controlable via env vars and so make them
optional instead of default.
- commented WINLDAPAPI and WINBERAPI since they broke with OW 1.8, and
it seems they're not needed (anymore?).
- added rule for hugehelp.c.cvs so that it will be created when not
already exist - this is required for building from a release tarball
since there we have no hugehelp.c.cvs, thus compilation broke.
- removed C_ARG creation from lib/Makefile.Watcom and use CFLAGS
directly as done too in src/Makefile.Watcom - this has the benefit
that we will see all active cflags and defines during compile.
- added LINK-ARG to src/Makefile.Watcom in order to better control
linker input.
- a couple of other minor makefile tweaks here and there ...
- added largefile support for Watcom builds to config-win32.h. Not yet
tested if it really works, but should since Win32 supports it.
- added loaddll stuff to speed up builds if supported.
Guenter Knauf [Wed, 28 Jul 2010 06:05:00 +0000 (08:05 +0200)]
some cosmetic changes.
Dan Fandrich [Mon, 26 Jul 2010 23:41:27 +0000 (16:41 -0700)]
Added md4.c to the Watcom makefile
Dan Fandrich [Mon, 26 Jul 2010 23:38:29 +0000 (16:38 -0700)]
Added PolarSSL to the docs
Daniel Stenberg [Sun, 25 Jul 2010 15:48:07 +0000 (17:48 +0200)]
curl-config: --built-shared returns shared info
The curl-config now features a --built-shared command line option that
will output 'yes' or 'no' depending if the build process was asked to
build shared library/libraries or not.
It is primarily made to offer more details to the test suite to know
what kind of stunts it can expect to work.
Daniel Stenberg [Sat, 24 Jul 2010 20:52:35 +0000 (22:52 +0200)]
add_buffer_send: fix compiler warning
Win64's 32 bit long but 64 bit size_t caused a warning that we avoid
with a typecast. A small whitespace indent fix was also applied.
Reported by: Adam Light
Guenter Knauf [Thu, 22 Jul 2010 02:34:54 +0000 (04:34 +0200)]
Updated library versions.
Guenter Knauf [Thu, 22 Jul 2010 02:29:54 +0000 (04:29 +0200)]
Fixed script version which was still based on CVS Revision tag.
Dan Fandrich [Wed, 21 Jul 2010 22:15:07 +0000 (15:15 -0700)]
FAQ: Why doesn't cURL error out when the cable is unplugged?
This one was long overdue to be mentioned in the FAQ. Also, mention the
new ftp wildcard downloading feature.
Ben Greear [Mon, 19 Jul 2010 16:06:20 +0000 (18:06 +0200)]
ssh: Fix compile error on 64-bit systems.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Ben Greear [Mon, 19 Jul 2010 16:07:09 +0000 (18:07 +0200)]
build: Enable configure --enable-werror
This passes -Werror to gcc when building curl and libcurl,
allowing easy dection of compile warnings.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Ben Greear [Mon, 19 Jul 2010 16:07:50 +0000 (18:07 +0200)]
pingpong: Fix indentation (whitespace change only)
Signed-off-by: Ben Greear <greearb@candelatech.com>
Jan Van Boghout [Sun, 18 Jul 2010 18:23:08 +0000 (20:23 +0200)]
CUSTOMREQUEST: shouldn't be disabled when HTTP is disabled
... since FTP is using it as well, and potentially other protocols!
Also, an #endif CURL_DISABLE_HTTP was incorrectly marked, as it seems to
end the proxy block instead.
Jan Van Boghout [Sat, 17 Jul 2010 22:49:29 +0000 (00:49 +0200)]
pingpong: response_time is milliseconds
Fixed the comment/document for the response_time struct member.
Jan Van Boghout [Sat, 17 Jul 2010 22:44:25 +0000 (00:44 +0200)]
ftp: response timeout bug in "quote" sending
The FTP implementation was missing a timestamp reset point, making the
waiting for responses after sending a post-transfer "QUOTE" command not
working as supposedly. This bug was introduced in 7.20.0
Jeff Pohlmeyer [Sat, 17 Jul 2010 18:04:02 +0000 (20:04 +0200)]
remote-header-name: chop filename at next semicolon
The --remote-header-name option for the command-line tool assumes that
everything beyond the filename= field is part of the filename, but that
might not always be the case, for example:
Content-Disposition: attachment; filename=file.txt; modification-date=...
This fix chops the filename off at the next semicolon, if there is one.
Daniel Stenberg [Wed, 14 Jul 2010 21:50:01 +0000 (23:50 +0200)]
--retry: access violation with URL part sets continued
When getting multiple URLs, curl didn't properly reset the byte counter
after a successful transfer so if the subsequent transfer failed it
would wrongly use the previous byte counter and behave badly (segfault)
because of that. The code assumes that the byte counter and the 'stream'
pointer is well in synch.
Reported by: Jon Sargeant
Bug: http://curl.haxx.se/bug/view.cgi?id=3028241
Daniel Stenberg [Tue, 13 Jul 2010 22:40:20 +0000 (00:40 +0200)]
releasnote: synch up with commit
f3b77e5611d
Constantine Sapuntzakis [Tue, 13 Jul 2010 22:32:53 +0000 (00:32 +0200)]
examples: add curl_multi_timeout
Make the multi-interface using examples use curl_multi_timeout to
properly educate users how to do things.
Daniel Stenberg [Mon, 12 Jul 2010 21:40:16 +0000 (23:40 +0200)]
configure: document the STATICLIB variable
Constantine Sapuntzakis [Mon, 12 Jul 2010 17:19:31 +0000 (19:19 +0200)]
multi: fix condition that remove timers before trigger
curl_multi perform has two phases: run through every easy handle calling
multi_runsingle and remove expired timers (timer removal).
If a small timer (e.g. 1-10ms) is set during multi_runsingle, then it's
possible that the timer has passed by when the timer removal runs. The
timer which was just added is then removed. This will potentially cause
the timer list to be empty and cause the next call to curl_multi_timeout
to return -1. Ideally, curl_multi_timeout should return 0 in this case.
One way to fix this is to move the struct timeval now = Curl_tvnow(); to
the top of curl_multi_perform. The change does that.
Constantine Sapuntzakis [Mon, 12 Jul 2010 17:03:51 +0000 (19:03 +0200)]
threaded resolver: fix timeout issue
Reset old timer first so we can set a new one further in the future.
Daniel Stenberg [Mon, 12 Jul 2010 16:39:40 +0000 (18:39 +0200)]
configure: allow environments variable to override internals
configure checks for grep, egrep, sed and ar and set the variables GREP,
EGREP, SED and AR accordingly. We now let already set variables override
the internal choices to let users make decisions when they know the
right choice already. This is a regression as our configure script used
to allow this back before commit
0b57c475 (up to 7.18.2).
Reported by: "kdekker"
Bug: http://curl.haxx.se/bug/view.cgi?id=3028318
Dan Fandrich [Fri, 9 Jul 2010 23:11:36 +0000 (16:11 -0700)]
Improved the Android build instructions
Tor Arntsen [Wed, 7 Jul 2010 09:55:31 +0000 (11:55 +0200)]
upload: Avoid infinite loop when checking for auth bits
The test would loop forever if authtype bit 0 wasn't set.
Daniel Stenberg [Tue, 6 Jul 2010 21:25:32 +0000 (23:25 +0200)]
upload: warn users trying to upload from stdin with anyauth
Since uploading from stdin is very likely to not work with anyauth and
its multi-phase probing for what authentication to actually use, alert
the user about it. Multi-phase negotiate almost certainly will involve
sending data and thus libcurl will need to rewind the stream to send
again, and it cannot do that with stdin.
Daniel Stenberg [Tue, 6 Jul 2010 20:50:21 +0000 (22:50 +0200)]
http: don't enable chunked during authentication negotiations
As mentioned in bug report #2956968, the HTTP code wouldn't send the
first empty chunk during the auth negotiation phase of the HTTP request
sending, so the server would wait for data to come and libcurl would
wait for data to arrive... I've made the code not enable chunked
encoding until the auth negotiation is done and thus this scenario
doesn't occur anymore.
Reported by: Sidney San MartÃn
Bug: http://curl.haxx.se/bug/view.cgi?id=2956968
Daniel Stenberg [Tue, 6 Jul 2010 20:44:19 +0000 (22:44 +0200)]
--libcurl: list the tricky options instead of using [REMARK]
I think the [REMARK] and commented function calls cluttered the code a
bit too much and made the generated code ugly to read. Now we instead
track the remarks one specially and just lists them at the end of the
generated code more as additional information.
Daniel Stenberg [Tue, 6 Jul 2010 20:43:05 +0000 (22:43 +0200)]
curl: avoid setting libcurl options to its default
it makes the --libcurl output easier to follow.
Daniel Stenberg [Tue, 6 Jul 2010 20:13:22 +0000 (22:13 +0200)]
--libcurl: hide setopt() calls setting default options
And additionally, don't show function or object pointers actual value
since they make no sense to anyone. Show 'functionpointer' and
'objectpointer' instead.
Daniel Stenberg [Tue, 6 Jul 2010 17:19:52 +0000 (19:19 +0200)]
--libcurl: use *_LARGE options with typecasted constants
In the generated code --libcurl makes, all calls to curl_easy_setopt()
that use *_LARGE options now have the value typecasted to curl_off_t, so
that it works correctly for 32bit systems with 64bit curl_off_t type.
Daniel Stenberg [Thu, 1 Jul 2010 21:32:20 +0000 (23:32 +0200)]
multi: CURLINFO_LASTSOCKET doesn't work after remove_handle
When curl_multi_remove_handle() is called and an easy handle is returned
to the connection cache held in the multi handle, then we cannot allow
CURLINFO_LASTSOCKET to extract it since that will more or less encourage
that the user uses the socket while it can get used by libcurl again.
Without this fix, we'd get a segfault in Curl_getconnectinfo() trying to
dereference the NULL pointer in 'data->state.connc'.
Bug: http://curl.haxx.se/bug/view.cgi?id=3023840
Pierre Joye [Wed, 30 Jun 2010 17:40:40 +0000 (19:40 +0200)]
build: add enable IPV6 option for the VC makefiles
Daniel Stenberg [Wed, 30 Jun 2010 13:52:58 +0000 (15:52 +0200)]
FAQ: the threaded resolver works universally now
Kamil Dudka [Sun, 27 Jun 2010 01:38:01 +0000 (03:38 +0200)]
http_ntlm: add support for NSS
When configured with '--without-ssl --with-nss', NTLM authentication
now uses NSS crypto library for MD5 and DES. For MD4 we have a local
implementation in that case. More details are available at
https://bugzilla.redhat.com/603783
In order to get it working, curl_global_init() must be called with
CURL_GLOBAL_SSL or CURL_GLOBAL_ALL. That's necessary because NSS needs
to be initialized globally and we do so only when the NSS library is
actually required by protocol. The mentioned call of curl_global_init()
is responsible for creating of the initialization mutex.
There was also slightly changed the NSS initialization scenario, in
particular, loading of the NSS PEM module. It used to be loaded always
right after the NSS library was initialized. Now the library is
initialized as soon as any SSL or NTLM is required, while the PEM module
is prevented from being loaded until the SSL is actually required.
Daniel Stenberg [Mon, 28 Jun 2010 22:17:38 +0000 (00:17 +0200)]
glob: backslash escaping bug
curl didn't properly handle escaping characters in a URL with the use of
backslash. It did an attempt, but that failed as reported in bug
3022551. The described example was using the URL
"http://example.com?{AB,C\,D}".
I've now removed the special-handling of letters following the backslash
and I also removed the bad extra check that triggered this particular
bug.
Bug: http://curl.haxx.se/bug/view.cgi?id=3022551
Reported by: Jon Sargeant
Daniel Stenberg [Mon, 28 Jun 2010 22:13:04 +0000 (00:13 +0200)]
release-notes: sync up with recent commits
Daniel Stenberg [Sat, 26 Jun 2010 21:17:02 +0000 (23:17 +0200)]
CONTRIBUTE: the git commit message line length is 72 columns
Pavel Raiskup [Thu, 24 Jun 2010 14:11:55 +0000 (16:11 +0200)]
ftp wildcard: FTP LIST parser FIX
There was a problem when a UNIX-like server returned information
about directory size (total NNNNNN) at the first line of
response.
Pavel Raiskup [Thu, 24 Jun 2010 15:22:47 +0000 (17:22 +0200)]
examples: new FTP wildcard showcase
Daniel Stenberg [Thu, 24 Jun 2010 21:19:27 +0000 (23:19 +0200)]
multi_socket: re-use of same socket without notifying app
When a hostname resolves to multiple IP addresses and the first one
tried doesn't work, the socket for the second attempt may get dropped on
the floor, causing the request to eventually time out. The issue is that
when using kqueue (as on mac and bsd platforms) instead of select, the
kernel removes the first fd from kqueue when it is closed (in trynextip,
connect.c:503). Trynextip() then goes on to open a new socket, which
gets assigned the same number as the one it just closed. Later in
multi.c, socket_cb is not called because the fd is already in
multi->sockhash, so the new socket is never added to kqueue.
The correct fix is to ensure that socket_cb is called to remove the fd
when trynextip() closes the socket, and again to re-add it after
singleipsocket(). I'm not sure how to cleanly do that, but the attached
patch works around the problem in an admittedly kludgy way by delaying
the close to ensure that the newly-opened socket gets a different fd.
Daniel's added comment: I didn't spot a way to easily do a nicer fix so
I've proceeded with Ben's patch.
Bug: http://curl.haxx.se/bug/view.cgi?id=3017819
Patch by: Ben Darnell
Pavel Raiskup [Thu, 24 Jun 2010 08:10:29 +0000 (10:10 +0200)]
ftp-wildcard: avoid tight loop when used without any pattern
It was broken for URLs like "ftp://example.com/".
Daniel Stenberg [Mon, 21 Jun 2010 20:42:36 +0000 (22:42 +0200)]
maketgz: produce CHANGES automatically with the 1000 most recent commits
It passes the git log output through 'log2changes.pl' to produce
the lot.
Daniel Stenberg [Mon, 21 Jun 2010 20:42:11 +0000 (22:42 +0200)]
ignore: CHANGES.dist gets generated by maketgz
Daniel Stenberg [Mon, 21 Jun 2010 20:27:39 +0000 (22:27 +0200)]
CHANGES: move all contents from CHANGES to CHANGES.0
CHANGES is no longer used for manually edited content. It is to
be generated automatically by maketgz when we make release
tarballs.
Daniel Stenberg [Mon, 21 Jun 2010 20:21:25 +0000 (22:21 +0200)]
log2changes: correct command line, fix tag usage, change Version output
--decorate=full is needed with my git 1.7.1 to get the necessary
output so that the previous edit would work to extract the
Version stuff.
... but I had to edit how the refs/tags was extracted since it
had a little flaw that made it miss the 7.20.1 output.
Finally, I changed so that Version is outputted even more similar
to how CHANGES does it.
Dan Fandrich [Mon, 21 Jun 2010 19:24:27 +0000 (12:24 -0700)]
Make the output of log2changes.pl even more closely match CHANGES
Add the ASCII art header, and list version commits by decoding
the ref tag names, when available (using the git log --decorate
option).
Daniel Stenberg [Sat, 19 Jun 2010 21:08:34 +0000 (23:08 +0200)]
log2changes: first version of the git log to CHANGES conversion script
$ git log --pretty=fuller --no-color --date=short | ./log2changes.pl
Of course, limiting the log output with a range like with
"[tag]..HEAD" appended can be very useful too.