mirror of
https://github.com/curl/curl.git
synced 2026-06-01 22:14:17 +03:00
Fix how TFTP connections are treated when re-used, if the SessionHandle has
been used for other protocols in between. I found this when test 2004 started to fail for me!
This commit is contained in:
parent
a2926ebe7c
commit
b22e03b2b2
1 changed files with 5 additions and 4 deletions
|
|
@ -698,8 +698,7 @@ static CURLcode Curl_tftp_done(struct connectdata *conn, CURLcode status,
|
|||
static CURLcode Curl_tftp(struct connectdata *conn, bool *done)
|
||||
{
|
||||
struct SessionHandle *data = conn->data;
|
||||
tftp_state_data_t *state =
|
||||
(tftp_state_data_t *) conn->data->reqdata.proto.tftp;
|
||||
tftp_state_data_t *state;
|
||||
tftp_event_t event;
|
||||
CURLcode code;
|
||||
int rc;
|
||||
|
|
@ -716,12 +715,14 @@ static CURLcode Curl_tftp(struct connectdata *conn, bool *done)
|
|||
make sure we have a good 'struct TFTP' to play with. For new connections,
|
||||
the struct TFTP is allocated and setup in the Curl_tftp_connect() function.
|
||||
*/
|
||||
if(!state) {
|
||||
Curl_reset_reqproto(conn);
|
||||
|
||||
if(!data->reqdata.proto.tftp) {
|
||||
code = Curl_tftp_connect(conn, done);
|
||||
if(code)
|
||||
return code;
|
||||
state = (tftp_state_data_t *)conn->data->reqdata.proto.tftp;
|
||||
}
|
||||
state = (tftp_state_data_t *)conn->data->reqdata.proto.tftp;
|
||||
|
||||
code = Curl_readwrite_init(conn);
|
||||
if(code)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue