Changelog
+Daniel Stenberg (9 Mar 2008)
+- Brian Ulm reported a crash when doing a second SFTP transfer on a re-used
+ easy handle if curl_easy_reset() was used between them. I fixed it and Brian
+ verified that it cured his problem.
+
+- Brian Ulm reported that if you first tried to download a non-existing SFTP
+ file and then fetched an existing one and re-used the handle, libcurl would
+ still report the second one as non-existing as well! I fixed it abd Brian
+ verified that it cured his problem.
+
Michal Marek (6 Mar 2008)
- Fix the gssapi configure check to detect newer MIT Kerberos (patch by
Michael Calmer)
o crash when doing Negotiate again on a re-used connection
o select/poll regression
o better MIT kerberos configure check
+ o curl_easy_reset() + SFTP re-used connection download crash
+ o SFTP non-existing file + SFTP existing file error
This release includes the following known bugs:
Michal Marek, Dmitry Kurochkin, Niklas Angebrand, Günter Knauf, Yang Tse,
Dan Fandrich, Mike Hommey, Pooyan McSporran, Jerome Muffat-Meridol,
Kaspar Brand, Gautam Kachroo, Zmey Petroff, Georg Lippitsch, Sam Listopad,
- Anatoli Tubman, Mike Protts, Michael Calmer
+ Anatoli Tubman, Mike Protts, Michael Calmer, Brian Ulm
Thanks! (and sorry if I forgot to mention someone)
}
else {
result = Curl_setup_transfer(conn, FIRSTSOCKET, data->req.size,
- FALSE, NULL, -1, NULL);
+ FALSE, NULL, -1, NULL);
}
if(result) {
state(conn, SSH_SFTP_CLOSE);
{
struct SessionHandle *data = conn->data;
struct SSHPROTO *ssh;
+
+ conn->proto.sshc.actualcode = CURLE_OK; /* reset error code */
+
if(data->state.proto.ssh)
return CURLE_OK;
*done = FALSE; /* default to false */
+ /*
+ Since connections can be re-used between SessionHandles, this might be a
+ connection already existing but on a fresh SessionHandle struct so we must
+ make sure we have a good 'struct SSHPROTO' to play with. For new
+ connections, the struct SSHPROTO is allocated and setup in the
+ ssh_connect() function.
+ */
+ Curl_reset_reqproto(conn);
+ res = ssh_init(conn);
+ if(res)
+ return res;
+
data->req.size = -1; /* make sure this is unknown at this point */
Curl_pgrsSetUploadCounter(data, 0);