Skip to content

Commit

Permalink
Merge pull request #28 from flightaware/cainfo_blob_version_chk
Browse files Browse the repository at this point in the history
fix: add libcurl version check around CURLOPT_CAINFO_BLOB feature
  • Loading branch information
bovine authored Feb 19, 2025
2 parents 1c3ca1d + 49ae928 commit 76de9e9
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 64 deletions.
10 changes: 5 additions & 5 deletions generic/multi.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ curlCreateMultiObjCmd (Tcl_Interp *interp,struct curlMultiObjData *curlMultiData

int
curlInitMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {


Tcl_Obj *result;
Expand Down Expand Up @@ -150,7 +150,7 @@ curlInitMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
*/
int
curlMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {

struct curlMultiObjData *curlMultiData=(struct curlMultiObjData *)clientData;
CURLMcode errorCode;
Expand Down Expand Up @@ -674,7 +674,7 @@ curlReturnCURLMcode (Tcl_Interp *interp,CURLMcode errorCode) {

int
curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {

if (objc==4) {
Tcl_Free(curlMultiData->postCommand);
Expand Down Expand Up @@ -710,7 +710,7 @@ curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData

int
curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {
int tableIndex;
int i,j;

Expand Down Expand Up @@ -754,7 +754,7 @@ curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiDa
*/
int
curlMultiSetOpts(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,
Tcl_Obj *CONST objv,int tableIndex) {
Tcl_Obj *const objv,int tableIndex) {

switch(tableIndex) {
case 0:
Expand Down
14 changes: 7 additions & 7 deletions generic/multi.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ struct curlEvent {
struct curlMultiObjData *curlMultiData;
};

CONST static char *multiCommandTable[] = {
const static char *multiCommandTable[] = {
"addhandle",
"removehandle",
"perform",
Expand All @@ -56,7 +56,7 @@ CONST static char *multiCommandTable[] = {
(char *) NULL
};

CONST static char *multiConfigTable[] = {
const static char *multiConfigTable[] = {
"-pipelining", "-maxconnects",
(char *)NULL
};
Expand All @@ -68,10 +68,10 @@ int Tclcurl_MultiInit (Tcl_Interp *interp);
int curlMultiDeleteCmd(ClientData clientData);

int curlInitMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]);
int objc,Tcl_Obj *const objv[]);

int curlMultiObjCmd (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]);
int objc,Tcl_Obj *const objv[]);

CURLMcode curlAddMultiHandle(Tcl_Interp *interp,CURLM *curlMultiHandle
,Tcl_Obj *objvPtr);
Expand All @@ -96,12 +96,12 @@ void curlEasyHandleListAdd(struct curlMultiObjData *multiDataPtr,CURL *easyHandl
void curlEasyHandleListRemove(struct curlMultiObjData *multiDataPtr,CURL *easyHandle);
char *curlGetEasyName(struct curlMultiObjData *multiDataPtr,CURL *easyHandle);

int curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *CONST objv[]);
int curlMultiSetOpts(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,Tcl_Obj *CONST objv,int tableIndex);
int curlMultiAutoTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *const objv[]);
int curlMultiSetOpts(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData,Tcl_Obj *const objv,int tableIndex);
int SetMultiOptLong(Tcl_Interp *interp,CURLM *curlMultiHandle,CURLMoption opt,
int tableIndex,Tcl_Obj *tclObj);

int curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *CONST objv[]);
int curlMultiConfigTransfer(Tcl_Interp *interp, struct curlMultiObjData *curlMultiData, int objc,Tcl_Obj *const objv[]);

void curlEventSetup(ClientData clientData, int flags);

Expand Down
22 changes: 13 additions & 9 deletions generic/tclcurl.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ curlSetOptsTransfer(Tcl_Interp *interp, struct curlObjData *curlData,
*/
int
curlConfigTransfer(Tcl_Interp *interp, struct curlObjData *curlData,
int objc, Tcl_Obj *CONST objv[]) {
int objc, Tcl_Obj *const objv[]) {

int tableIndex;
int i,j;
Expand Down Expand Up @@ -461,7 +461,7 @@ curlConfigTransfer(Tcl_Interp *interp, struct curlObjData *curlData,
*/
int
curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
Tcl_Obj *CONST objv,int tableIndex) {
Tcl_Obj *const objv,int tableIndex) {

int exitCode;
CURL *curlHandle=curlData->curl;
Expand All @@ -471,8 +471,8 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
Tcl_Obj *tmpObjPtr;

Tcl_RegExp regExp;
CONST char *startPtr;
CONST char *endPtr;
const char *startPtr;
const char *endPtr;

int charLength;
long longNumber=0;
Expand Down Expand Up @@ -2259,11 +2259,15 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
return TCL_OK;
break;
case 175:
#if CURL_AT_LEAST_VERSION(7, 77, 0)
if (SetoptBlob(interp,curlHandle,CURLOPT_CAINFO_BLOB,
tableIndex,objv)) {
return TCL_ERROR;
}
break;
#else
return TCL_ERROR;
#endif
}
return TCL_OK;
}
Expand Down Expand Up @@ -2507,7 +2511,7 @@ SetoptSHandle(Tcl_Interp *interp,CURL *curlHandle,
*/
int
SetoptsList(Tcl_Interp *interp,struct curl_slist **slistPtr,
Tcl_Obj *CONST objv) {
Tcl_Obj *const objv) {
int i,headerNumber;
Tcl_Obj **headers;

Expand Down Expand Up @@ -2547,8 +2551,8 @@ SetoptsList(Tcl_Interp *interp,struct curl_slist **slistPtr,
*/

void
curlErrorSetOpt(Tcl_Interp *interp,CONST char **configTable, int option,
CONST char *parPtr) {
curlErrorSetOpt(Tcl_Interp *interp,const char **configTable, int option,
const char *parPtr) {
Tcl_Obj *resultPtr;

resultPtr=Tcl_ObjPrintf("setting option %s: %s",configTable[option],parPtr);
Expand Down Expand Up @@ -3737,7 +3741,7 @@ curlResetHandle(Tcl_Interp *interp, struct curlObjData *curlData) {
*/
int
curlVersion (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {

Tcl_Obj *versionPtr;

Expand Down Expand Up @@ -4406,7 +4410,7 @@ curlCreateShareObjCmd (Tcl_Interp *interp,struct shcurlObjData *shcurlData) {

int
curlShareInitObjCmd (ClientData clientData, Tcl_Interp *interp,
int objc,Tcl_Obj *CONST objv[]) {
int objc,Tcl_Obj *const objv[]) {

Tcl_Obj *resultPtr;
CURL *shcurlHandle;
Expand Down
Loading

0 comments on commit 76de9e9

Please sign in to comment.