From 5af702d95b4fbe4b7d91dbe3a6bae5b0169cc18a Mon Sep 17 00:00:00 2001 From: Stephan Meier Date: Thu, 2 Apr 2020 17:21:30 +0200 Subject: [PATCH 1/4] fix configure options: -tlsauthtype, -transferencoding, -gssapidelegation, -noproxy, -telnetoptions --- generic/tclcurl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generic/tclcurl.h b/generic/tclcurl.h index b235d58..3d761bf 100755 --- a/generic/tclcurl.h +++ b/generic/tclcurl.h @@ -196,8 +196,8 @@ CONST static char *optionTable[] = { "CURLOPT_MAIL_RCPT", "CURLOPT_FTP_USE_PRET", "CURLOPT_WILDCARDMATCH", "CURLOPT_CHUNK_BGN_PROC", "CURLOPT_CHUNK_BGN_VAR", "CURLOPT_CHUNK_END_PROC", "CURLOPT_FNMATCH_PROC", "CURLOPT_RESOLVE", "CURLOPT_TLSAUTH_USERNAME", - "CURLOPT_TLSAUTH_PASSWORD","CURLOPT_GSSAPI_DELEGATION", "CURLOPT_NOPROXY", - "CURLOPT_TELNETOPTIONS", + "CURLOPT_TLSAUTH_PASSWORD", "CURLOPT_TLSAUTH_TYPE", "CURLOPT_TRANSFER_ENCODING", + "CURLOPT_GSSAPI_DELEGATION", "CURLOPT_NOPROXY", "CURLOPT_TELNETOPTIONS", (char *)NULL }; @@ -261,8 +261,8 @@ CONST static char *configTable[] = { "-mailrcpt", "-ftpusepret", "-wildcardmatch", "-chunkbgnproc", "-chunkbgnvar", "-chunkendproc", "-fnmatchproc", "-resolve", "-tlsauthusername", - "-tlsauthpassword", "-gssapidelegation", "-noproxy", - "-telnetoptions", + "-tlsauthpassword", "-tlsauthtype", "-transferencoding", + "-gssapidelegation", "-noproxy", "-telnetoptions", (char *) NULL }; From 739213e9ddea305d15f43931f108ecfc01a7073e Mon Sep 17 00:00:00 2001 From: Stephan Meier Date: Thu, 2 Apr 2020 18:39:35 +0200 Subject: [PATCH 2/4] fix typo in configure options (man page is correct): -ftpsslcc -> -ftpsslccc --- generic/tclcurl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/tclcurl.h b/generic/tclcurl.h index 3d761bf..629d040 100755 --- a/generic/tclcurl.h +++ b/generic/tclcurl.h @@ -191,7 +191,7 @@ CONST static char *optionTable[] = { "CURLOPT_POSTREDIR", "CURLOPT_USERNAME", "CURLOPT_PASSWORD", "CURLOPT_PROXYUSERNAME", "CURLOPT_PROXYPASSWORD", "CURLOPT_TFTP_BLKSIZE", "CURLOPT_SOCKS5_GSSAPI_SERVICE", "CURLOPT_SOCKS5_GSSAPI_NEC", - "CURLOPT_PROTOCOLS", "CURLOPT_REDIR_PROTOCOLS","CURLOPT_FTP_SSL_CC", + "CURLOPT_PROTOCOLS", "CURLOPT_REDIR_PROTOCOLS","CURLOPT_FTP_SSL_CCC", "CURLOPT_SSH_KNOWNHOSTS", "CURLOPT_SSH_KEYFUNCTION","CURLOPT_MAIL_FROM", "CURLOPT_MAIL_RCPT", "CURLOPT_FTP_USE_PRET", "CURLOPT_WILDCARDMATCH", "CURLOPT_CHUNK_BGN_PROC", "CURLOPT_CHUNK_BGN_VAR", "CURLOPT_CHUNK_END_PROC", @@ -256,7 +256,7 @@ CONST static char *configTable[] = { "-certinfo", "-postredir", "-username", "-password", "-proxyuser", "-proxypassword", "-tftpblksize", "-socks5gssapiservice","-socks5gssapinec", - "-protocols", "-redirprotocols", "-ftpsslcc", + "-protocols", "-redirprotocols", "-ftpsslccc", "-sshknownhosts", "-sshkeyproc", "-mailfrom", "-mailrcpt", "-ftpusepret", "-wildcardmatch", "-chunkbgnproc", "-chunkbgnvar", "-chunkendproc", From cad73fc8cb2012ebaf11c1bccd1139b7fb7c4bf9 Mon Sep 17 00:00:00 2001 From: Stephan Meier Date: Thu, 2 Apr 2020 18:53:57 +0200 Subject: [PATCH 3/4] correctly use 64 bit lengths on 32 bit systems --- generic/tclcurl.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/generic/tclcurl.c b/generic/tclcurl.c index 26625aa..0dd132d 100755 --- a/generic/tclcurl.c +++ b/generic/tclcurl.c @@ -2237,8 +2237,7 @@ SetoptLong(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt, * * curlSetoptCurlOffT -- * - * Set the curl options that require a curl_off_t, even if we really - * use a long to do it. (Cutting and pasting at its worst) + * Set the curl options that require a curl_off_t * * Parameter: * interp: The interpreter we are working with. @@ -2254,17 +2253,17 @@ SetoptLong(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt, int SetoptCurlOffT(Tcl_Interp *interp,CURL *curlHandle,CURLoption opt, int tableIndex,Tcl_Obj *tclObj) { - long longNumber; + Tcl_WideInt wideNumber; char *parPtr; - if (Tcl_GetLongFromObj(interp,tclObj,&longNumber)) { + if (Tcl_GetWideIntFromObj(interp,tclObj,&wideNumber)) { parPtr=curlstrdup(Tcl_GetString(tclObj)); curlErrorSetOpt(interp,configTable,tableIndex,parPtr); Tcl_Free(parPtr); return 1; } - if (curl_easy_setopt(curlHandle,opt,(curl_off_t)longNumber)) { + if (curl_easy_setopt(curlHandle,opt,(curl_off_t)wideNumber)) { parPtr=curlstrdup(Tcl_GetString(tclObj)); curlErrorSetOpt(interp,configTable,tableIndex,parPtr); Tcl_Free(parPtr); From 26da96676246f7be1d9ec440f1e85abc78045aaf Mon Sep 17 00:00:00 2001 From: Stephan Meier Date: Thu, 2 Apr 2020 18:40:51 +0200 Subject: [PATCH 4/4] fix / implement configure option -postfieldsize --- generic/tclcurl.c | 6 ++++++ generic/tclcurl.h | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/generic/tclcurl.c b/generic/tclcurl.c index 0dd132d..eabd2b1 100755 --- a/generic/tclcurl.c +++ b/generic/tclcurl.c @@ -702,6 +702,12 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData, return TCL_ERROR; } break; + case 32: + if (SetoptCurlOffT(interp,curlHandle,CURLOPT_POSTFIELDSIZE_LARGE, + tableIndex,objv)) { + return TCL_ERROR; + } + break; case 33: if (SetoptChar(interp,curlHandle, CURLOPT_FTPPORT,tableIndex,objv)) { diff --git a/generic/tclcurl.h b/generic/tclcurl.h index 629d040..4d56307 100755 --- a/generic/tclcurl.h +++ b/generic/tclcurl.h @@ -145,7 +145,7 @@ CONST static char *optionTable[] = { "CURLOPT_FOLLOWLOCATION","CURLOPT_TRANSFERTEXT", "CURLOPT_PUT", "CURLOPT_MUTE", "CURLOPT_USERPWD", "CURLOPT_PROXYUSERPWD", "CURLOPT_RANGE", "CURLOPT_ERRORBUFFER", "CURLOPT_HTTPGET", - "CURLOPT_POST", "CURLOPT_POSTFIELDS", "CURLOPT_POSTFIELDSIZE", + "CURLOPT_POST", "CURLOPT_POSTFIELDS", "CURLOPT_POSTFIELDSIZE_LARGE", "CURLOPT_FTPPORT", "CURLOPT_COOKIE", "CURLOPT_COOKIEFILE", "CURLOPT_HTTPHEADER", "CURLOPT_HTTPPOST", "CURLOPT_SSLCERT", "CURLOPT_SSLCERTPASSWD", "CURLOPT_SSLVERSION", "CURLOPT_CRLF", @@ -212,7 +212,7 @@ CONST static char *configTable[] = { "-followlocation", "-transfertext", "-put", "-mute", "-userpwd", "-proxyuserpwd", "-range", "-errorbuffer", "-httpget", - "-post", "-postfields", "-postfieldssize", + "-post", "-postfields", "-postfieldsize", "-ftpport", "-cookie", "-cookiefile", "-httpheader", "-httppost", "-sslcert", "-sslcertpasswd", "-sslversion", "-crlf",