better fix for the dl/ul counters

This commit is contained in:
Daniel Stenberg 2007-05-18 10:40:43 +00:00
parent 250f9670b7
commit 826bbfc01c

View File

@ -431,6 +431,7 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
int sbytes; int sbytes;
int rblock; int rblock;
CURLcode res = CURLE_OK; CURLcode res = CURLE_OK;
struct Curl_transfer_keeper *k = &data->reqdata.keep;
switch(event) { switch(event) {
@ -485,6 +486,9 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO)); failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO));
return CURLE_SEND_ERROR; return CURLE_SEND_ERROR;
} }
/* Update the progress meter */
k->writebytecount += state->sbytes;
Curl_pgrsSetUploadCounter(data, k->writebytecount);
break; break;
case TFTP_EVENT_TIMEOUT: case TFTP_EVENT_TIMEOUT:
@ -508,6 +512,8 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO)); failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO));
return CURLE_SEND_ERROR; return CURLE_SEND_ERROR;
} }
/* since this was a re-send, we remain at the still byte position */
Curl_pgrsSetUploadCounter(data, k->writebytecount);
} }
break; break;
@ -520,9 +526,6 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
break; break;
} }
/* Update the progress meter */
Curl_pgrsSetUploadCounter(data, (curl_off_t) state->block*TFTP_BLOCKSIZE);
return res; return res;
} }
@ -667,6 +670,7 @@ CURLcode Curl_tftp(struct connectdata *conn, bool *done)
struct Curl_sockaddr_storage fromaddr; struct Curl_sockaddr_storage fromaddr;
socklen_t fromlen; socklen_t fromlen;
int check_time = 0; int check_time = 0;
struct Curl_transfer_keeper *k = &data->reqdata.keep;
*done = TRUE; *done = TRUE;
@ -739,8 +743,8 @@ CURLcode Curl_tftp(struct connectdata *conn, bool *done)
state->rbytes-4); state->rbytes-4);
if(code) if(code)
return code; return code;
Curl_pgrsSetDownloadCounter(data, k->bytecount += state->rbytes-4;
(curl_off_t) state->rbytes-4); Curl_pgrsSetDownloadCounter(data, (curl_off_t) k->bytecount);
} }
break; break;
case TFTP_EVENT_ERROR: case TFTP_EVENT_ERROR: