Commit 53aa6b21 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Ben Greear provided an update for TFTP that fixes upload.

parent 7842704e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@
                                  Changelog

Daniel Stenberg (1 Mar 2010)
- Ben Greear provided an update for TFTP that fixes upload.

- Wesley Miaw reported bug #2958179 which identified a case of looping during
  OpenSSL based SSL handshaking even though the multi interface was used and
  there was no good reason for it.
+2 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ This release includes the following bugfixes:
 o curl --trace-time not using local time
 o off-by-one in the chunked encoding trailer parser
 o superfluous blocking for OpenSSL-based SSL connects and multi interface
 o TFTP upload

This release includes the following known bugs:

@@ -31,6 +32,6 @@ This release would not have looked like this without help, code, reports and
advice from friends like these:

 Steven M. Schweda, Yang Tse, Jack Zhang, Tom Donovan, Martin Hager,
 Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw
 Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw, Ben Greear

        Thanks! (and sorry if I forgot to mention someone)
+39 −33
Original line number Diff line number Diff line
@@ -399,7 +399,7 @@ static CURLcode tftp_parse_option_ack(tftp_state_data_t *state,

      tsize = strtol( value, NULL, 10 );
      if(!tsize) {
        failf(data, "invalid tsize value in OACK packet");
        failf(data, "invalid tsize -:%s:- value in OACK packet", value);
        return CURLE_TFTP_ILLEGAL;
      }
      Curl_pgrsSetDownloadSize(data, tsize);
@@ -701,6 +701,8 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
  switch(event) {

  case TFTP_EVENT_ACK:
  case TFTP_EVENT_OACK:
    if (event == TFTP_EVENT_ACK) {
       /* Ack the packet */
       rblock = getrpacketblock(&state->rpacket);

@@ -733,6 +735,10 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
          block */
       time(&state->rx_time);
       state->block++;
    }
    else {
       state->block = 1; /* first data block is 1 when using OACK */
    }
    state->retries = 0;
    setpacketevent(&state->spacket, TFTP_EVENT_DATA);
    setpacketblock(&state->spacket, state->block);
@@ -798,7 +804,7 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
    break;

  default:
    failf(data, "%s", "tftp_tx: internal error");
    failf(data, "tftp_tx: internal error, event: %i", (int)(event));
    break;
  }