Close the file handle in time in case -file option is used
Origin: https://www.androwish.org/index.html/vpatch?from=9afc8918cdeec6d7&to=e4864fde820aac71 Author: Christian Werner <chw@ch-werner.de>
This commit is contained in:
parent
c616ae3f10
commit
1fd1b4178a
@ -465,6 +465,12 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
|
|||||||
case 1:
|
case 1:
|
||||||
Tcl_Free(curlData->outFile);
|
Tcl_Free(curlData->outFile);
|
||||||
curlData->outFile=curlstrdup(Tcl_GetString(objv));
|
curlData->outFile=curlstrdup(Tcl_GetString(objv));
|
||||||
|
if (curlData->outFlag) {
|
||||||
|
if (curlData->outHandle!=NULL) {
|
||||||
|
fclose(curlData->outHandle);
|
||||||
|
curlData->outHandle=NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((strcmp(curlData->outFile,""))&&(strcmp(curlData->outFile,"stdout"))) {
|
if ((strcmp(curlData->outFile,""))&&(strcmp(curlData->outFile,"stdout"))) {
|
||||||
curlData->outFlag=1;
|
curlData->outFlag=1;
|
||||||
} else {
|
} else {
|
||||||
@ -1064,6 +1070,14 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
|
|||||||
case 62:
|
case 62:
|
||||||
Tcl_Free(curlData->bodyVarName);
|
Tcl_Free(curlData->bodyVarName);
|
||||||
curlData->bodyVarName=curlstrdup(Tcl_GetString(objv));
|
curlData->bodyVarName=curlstrdup(Tcl_GetString(objv));
|
||||||
|
if (curlData->outFlag) {
|
||||||
|
if (curlData->outHandle!=NULL) {
|
||||||
|
fclose(curlData->outHandle);
|
||||||
|
curlData->outHandle=NULL;
|
||||||
|
}
|
||||||
|
curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,NULL);
|
||||||
|
}
|
||||||
|
curlData->outFlag=0;
|
||||||
if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
|
if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
|
||||||
curlBodyReader)) {
|
curlBodyReader)) {
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
@ -1101,6 +1115,13 @@ curlSetOpts(Tcl_Interp *interp, struct curlObjData *curlData,
|
|||||||
break;
|
break;
|
||||||
case 65:
|
case 65:
|
||||||
curlData->writeProc=curlstrdup(Tcl_GetString(objv));
|
curlData->writeProc=curlstrdup(Tcl_GetString(objv));
|
||||||
|
if (curlData->outFlag) {
|
||||||
|
if (curlData->outHandle!=NULL) {
|
||||||
|
fclose(curlData->outHandle);
|
||||||
|
curlData->outHandle=NULL;
|
||||||
|
}
|
||||||
|
curl_easy_setopt(curlHandle,CURLOPT_WRITEDATA,NULL);
|
||||||
|
}
|
||||||
curlData->outFlag=0;
|
curlData->outFlag=0;
|
||||||
if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
|
if (curl_easy_setopt(curlHandle,CURLOPT_WRITEFUNCTION,
|
||||||
curlWriteProcInvoke)) {
|
curlWriteProcInvoke)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user