Mercurial > hg > orthanc
diff OrthancServer/main.cpp @ 2375:3ec85ff48374
New security-related options: "DicomAlwaysAllowEcho"
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Aug 2017 16:45:08 +0200 |
parents | 2421c137c304 |
children | b8969010b534 |
line wrap: on
line diff
--- a/OrthancServer/main.cpp Wed Aug 23 16:17:54 2017 +0200 +++ b/OrthancServer/main.cpp Fri Aug 25 16:45:08 2017 +0200 @@ -152,12 +152,14 @@ { private: ServerContext& context_; + bool alwaysAllowEcho_; bool alwaysAllowStore_; public: OrthancApplicationEntityFilter(ServerContext& context) : context_(context) { + alwaysAllowEcho_ = Configuration::GetGlobalBoolParameter("DicomAlwaysAllowEcho", true); alwaysAllowStore_ = Configuration::GetGlobalBoolParameter("DicomAlwaysAllowStore", true); } @@ -168,7 +170,8 @@ LOG(INFO) << "Incoming connection from AET " << remoteAet << " on IP " << remoteIp << ", calling AET " << calledAet; - return (alwaysAllowStore_ || + return (alwaysAllowEcho_ || + alwaysAllowStore_ || Configuration::IsKnownAETitle(remoteAet, remoteIp)); } @@ -180,10 +183,16 @@ LOG(INFO) << "Incoming " << Orthanc::EnumerationToString(type) << " request from AET " << remoteAet << " on IP " << remoteIp << ", calling AET " << calledAet; - if (type == DicomRequestType_Store && - alwaysAllowStore_) + if (type == DicomRequestType_Echo && + alwaysAllowEcho_) { - // Incoming store requests are always accepted, even from unknown AET + // Incoming C-Echo requests are always accepted, even from unknown AET + return true; + } + else if (type == DicomRequestType_Store && + alwaysAllowStore_) + { + // Incoming C-Store requests are always accepted, even from unknown AET return true; } else if (!Configuration::IsKnownAETitle(remoteAet, remoteIp))