- MMS server: in case of file upload timeout the task will end with proper error response.

pull/183/head
Király Péter 6 years ago
parent a03f57c0a7
commit 3b32c14870

@ -210,8 +210,10 @@ mmsClient_handleFileCloseRequest(
if (frsm->obtainRequest) if (frsm->obtainRequest)
frsm->obtainRequest->timeout = Hal_getTimeInMs() + connection->requestTimeout; frsm->obtainRequest->timeout = Hal_getTimeInMs() + connection->requestTimeout;
FileSystem_closeFile(frsm->fileHandle); if(frsm->fileHandle){
frsm->fileHandle = NULL; FileSystem_closeFile(frsm->fileHandle);
frsm->fileHandle = NULL;
}
frsm->frsmId = 0; frsm->frsmId = 0;
frsm->obtainRequest = NULL; frsm->obtainRequest = NULL;

@ -554,20 +554,25 @@ handleConfirmedResponsePdu(
bool moreFollows; bool moreFollows;
if (mmsMsg_parseFileReadResponse(buffer, startBufPos, maxBufPos, invokeId, fileTask->frmsId, &moreFollows, mmsFileReadHandler, (void*) fileTask)) { if(fileTask->fileHandle == NULL){
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_ERROR_DESTINATION;
if (moreFollows) { }
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_FILE_READ; else{
if (mmsMsg_parseFileReadResponse(buffer, startBufPos, maxBufPos, invokeId, fileTask->frmsId, &moreFollows, mmsFileReadHandler, (void*) fileTask)) {
if (moreFollows) {
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_FILE_READ;
}
else {
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_FILE_CLOSE;
}
} }
else { else {
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_FILE_CLOSE; fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_ERROR_SOURCE;
}
}
else {
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_ERROR_SOURCE;
if (DEBUG_MMS_SERVER) if (DEBUG_MMS_SERVER)
printf("MMS_SERVER: error parsing file-read-response\n"); printf("MMS_SERVER: error parsing file-read-response\n");
}
} }
} }
else { else {
@ -588,7 +593,9 @@ handleConfirmedResponsePdu(
MmsObtainFileTask fileTask = getUploadTaskByInvokeId(self->server, invokeId); MmsObtainFileTask fileTask = getUploadTaskByInvokeId(self->server, invokeId);
if (fileTask != NULL) { if (fileTask != NULL) {
FileSystem_closeFile(fileTask->fileHandle); if(fileTask->fileHandle){
FileSystem_closeFile(fileTask->fileHandle);
}
fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_RESPONSE; fileTask->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_RESPONSE;
} }
else { else {

Loading…
Cancel
Save