# HG changeset patch # User Sebastien Jodogne # Date 1593157671 -7200 # Node ID dcf4d83374a6138a981ac27a545e03d0fc943f0f # Parent 26efd0404d97e489375d77e445166fe82292f700# Parent 4cd94ed75a5bac85057cc77b58177fa0c6a4e9c6 integration mainline->framework diff -r 26efd0404d97 -r dcf4d83374a6 NEWS --- a/NEWS Tue Jun 23 07:39:42 2020 +0200 +++ b/NEWS Fri Jun 26 09:47:51 2020 +0200 @@ -10,6 +10,11 @@ * New functions in the SDK: - new "changes": JobSubmitted, JobSuccess, JobFailure +Maintenance +----------- + +* Issue #182: Better handling of errors in plugins reading chunked HTTP body + Version 1.7.1 (2020-05-27) ========================== diff -r 26efd0404d97 -r dcf4d83374a6 OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake --- a/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Tue Jun 23 07:39:42 2020 +0200 +++ b/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Fri Jun 26 09:47:51 2020 +0200 @@ -104,6 +104,8 @@ if (NOT ENABLE_DCMTK) add_definitions( -DORTHANC_ENABLE_DCMTK=0 + -DORTHANC_ENABLE_DCMTK_JPEG=0 + -DORTHANC_ENABLE_DCMTK_JPEG_LOSSLESS=0 -DORTHANC_ENABLE_DCMTK_NETWORKING=0 -DORTHANC_ENABLE_DCMTK_TRANSCODING=0 ) diff -r 26efd0404d97 -r dcf4d83374a6 OrthancFramework/Sources/WebServiceParameters.cpp diff -r 26efd0404d97 -r dcf4d83374a6 OrthancServer/Plugins/Engine/OrthancPlugins.cpp --- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Tue Jun 23 07:39:42 2020 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Fri Jun 26 09:47:51 2020 +0200 @@ -5131,15 +5131,15 @@ OrthancPluginErrorCode errorCode = handler( &reader, matcher.GetFlatUri().c_str(), &converter.GetRequest()); - if (reader == NULL) + if (errorCode != OrthancPluginErrorCode_Success) + { + throw OrthancException(static_cast(errorCode)); + } + else if (reader == NULL) { // The plugin has not created a reader for chunked body return false; } - else if (errorCode != OrthancPluginErrorCode_Success) - { - throw OrthancException(static_cast(errorCode)); - } else { target.reset(new HttpServerChunkedReader(reader, callback->GetParameters(), GetErrorDictionary()));