Mercurial > hg > orthanc
diff OrthancServer/Sources/main.cpp @ 4772:ec8aef42a7db
new configuration option "DicomAlwaysAllowMove" to disable verification of the remote modality in C-MOVE SCP
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 30 Aug 2021 09:47:47 +0200 |
parents | 82a314325351 |
children | 61da49321754 656784ac6759 434843934307 fc2ba1ce6538 |
line wrap: on
line diff
--- a/OrthancServer/Sources/main.cpp Wed Aug 25 17:20:21 2021 +0200 +++ b/OrthancServer/Sources/main.cpp Mon Aug 30 09:47:47 2021 +0200 @@ -279,6 +279,7 @@ bool alwaysAllowEcho_; bool alwaysAllowFind_; // New in Orthanc 1.9.0 bool alwaysAllowGet_; // New in Orthanc 1.9.0 + bool alwaysAllowMove_; // New in Orthanc 1.9.7 bool alwaysAllowStore_; public: @@ -290,6 +291,7 @@ alwaysAllowEcho_ = lock.GetConfiguration().GetBooleanParameter("DicomAlwaysAllowEcho", true); alwaysAllowFind_ = lock.GetConfiguration().GetBooleanParameter("DicomAlwaysAllowFind", false); alwaysAllowGet_ = lock.GetConfiguration().GetBooleanParameter("DicomAlwaysAllowGet", false); + alwaysAllowMove_ = lock.GetConfiguration().GetBooleanParameter("DicomAlwaysAllowMove", false); alwaysAllowStore_ = lock.GetConfiguration().GetBooleanParameter("DicomAlwaysAllowStore", true); } @@ -302,6 +304,11 @@ { LOG(WARNING) << "Security risk in DICOM SCP: C-GET requests are always allowed, even from unknown modalities"; } + + if (alwaysAllowMove_) + { + LOG(WARNING) << "Security risk in DICOM SCP: C-MOOVE requests are always allowed, even from unknown modalities"; + } } virtual bool IsAllowedConnection(const std::string& remoteIp, @@ -314,6 +321,7 @@ if (alwaysAllowEcho_ || alwaysAllowFind_ || alwaysAllowGet_ || + alwaysAllowMove_ || alwaysAllowStore_) { return true; @@ -368,6 +376,12 @@ // Incoming C-Get requests are always accepted, even from unknown AET return true; } + else if (type == DicomRequestType_Move && + alwaysAllowMove_) + { + // Incoming C-Move requests are always accepted, even from unknown AET + return true; + } else { bool checkIp;