changeset 6147:d6f986202236

take options "RejectSopClasses" and "RejectedSopClasses" as synonyms
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 30 May 2025 22:03:32 +0200
parents 66609557a7ee
children 933a549de31f
files NEWS OrthancServer/Sources/ServerContext.cpp
diffstat 2 files changed, 24 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Fri May 30 10:30:04 2025 +0200
+++ b/NEWS	Fri May 30 22:03:32 2025 +0200
@@ -9,6 +9,9 @@
   - If "LimitMainDicomTagsReconstructLevel" was set, files were not transcoded if they had to.
     The "LimitMainDicomTagsReconstructLevel" configuration is now ignored when a full processing
     is required.
+* Configuration options "RejectSopClasses" and "RejectedSopClasses" are taken as synonyms.
+  In Orthanc 1.12.6 and 1.12.7, "RejectSopClasses" was used instead of the expected
+  "RejectedSopClasses" spelling.
 
 
 Version 1.12.7 (2025-04-07)
--- a/OrthancServer/Sources/ServerContext.cpp	Fri May 30 10:30:04 2025 +0200
+++ b/OrthancServer/Sources/ServerContext.cpp	Fri May 30 22:03:32 2025 +0200
@@ -495,7 +495,27 @@
         std::list<std::string> acceptedSopClasses;
         std::set<std::string> rejectedSopClasses;
         lock.GetConfiguration().GetListOfStringsParameter(acceptedSopClasses, "AcceptedSopClasses");
-        lock.GetConfiguration().GetSetOfStringsParameter(rejectedSopClasses, "RejectSopClasses");
+
+        static const char* const REJECTED_SOP_CLASS = "RejectedSopClasses";
+        if (lock.GetJson().isMember(REJECTED_SOP_CLASS))
+        {
+          lock.GetConfiguration().GetSetOfStringsParameter(rejectedSopClasses, REJECTED_SOP_CLASS);
+        }
+        else
+        {
+          static const char* const REJECT_SOP_CLASS = "RejectSopClasses";
+          if (lock.GetJson().isMember(REJECT_SOP_CLASS))
+          {
+            /**
+             * This is for backward compatibility. In Orthanc 1.12.6,
+             * there was a typo: "RejectedSopClasses" was spelled as
+             * "RejectSopClasses".
+             * https://discourse.orthanc-server.org/t/fix-for-config-param-rejectsopclasses-vs-rejectedsopclasses/5900
+             **/
+            lock.GetConfiguration().GetSetOfStringsParameter(rejectedSopClasses, REJECT_SOP_CLASS);
+          }
+        }
+
         SetAcceptedSopClasses(acceptedSopClasses, rejectedSopClasses);
 
         defaultDicomRetrieveMethod_ = StringToRetrieveMethod(lock.GetConfiguration().GetStringParameter("DicomDefaultRetrieveMethod", "C-MOVE"));