Revert "cleanup: general removal of TODO (and similar) comments"
This reverts commit 64e959ffe3
.
Feedback-by: Dan Fandrich
URL: http://curl.haxx.se/mail/lib-2015-11/0062.html
This commit is contained in:
@@ -416,6 +416,7 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
|
|||||||
if(result)
|
if(result)
|
||||||
/* close the connection, since we can't return failure here without
|
/* close the connection, since we can't return failure here without
|
||||||
cleaning up this connection properly.
|
cleaning up this connection properly.
|
||||||
|
TODO: remove this action from here, it is not a name resolver decision.
|
||||||
*/
|
*/
|
||||||
connclose(conn, "c-ares resolve failed");
|
connclose(conn, "c-ares resolve failed");
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
*
|
*
|
||||||
* File lib/strdup.c is an exception, given that it provides a strdup
|
* File lib/strdup.c is an exception, given that it provides a strdup
|
||||||
* clone implementation while using malloc. Extra care needed inside
|
* clone implementation while using malloc. Extra care needed inside
|
||||||
* this one.
|
* this one. TODO: revisit this paragraph and related code.
|
||||||
*
|
*
|
||||||
* The need for curl_memory.h inclusion is due to libcurl's feature
|
* The need for curl_memory.h inclusion is due to libcurl's feature
|
||||||
* of allowing library user to provide memory replacement functions,
|
* of allowing library user to provide memory replacement functions,
|
||||||
|
@@ -646,7 +646,7 @@ static CURLcode wait_or_timeout(struct Curl_multi *multi, struct events *ev)
|
|||||||
return CURLE_RECV_ERROR;
|
return CURLE_RECV_ERROR;
|
||||||
|
|
||||||
if(mcode)
|
if(mcode)
|
||||||
return CURLE_URL_MALFORMAT;
|
return CURLE_URL_MALFORMAT; /* TODO: return a proper error! */
|
||||||
|
|
||||||
/* we don't really care about the "msgs_in_queue" value returned in the
|
/* we don't really care about the "msgs_in_queue" value returned in the
|
||||||
second argument */
|
second argument */
|
||||||
|
@@ -3659,7 +3659,7 @@ static CURLcode ftp_do_more(struct connectdata *conn, int *completep)
|
|||||||
if(!conn->bits.tcpconnect[SECONDARYSOCKET]) {
|
if(!conn->bits.tcpconnect[SECONDARYSOCKET]) {
|
||||||
if(conn->tunnel_state[SECONDARYSOCKET] == TUNNEL_CONNECT) {
|
if(conn->tunnel_state[SECONDARYSOCKET] == TUNNEL_CONNECT) {
|
||||||
/* As we're in TUNNEL_CONNECT state now, we know the proxy name and port
|
/* As we're in TUNNEL_CONNECT state now, we know the proxy name and port
|
||||||
aren't used so we blank their arguments. */
|
aren't used so we blank their arguments. TODO: make this nicer */
|
||||||
result = Curl_proxyCONNECT(conn, SECONDARYSOCKET, NULL, 0, FALSE);
|
result = Curl_proxyCONNECT(conn, SECONDARYSOCKET, NULL, 0, FALSE);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@@ -2047,7 +2047,10 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|||||||
ptr = strstr(url, conn->host.dispname);
|
ptr = strstr(url, conn->host.dispname);
|
||||||
if(ptr) {
|
if(ptr) {
|
||||||
/* This is where the display name starts in the URL, now replace this
|
/* This is where the display name starts in the URL, now replace this
|
||||||
part with the encoded name. */
|
part with the encoded name. TODO: This method of replacing the host
|
||||||
|
name is rather crude as I believe there's a slight risk that the
|
||||||
|
user has entered a user name or password that contain the host name
|
||||||
|
string. */
|
||||||
size_t currlen = strlen(conn->host.dispname);
|
size_t currlen = strlen(conn->host.dispname);
|
||||||
size_t newlen = strlen(conn->host.name);
|
size_t newlen = strlen(conn->host.name);
|
||||||
size_t urllen = strlen(url);
|
size_t urllen = strlen(url);
|
||||||
@@ -3329,6 +3332,7 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
|
|||||||
conn->httpversion = 11; /* For us, RTSP acts like HTTP 1.1 */
|
conn->httpversion = 11; /* For us, RTSP acts like HTTP 1.1 */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
/* TODO: do we care about the other cases here? */
|
||||||
nc = 0;
|
nc = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3559,6 +3563,7 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(k->auto_decoding)
|
if(k->auto_decoding)
|
||||||
|
/* TODO: we only support the first mentioned compression for now */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if(checkprefix("identity", start)) {
|
if(checkprefix("identity", start)) {
|
||||||
|
@@ -75,6 +75,8 @@ static int http2_perform_getsock(const struct connectdata *conn,
|
|||||||
int bitmap = GETSOCK_BLANK;
|
int bitmap = GETSOCK_BLANK;
|
||||||
(void)numsocks;
|
(void)numsocks;
|
||||||
|
|
||||||
|
/* TODO We should check underlying socket state if it is SSL socket
|
||||||
|
because of renegotiation. */
|
||||||
sock[0] = conn->sock[FIRSTSOCKET];
|
sock[0] = conn->sock[FIRSTSOCKET];
|
||||||
|
|
||||||
if(nghttp2_session_want_read(c->h2))
|
if(nghttp2_session_want_read(c->h2))
|
||||||
@@ -574,7 +576,8 @@ static int on_data_chunk_recv(nghttp2_session *session, uint8_t flags,
|
|||||||
|
|
||||||
/* if we receive data for another handle, wake that up */
|
/* if we receive data for another handle, wake that up */
|
||||||
if(conn->data != data_s)
|
if(conn->data != data_s)
|
||||||
Curl_expire(data_s, 1);
|
Curl_expire(data_s, 1); /* TODO: fix so that this can be set to 0 for
|
||||||
|
immediately? */
|
||||||
|
|
||||||
DEBUGF(infof(data_s, "%zu data received for stream %u "
|
DEBUGF(infof(data_s, "%zu data received for stream %u "
|
||||||
"(%zu left in buffer %p, total %zu)\n",
|
"(%zu left in buffer %p, total %zu)\n",
|
||||||
|
20
lib/imap.c
20
lib/imap.c
@@ -842,7 +842,7 @@ static CURLcode imap_state_servergreet_resp(struct connectdata *conn,
|
|||||||
|
|
||||||
if(imapcode != 'O') {
|
if(imapcode != 'O') {
|
||||||
failf(data, "Got unexpected imap-server response");
|
failf(data, "Got unexpected imap-server response");
|
||||||
result = CURLE_FTP_WEIRD_SERVER_REPLY;
|
result = CURLE_FTP_WEIRD_SERVER_REPLY; /* TODO: fix this code */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
result = imap_perform_capability(conn);
|
result = imap_perform_capability(conn);
|
||||||
@@ -1033,7 +1033,7 @@ static CURLcode imap_state_list_resp(struct connectdata *conn, int imapcode,
|
|||||||
line[len] = '\0';
|
line[len] = '\0';
|
||||||
}
|
}
|
||||||
else if(imapcode != 'O')
|
else if(imapcode != 'O')
|
||||||
result = CURLE_QUOTE_ERROR;
|
result = CURLE_QUOTE_ERROR; /* TODO: Fix error code */
|
||||||
else
|
else
|
||||||
/* End of DO phase */
|
/* End of DO phase */
|
||||||
state(conn, IMAP_STOP);
|
state(conn, IMAP_STOP);
|
||||||
@@ -1105,7 +1105,7 @@ static CURLcode imap_state_fetch_resp(struct connectdata *conn, int imapcode,
|
|||||||
if(imapcode != '*') {
|
if(imapcode != '*') {
|
||||||
Curl_pgrsSetDownloadSize(data, -1);
|
Curl_pgrsSetDownloadSize(data, -1);
|
||||||
state(conn, IMAP_STOP);
|
state(conn, IMAP_STOP);
|
||||||
return CURLE_REMOTE_FILE_NOT_FOUND;
|
return CURLE_REMOTE_FILE_NOT_FOUND; /* TODO: Fix error code */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Something like this is received "* 1 FETCH (BODY[TEXT] {2021}\r" so parse
|
/* Something like this is received "* 1 FETCH (BODY[TEXT] {2021}\r" so parse
|
||||||
@@ -1174,7 +1174,7 @@ static CURLcode imap_state_fetch_resp(struct connectdata *conn, int imapcode,
|
|||||||
else {
|
else {
|
||||||
/* We don't know how to parse this line */
|
/* We don't know how to parse this line */
|
||||||
failf(pp->conn->data, "Failed to parse FETCH response.");
|
failf(pp->conn->data, "Failed to parse FETCH response.");
|
||||||
result = CURLE_FTP_WEIRD_SERVER_REPLY;
|
result = CURLE_FTP_WEIRD_SERVER_REPLY; /* TODO: fix this code */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End of DO phase */
|
/* End of DO phase */
|
||||||
@@ -1193,7 +1193,7 @@ static CURLcode imap_state_fetch_final_resp(struct connectdata *conn,
|
|||||||
(void)instate; /* No use for this yet */
|
(void)instate; /* No use for this yet */
|
||||||
|
|
||||||
if(imapcode != 'O')
|
if(imapcode != 'O')
|
||||||
result = CURLE_FTP_WEIRD_SERVER_REPLY;
|
result = CURLE_FTP_WEIRD_SERVER_REPLY; /* TODO: Fix error code */
|
||||||
else
|
else
|
||||||
/* End of DONE phase */
|
/* End of DONE phase */
|
||||||
state(conn, IMAP_STOP);
|
state(conn, IMAP_STOP);
|
||||||
@@ -1262,7 +1262,7 @@ static CURLcode imap_state_search_resp(struct connectdata *conn, int imapcode,
|
|||||||
line[len] = '\0';
|
line[len] = '\0';
|
||||||
}
|
}
|
||||||
else if(imapcode != 'O')
|
else if(imapcode != 'O')
|
||||||
result = CURLE_QUOTE_ERROR;
|
result = CURLE_QUOTE_ERROR; /* TODO: Fix error code */
|
||||||
else
|
else
|
||||||
/* End of DO phase */
|
/* End of DO phase */
|
||||||
state(conn, IMAP_STOP);
|
state(conn, IMAP_STOP);
|
||||||
@@ -1506,10 +1506,10 @@ static CURLcode imap_done(struct connectdata *conn, CURLcode status,
|
|||||||
|
|
||||||
/* Run the state-machine
|
/* Run the state-machine
|
||||||
|
|
||||||
This _really_ should be using the imap_multi_statemach function but we
|
TODO: when the multi interface is used, this _really_ should be using
|
||||||
have no general support for non-blocking DONE operations. Neither in
|
the imap_multi_statemach function but we have no general support for
|
||||||
the multi state machine and there are Curl_done() invokes on several
|
non-blocking DONE operations, not in the multi state machine and with
|
||||||
places in the code!
|
Curl_done() invokes on several places in the code!
|
||||||
*/
|
*/
|
||||||
if(!result)
|
if(!result)
|
||||||
result = imap_block_statemach(conn);
|
result = imap_block_statemach(conn);
|
||||||
|
@@ -176,7 +176,9 @@ static CURLcode ldap_setup_connection(struct connectdata *conn)
|
|||||||
li->proto = proto;
|
li->proto = proto;
|
||||||
conn->proto.generic = li;
|
conn->proto.generic = li;
|
||||||
connkeep(conn, "OpenLDAP default");
|
connkeep(conn, "OpenLDAP default");
|
||||||
|
/* TODO:
|
||||||
|
* - provide option to choose SASL Binds instead of Simple
|
||||||
|
*/
|
||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,6 +481,8 @@ static ssize_t ldap_recv(struct connectdata *conn, int sockindex, char *buf,
|
|||||||
lr->nument++;
|
lr->nument++;
|
||||||
rc = ldap_get_dn_ber(li->ld, ent, &ber, &bv);
|
rc = ldap_get_dn_ber(li->ld, ent, &ber, &bv);
|
||||||
if(rc < 0) {
|
if(rc < 0) {
|
||||||
|
/* TODO: verify that this is really how this return code should be
|
||||||
|
handled */
|
||||||
*err = CURLE_RECV_ERROR;
|
*err = CURLE_RECV_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
13
lib/rtsp.c
13
lib/rtsp.c
@@ -42,6 +42,16 @@
|
|||||||
#include "curl_memory.h"
|
#include "curl_memory.h"
|
||||||
#include "memdebug.h"
|
#include "memdebug.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO (general)
|
||||||
|
* -incoming server requests
|
||||||
|
* -server CSeq counter
|
||||||
|
* -digest authentication
|
||||||
|
* -connect thru proxy
|
||||||
|
* -pipelining?
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define RTP_PKT_CHANNEL(p) ((int)((unsigned char)((p)[1])))
|
#define RTP_PKT_CHANNEL(p) ((int)((unsigned char)((p)[1])))
|
||||||
|
|
||||||
#define RTP_PKT_LENGTH(p) ((((int)((unsigned char)((p)[2]))) << 8) | \
|
#define RTP_PKT_LENGTH(p) ((((int)((unsigned char)((p)[2]))) << 8) | \
|
||||||
@@ -212,6 +222,7 @@ static CURLcode rtsp_done(struct connectdata *conn,
|
|||||||
else if(data->set.rtspreq == RTSPREQ_RECEIVE &&
|
else if(data->set.rtspreq == RTSPREQ_RECEIVE &&
|
||||||
(conn->proto.rtspc.rtp_channel == -1)) {
|
(conn->proto.rtspc.rtp_channel == -1)) {
|
||||||
infof(data, "Got an RTP Receive with a CSeq of %ld\n", CSeq_recv);
|
infof(data, "Got an RTP Receive with a CSeq of %ld\n", CSeq_recv);
|
||||||
|
/* TODO CPC: Server -> Client logic here */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,6 +328,8 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
|
|||||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: proxy? */
|
||||||
|
|
||||||
/* Stream URI. Default to server '*' if not specified */
|
/* Stream URI. Default to server '*' if not specified */
|
||||||
if(data->set.str[STRING_RTSP_STREAM_URI]) {
|
if(data->set.str[STRING_RTSP_STREAM_URI]) {
|
||||||
p_stream_uri = data->set.str[STRING_RTSP_STREAM_URI];
|
p_stream_uri = data->set.str[STRING_RTSP_STREAM_URI];
|
||||||
|
@@ -1256,8 +1256,10 @@ static CURLcode smtp_done(struct connectdata *conn, CURLcode status,
|
|||||||
|
|
||||||
/* Run the state-machine
|
/* Run the state-machine
|
||||||
|
|
||||||
this should be using the smtp_multi_statemach function but we have no
|
TODO: when the multi interface is used, this _really_ should be using
|
||||||
support for non-blocking DONE operations!
|
the smtp_multi_statemach function but we have no general support for
|
||||||
|
non-blocking DONE operations, not in the multi state machine and with
|
||||||
|
Curl_done() invokes on several places in the code!
|
||||||
*/
|
*/
|
||||||
result = smtp_block_statemach(conn);
|
result = smtp_block_statemach(conn);
|
||||||
}
|
}
|
||||||
|
@@ -211,7 +211,7 @@ struct Curl_tree *Curl_splaygetbest(struct timeval i,
|
|||||||
/* Deletes the very node we point out from the tree if it's there. Stores a
|
/* Deletes the very node we point out from the tree if it's there. Stores a
|
||||||
* pointer to the new resulting tree in 'newroot'.
|
* pointer to the new resulting tree in 'newroot'.
|
||||||
*
|
*
|
||||||
* Returns zero on success and non-zero on errors!
|
* Returns zero on success and non-zero on errors! TODO: document error codes.
|
||||||
* When returning error, it does not touch the 'newroot' pointer.
|
* When returning error, it does not touch the 'newroot' pointer.
|
||||||
*
|
*
|
||||||
* NOTE: when the last node of the tree is removed, there's no tree left so
|
* NOTE: when the last node of the tree is removed, there's no tree left so
|
||||||
|
14
lib/ssh.c
14
lib/ssh.c
@@ -296,6 +296,10 @@ static CURLcode libssh2_session_error_to_CURLE(int err)
|
|||||||
return CURLE_AGAIN;
|
return CURLE_AGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: map some more of the libssh2 errors to the more appropriate CURLcode
|
||||||
|
error code, and possibly add a few new SSH-related one. We must however
|
||||||
|
not return or even depend on libssh2 errors in the public libcurl API */
|
||||||
|
|
||||||
return CURLE_SSH;
|
return CURLE_SSH;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2820,8 +2824,10 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done)
|
|||||||
if(data->set.str[STRING_SSH_KNOWNHOSTS]) {
|
if(data->set.str[STRING_SSH_KNOWNHOSTS]) {
|
||||||
int rc;
|
int rc;
|
||||||
ssh->kh = libssh2_knownhost_init(ssh->ssh_session);
|
ssh->kh = libssh2_knownhost_init(ssh->ssh_session);
|
||||||
if(!ssh->kh)
|
if(!ssh->kh) {
|
||||||
|
/* eeek. TODO: free the ssh_session! */
|
||||||
return CURLE_FAILED_INIT;
|
return CURLE_FAILED_INIT;
|
||||||
|
}
|
||||||
|
|
||||||
/* read all known hosts from there */
|
/* read all known hosts from there */
|
||||||
rc = libssh2_knownhost_readfile(ssh->kh,
|
rc = libssh2_knownhost_readfile(ssh->kh,
|
||||||
@@ -2958,8 +2964,10 @@ static CURLcode ssh_done(struct connectdata *conn, CURLcode status)
|
|||||||
if(!status) {
|
if(!status) {
|
||||||
/* run the state-machine
|
/* run the state-machine
|
||||||
|
|
||||||
This should be using the ssh_multi_statemach function but we have no
|
TODO: when the multi interface is used, this _really_ should be using
|
||||||
support for non-blocking DONE operations!
|
the ssh_multi_statemach function but we have no general support for
|
||||||
|
non-blocking DONE operations, not in the multi state machine and with
|
||||||
|
Curl_done() invokes on several places in the code!
|
||||||
*/
|
*/
|
||||||
result = ssh_block_statemach(conn, FALSE);
|
result = ssh_block_statemach(conn, FALSE);
|
||||||
}
|
}
|
||||||
|
@@ -1220,6 +1220,7 @@ CURLcode telrcv(struct connectdata *conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Escape and send a telnet data block */
|
/* Escape and send a telnet data block */
|
||||||
|
/* TODO: write large chunks of data instead of one byte at a time */
|
||||||
static CURLcode send_telnet_data(struct connectdata *conn,
|
static CURLcode send_telnet_data(struct connectdata *conn,
|
||||||
char *buffer, ssize_t nread)
|
char *buffer, ssize_t nread)
|
||||||
{
|
{
|
||||||
|
@@ -6272,6 +6272,8 @@ CURLcode Curl_do(struct connectdata **connp, bool *done)
|
|||||||
* second stage DO state which (wrongly) was introduced to support FTP's
|
* second stage DO state which (wrongly) was introduced to support FTP's
|
||||||
* second connection.
|
* second connection.
|
||||||
*
|
*
|
||||||
|
* TODO: A future libcurl should be able to work away this state.
|
||||||
|
*
|
||||||
* 'complete' can return 0 for incomplete, 1 for done and -1 for go back to
|
* 'complete' can return 0 for incomplete, 1 for done and -1 for go back to
|
||||||
* DOING state there's more work to do!
|
* DOING state there's more work to do!
|
||||||
*/
|
*/
|
||||||
|
@@ -1541,6 +1541,12 @@ static int Curl_gtls_seed(struct SessionHandle *data)
|
|||||||
|
|
||||||
if(!ssl_seeded || data->set.str[STRING_SSL_RANDOM_FILE] ||
|
if(!ssl_seeded || data->set.str[STRING_SSL_RANDOM_FILE] ||
|
||||||
data->set.str[STRING_SSL_EGDSOCKET]) {
|
data->set.str[STRING_SSL_EGDSOCKET]) {
|
||||||
|
|
||||||
|
/* TODO: to a good job seeding the RNG
|
||||||
|
This may involve the gcry_control function and these options:
|
||||||
|
GCRYCTL_SET_RANDOM_SEED_FILE
|
||||||
|
GCRYCTL_SET_RNDEGD_SOCKET
|
||||||
|
*/
|
||||||
ssl_seeded = TRUE;
|
ssl_seeded = TRUE;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -2385,6 +2385,11 @@ static CURLcode get_cert_chain(struct connectdata *conn,
|
|||||||
print_pubkey_BN(dh, priv_key, i);
|
print_pubkey_BN(dh, priv_key, i);
|
||||||
print_pubkey_BN(dh, pub_key, i);
|
print_pubkey_BN(dh, pub_key, i);
|
||||||
break;
|
break;
|
||||||
|
#if 0
|
||||||
|
case EVP_PKEY_EC: /* symbol not present in OpenSSL 0.9.6 */
|
||||||
|
/* left TODO */
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
EVP_PKEY_free(pubkey);
|
EVP_PKEY_free(pubkey);
|
||||||
}
|
}
|
||||||
|
@@ -857,6 +857,11 @@ static void do_pubkey(struct SessionHandle * data, int certnum,
|
|||||||
do_pubkey_field(data, certnum, "dh(g)", &elem);
|
do_pubkey_field(data, certnum, "dh(g)", &elem);
|
||||||
do_pubkey_field(data, certnum, "dh(pub_key)", &pk);
|
do_pubkey_field(data, certnum, "dh(pub_key)", &pk);
|
||||||
}
|
}
|
||||||
|
#if 0 /* Patent-encumbered. */
|
||||||
|
else if(curl_strequal(algo, "ecPublicKey")) {
|
||||||
|
/* Left TODO. */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CURLcode Curl_extract_certinfo(struct connectdata * conn,
|
CURLcode Curl_extract_certinfo(struct connectdata * conn,
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -117,8 +117,11 @@ void progressbarinit(struct ProgressData *bar,
|
|||||||
if(config->use_resume)
|
if(config->use_resume)
|
||||||
bar->initial_size = config->resume_from;
|
bar->initial_size = config->resume_from;
|
||||||
|
|
||||||
|
/* TODO: get terminal width through ansi escapes or something similar.
|
||||||
|
try to update width when xterm is resized... - 19990617 larsa */
|
||||||
#ifndef __EMX__
|
#ifndef __EMX__
|
||||||
/* OS/2 users most likely won't have this env var set, and besides that
|
/* 20000318 mgs
|
||||||
|
* OS/2 users most likely won't have this env var set, and besides that
|
||||||
* we're using our own way to determine screen width */
|
* we're using our own way to determine screen width */
|
||||||
colp = curlx_getenv("COLUMNS");
|
colp = curlx_getenv("COLUMNS");
|
||||||
if(colp) {
|
if(colp) {
|
||||||
@@ -133,7 +136,8 @@ void progressbarinit(struct ProgressData *bar,
|
|||||||
else
|
else
|
||||||
bar->width = 79;
|
bar->width = 79;
|
||||||
#else
|
#else
|
||||||
/* We use this emx library call to get the screen width, and subtract
|
/* 20000318 mgs
|
||||||
|
* We use this emx library call to get the screen width, and subtract
|
||||||
* one from what we got in order to avoid a problem with the cursor
|
* one from what we got in order to avoid a problem with the cursor
|
||||||
* advancing to the next line if we print a string that is as long as
|
* advancing to the next line if we print a string that is as long as
|
||||||
* the screen is wide. */
|
* the screen is wide. */
|
||||||
|
@@ -116,6 +116,7 @@ CURLcode curl_easy_perform_ev(CURL *easy);
|
|||||||
static bool is_fatal_error(CURLcode code)
|
static bool is_fatal_error(CURLcode code)
|
||||||
{
|
{
|
||||||
switch(code) {
|
switch(code) {
|
||||||
|
/* TODO: Should CURLE_SSL_CACERT be included as critical error ? */
|
||||||
case CURLE_FAILED_INIT:
|
case CURLE_FAILED_INIT:
|
||||||
case CURLE_OUT_OF_MEMORY:
|
case CURLE_OUT_OF_MEMORY:
|
||||||
case CURLE_UNKNOWN_OPTION:
|
case CURLE_UNKNOWN_OPTION:
|
||||||
@@ -855,6 +856,8 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
|
|
||||||
#if !defined(CURL_DISABLE_PROXY)
|
#if !defined(CURL_DISABLE_PROXY)
|
||||||
{
|
{
|
||||||
|
/* TODO: Make this a run-time check instead of compile-time one. */
|
||||||
|
|
||||||
my_setopt_str(curl, CURLOPT_PROXY, config->proxy);
|
my_setopt_str(curl, CURLOPT_PROXY, config->proxy);
|
||||||
my_setopt_str(curl, CURLOPT_PROXYUSERPWD, config->proxyuserpwd);
|
my_setopt_str(curl, CURLOPT_PROXYUSERPWD, config->proxyuserpwd);
|
||||||
|
|
||||||
@@ -1460,6 +1463,10 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
* file (or terminal). If we write to a file, we must rewind
|
* file (or terminal). If we write to a file, we must rewind
|
||||||
* or close/re-open the file so that the next attempt starts
|
* or close/re-open the file so that the next attempt starts
|
||||||
* over from the beginning.
|
* over from the beginning.
|
||||||
|
*
|
||||||
|
* TODO: similar action for the upload case. We might need
|
||||||
|
* to start over reading from a previous point if we have
|
||||||
|
* uploaded something when this was returned.
|
||||||
*/
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1534,6 +1541,8 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
download was not successful. */
|
download was not successful. */
|
||||||
long response;
|
long response;
|
||||||
if(CURLE_OK == result) {
|
if(CURLE_OK == result) {
|
||||||
|
/* TODO We want to try next resource when download was
|
||||||
|
not successful. How to know that? */
|
||||||
char *effective_url = NULL;
|
char *effective_url = NULL;
|
||||||
curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
|
curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
|
||||||
if(effective_url &&
|
if(effective_url &&
|
||||||
@@ -1715,6 +1724,9 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
break;
|
break;
|
||||||
mlres = mlres->next;
|
mlres = mlres->next;
|
||||||
if(mlres == NULL)
|
if(mlres == NULL)
|
||||||
|
/* TODO If metalink_next_res is 1 and mlres is NULL,
|
||||||
|
* set res to error code
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user