\___|\___/|_| \_\_____|
Changelog
+Daniel S (18 May 2007)
+- Feng Tu reported that curl -w did wrong on TFTP transfers in
+ bug report #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
+ transfer-related info "variables" were indeed overwritten with zeroes wrongly
+ and have now been adjusted. The upload size still isn't accurate.
+
Daniel S (17 May 2007)
- Feng Tu pointed out a division by zero error in the TFTP connect timeout
code for timeouts less than five seconds, and also provided a fix for it.
+ Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392)
Dan F (16 May 2007)
- Added support for compiling under Minix 3.1.3 using ACK.
Available command line options: 118
Available curl_easy_setopt() options: 141
Number of public functions in libcurl: 54
- Amount of public web site mirrors: 39
+ Amount of public web site mirrors: 38
Number of known libcurl bindings: 35
Number of contributors: 554
o overwriting an uploaded file with sftp now truncates it first
o SFTP quote commands chmod, chown, chgrp can now set a value of 0
o TFTP connect timouts less than 5 seconds
+ o improved curl -w for TFTP transfers
This release includes the following known bugs:
return CURLE_TFTP_ILLEGAL; /* not really the perfect return code for
this */
}
- Curl_pgrsSetDownloadCounter(data,
- (curl_off_t) state->block*TFTP_BLOCKSIZE);
return CURLE_OK;
}
/* Check all sbytes were sent */
if(sbytes<0) {
failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO));
+ return CURLE_SEND_ERROR;
}
break;
if(state->retries > state->retry_max) {
state->error = TFTP_ERR_TIMEOUT;
state->state = TFTP_STATE_FIN;
- } else {
+ }
+ else {
/* Re-send the data packet */
sbytes = sendto(state->sockfd, (void *)&state->spacket,
4+state->sbytes, SEND_4TH_ARG,
/* Check all sbytes were sent */
if(sbytes<0) {
failf(data, "%s\n", Curl_strerror(state->conn, SOCKERRNO));
+ return CURLE_SEND_ERROR;
}
}
break;
state->rbytes-4);
if(code)
return code;
+ Curl_pgrsSetDownloadCounter(data,
+ (curl_off_t) state->rbytes-4);
}
break;
case TFTP_EVENT_ERROR:
struct Curl_transfer_keeper *k = &data->reqdata.keep;
bool done=FALSE;
- if(!(conn->protocol & PROT_FILE)) {
- /* Only do this if we are not transferring FILE:, since the file: treatment
- is different*/
+ if(!(conn->protocol & (PROT_FILE|PROT_TFTP))) {
+ /* Only do this if we are not transferring FILE or TFTP, since those
+ transfers are treated differently. They do their entire transfers in
+ the DO function and just returns from this. That is ugly indeed.
+ */
Curl_readwrite_init(conn);
Curl_pre_readwrite(conn);
}