Loading lib/Makefile.inc +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ CSOURCES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ content_encoding.c share.c http_digest.c md5.c http_negotiate.c \ http_ntlm.c inet_pton.c strtoofft.c strerror.c hostares.c hostasyn.c \ hostip4.c hostip6.c hostsyn.c hostthre.c inet_ntop.c parsedate.c \ select.c gtls.c sslgen.c tftp.c select.c gtls.c sslgen.c tftp.c splay.c HHEADERS = arpa_telnet.h netrc.h file.h timeval.h base64.h hostip.h \ progress.h formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h \ Loading @@ -18,6 +18,6 @@ HHEADERS = arpa_telnet.h netrc.h file.h timeval.h base64.h hostip.h \ share.h md5.h http_digest.h http_negotiate.h http_ntlm.h ca-bundle.h \ inet_pton.h strtoofft.h strerror.h inet_ntop.h curlx.h memory.h \ setup.h transfer.h select.h easyif.h multiif.h parsedate.h sslgen.h \ gtls.h tftp.h sockaddr.h gtls.h tftp.h sockaddr.h splay.h lib/connect.c +8 −2 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ #include "memory.h" #include "select.h" #include "url.h" /* for Curl_safefree() */ #include "multiif.h" #include "sockaddr.h" /* required for Curl_sockaddr_storage */ /* The last #include file should be: */ Loading Loading @@ -534,6 +535,7 @@ CURLcode Curl_is_connected(struct connectdata *conn, CURLcode code = CURLE_OK; curl_socket_t sockfd = conn->sock[sockindex]; long allow = DEFAULT_CONNECT_TIMEOUT; long allow_total = 0; long has_passed; curlassert(sockindex >= FIRSTSOCKET && sockindex <= SECONDARYSOCKET); Loading @@ -546,12 +548,12 @@ CURLcode Curl_is_connected(struct connectdata *conn, /* subtract the most strict timeout of the ones */ if(data->set.timeout && data->set.connecttimeout) { if (data->set.timeout < data->set.connecttimeout) allow = data->set.timeout*1000; allow_total = allow = data->set.timeout*1000; else allow = data->set.connecttimeout*1000; } else if(data->set.timeout) { allow = data->set.timeout*1000; allow_total = allow = data->set.timeout*1000; } else if(data->set.connecttimeout) { allow = data->set.connecttimeout*1000; Loading @@ -564,10 +566,13 @@ CURLcode Curl_is_connected(struct connectdata *conn, } if(conn->bits.tcpconnect) { /* we are connected already! */ Curl_expire(data, allow_total); *connected = TRUE; return CURLE_OK; } Curl_expire(data, allow); /* check for connect without timeout as we want to return immediately */ rc = waitconnect(sockfd, 0); Loading Loading @@ -818,6 +823,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ return CURLE_OPERATION_TIMEOUTED; } } Curl_expire(data, timeout_ms); /* Max time for each address */ num_addr = Curl_num_addresses(remotehost->addr); Loading lib/ftp.c +12 −14 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ #include "select.h" #include "parsedate.h" /* for the week day and month names */ #include "sockaddr.h" /* required for Curl_sockaddr_storage */ #include "multiif.h" #if defined(HAVE_INET_NTOA_R) && !defined(HAVE_INET_NTOA_R_DECL) #include "inet_ntoa_r.h" Loading Loading @@ -718,27 +719,24 @@ static CURLcode ftp_state_pwd(struct connectdata *conn) } /* For the FTP "protocol connect" and "doing" phases only */ CURLcode Curl_ftp_fdset(struct connectdata *conn, fd_set *read_fd_set, fd_set *write_fd_set, int *max_fdp) int Curl_ftp_getsock(struct connectdata *conn, curl_socket_t *socks, int numsocks) { struct FTP *ftp = conn->proto.ftp; curl_socket_t sockfd = conn->sock[FIRSTSOCKET]; if(!numsocks) return GETSOCK_BLANK; socks[0] = conn->sock[FIRSTSOCKET]; if(ftp->sendleft) { /* write mode */ FD_SET(sockfd, write_fd_set); return GETSOCK_WRITESOCK(0); } else { /* read mode */ FD_SET(sockfd, read_fd_set); } if((int)sockfd > *max_fdp) *max_fdp = (int)sockfd; return CURLE_OK; /* read mode */ return GETSOCK_READSOCK(0); } /* This is called after the FTP_QUOTE state is passed. Loading lib/ftp.h +3 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,9 @@ CURLcode Curl_GetFTPResponse(ssize_t *nread, struct connectdata *conn, int *ftpcode); CURLcode Curl_ftp_nextconnect(struct connectdata *conn); CURLcode Curl_ftp_multi_statemach(struct connectdata *conn, bool *done); CURLcode Curl_ftp_fdset(struct connectdata *conn, fd_set *read_fd_set, fd_set *write_fd_set, int *max_fdp); int Curl_ftp_getsock(struct connectdata *conn, curl_socket_t *socks, int numsocks); CURLcode Curl_ftp_doing(struct connectdata *conn, bool *dophase_done); #endif /* CURL_DISABLE_FTP */ Loading lib/hash.c +22 −4 Original line number Diff line number Diff line Loading @@ -124,8 +124,11 @@ mk_hash_element(char *key, size_t key_len, const void *p) (struct curl_hash_element *) malloc(sizeof(struct curl_hash_element)); if(he) { char *dup = strdup(key); char *dup = malloc(key_len); if(dup) { /* copy the key */ memcpy(dup, key, key_len); he->key = dup; he->key_len = key_len; he->ptr = (void *) p; Loading Loading @@ -179,6 +182,23 @@ Curl_hash_add(struct curl_hash *h, char *key, size_t key_len, void *p) return NULL; /* failure */ } /* remove the identified hash entry, returns non-zero on failure */ int Curl_hash_delete(struct curl_hash *h, char *key, size_t key_len) { struct curl_llist_element *le; struct curl_hash_element *he; struct curl_llist *l = FETCH_LIST(h, key, key_len); for (le = l->head; le; le = le->next) { he = le->ptr; if (hash_key_compare(he->key, he->key_len, key, key_len)) { Curl_llist_remove(l, le, (void *) h); return 0; } } return 1; } void * Curl_hash_pick(struct curl_hash *h, char *key, size_t key_len) { Loading @@ -186,9 +206,7 @@ Curl_hash_pick(struct curl_hash *h, char *key, size_t key_len) struct curl_hash_element *he; struct curl_llist *l = FETCH_LIST(h, key, key_len); for (le = l->head; le; le = le->next) { for (le = l->head; le; le = le->next) { he = le->ptr; if (hash_key_compare(he->key, he->key_len, key, key_len)) { return he->ptr; Loading Loading
lib/Makefile.inc +2 −2 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ CSOURCES = file.c timeval.c base64.c hostip.c progress.c formdata.c \ content_encoding.c share.c http_digest.c md5.c http_negotiate.c \ http_ntlm.c inet_pton.c strtoofft.c strerror.c hostares.c hostasyn.c \ hostip4.c hostip6.c hostsyn.c hostthre.c inet_ntop.c parsedate.c \ select.c gtls.c sslgen.c tftp.c select.c gtls.c sslgen.c tftp.c splay.c HHEADERS = arpa_telnet.h netrc.h file.h timeval.h base64.h hostip.h \ progress.h formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h \ Loading @@ -18,6 +18,6 @@ HHEADERS = arpa_telnet.h netrc.h file.h timeval.h base64.h hostip.h \ share.h md5.h http_digest.h http_negotiate.h http_ntlm.h ca-bundle.h \ inet_pton.h strtoofft.h strerror.h inet_ntop.h curlx.h memory.h \ setup.h transfer.h select.h easyif.h multiif.h parsedate.h sslgen.h \ gtls.h tftp.h sockaddr.h gtls.h tftp.h sockaddr.h splay.h
lib/connect.c +8 −2 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ #include "memory.h" #include "select.h" #include "url.h" /* for Curl_safefree() */ #include "multiif.h" #include "sockaddr.h" /* required for Curl_sockaddr_storage */ /* The last #include file should be: */ Loading Loading @@ -534,6 +535,7 @@ CURLcode Curl_is_connected(struct connectdata *conn, CURLcode code = CURLE_OK; curl_socket_t sockfd = conn->sock[sockindex]; long allow = DEFAULT_CONNECT_TIMEOUT; long allow_total = 0; long has_passed; curlassert(sockindex >= FIRSTSOCKET && sockindex <= SECONDARYSOCKET); Loading @@ -546,12 +548,12 @@ CURLcode Curl_is_connected(struct connectdata *conn, /* subtract the most strict timeout of the ones */ if(data->set.timeout && data->set.connecttimeout) { if (data->set.timeout < data->set.connecttimeout) allow = data->set.timeout*1000; allow_total = allow = data->set.timeout*1000; else allow = data->set.connecttimeout*1000; } else if(data->set.timeout) { allow = data->set.timeout*1000; allow_total = allow = data->set.timeout*1000; } else if(data->set.connecttimeout) { allow = data->set.connecttimeout*1000; Loading @@ -564,10 +566,13 @@ CURLcode Curl_is_connected(struct connectdata *conn, } if(conn->bits.tcpconnect) { /* we are connected already! */ Curl_expire(data, allow_total); *connected = TRUE; return CURLE_OK; } Curl_expire(data, allow); /* check for connect without timeout as we want to return immediately */ rc = waitconnect(sockfd, 0); Loading Loading @@ -818,6 +823,7 @@ CURLcode Curl_connecthost(struct connectdata *conn, /* context */ return CURLE_OPERATION_TIMEOUTED; } } Curl_expire(data, timeout_ms); /* Max time for each address */ num_addr = Curl_num_addresses(remotehost->addr); Loading
lib/ftp.c +12 −14 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ #include "select.h" #include "parsedate.h" /* for the week day and month names */ #include "sockaddr.h" /* required for Curl_sockaddr_storage */ #include "multiif.h" #if defined(HAVE_INET_NTOA_R) && !defined(HAVE_INET_NTOA_R_DECL) #include "inet_ntoa_r.h" Loading Loading @@ -718,27 +719,24 @@ static CURLcode ftp_state_pwd(struct connectdata *conn) } /* For the FTP "protocol connect" and "doing" phases only */ CURLcode Curl_ftp_fdset(struct connectdata *conn, fd_set *read_fd_set, fd_set *write_fd_set, int *max_fdp) int Curl_ftp_getsock(struct connectdata *conn, curl_socket_t *socks, int numsocks) { struct FTP *ftp = conn->proto.ftp; curl_socket_t sockfd = conn->sock[FIRSTSOCKET]; if(!numsocks) return GETSOCK_BLANK; socks[0] = conn->sock[FIRSTSOCKET]; if(ftp->sendleft) { /* write mode */ FD_SET(sockfd, write_fd_set); return GETSOCK_WRITESOCK(0); } else { /* read mode */ FD_SET(sockfd, read_fd_set); } if((int)sockfd > *max_fdp) *max_fdp = (int)sockfd; return CURLE_OK; /* read mode */ return GETSOCK_READSOCK(0); } /* This is called after the FTP_QUOTE state is passed. Loading
lib/ftp.h +3 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,9 @@ CURLcode Curl_GetFTPResponse(ssize_t *nread, struct connectdata *conn, int *ftpcode); CURLcode Curl_ftp_nextconnect(struct connectdata *conn); CURLcode Curl_ftp_multi_statemach(struct connectdata *conn, bool *done); CURLcode Curl_ftp_fdset(struct connectdata *conn, fd_set *read_fd_set, fd_set *write_fd_set, int *max_fdp); int Curl_ftp_getsock(struct connectdata *conn, curl_socket_t *socks, int numsocks); CURLcode Curl_ftp_doing(struct connectdata *conn, bool *dophase_done); #endif /* CURL_DISABLE_FTP */ Loading
lib/hash.c +22 −4 Original line number Diff line number Diff line Loading @@ -124,8 +124,11 @@ mk_hash_element(char *key, size_t key_len, const void *p) (struct curl_hash_element *) malloc(sizeof(struct curl_hash_element)); if(he) { char *dup = strdup(key); char *dup = malloc(key_len); if(dup) { /* copy the key */ memcpy(dup, key, key_len); he->key = dup; he->key_len = key_len; he->ptr = (void *) p; Loading Loading @@ -179,6 +182,23 @@ Curl_hash_add(struct curl_hash *h, char *key, size_t key_len, void *p) return NULL; /* failure */ } /* remove the identified hash entry, returns non-zero on failure */ int Curl_hash_delete(struct curl_hash *h, char *key, size_t key_len) { struct curl_llist_element *le; struct curl_hash_element *he; struct curl_llist *l = FETCH_LIST(h, key, key_len); for (le = l->head; le; le = le->next) { he = le->ptr; if (hash_key_compare(he->key, he->key_len, key, key_len)) { Curl_llist_remove(l, le, (void *) h); return 0; } } return 1; } void * Curl_hash_pick(struct curl_hash *h, char *key, size_t key_len) { Loading @@ -186,9 +206,7 @@ Curl_hash_pick(struct curl_hash *h, char *key, size_t key_len) struct curl_hash_element *he; struct curl_llist *l = FETCH_LIST(h, key, key_len); for (le = l->head; le; le = le->next) { for (le = l->head; le; le = le->next) { he = le->ptr; if (hash_key_compare(he->key, he->key_len, key, key_len)) { return he->ptr; Loading