Mercurial > hg > orthanc
comparison OrthancServer/main.cpp @ 2069:fabf7820d1f1
New configuration options: "DicomScuTimeout" and "DicomScpTimeout" + validation of non-negative options
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 13 Jul 2016 16:52:39 +0200 |
parents | 300599489cab |
children | acb4cd4af771 |
comparison
equal
deleted
inserted
replaced
2068:879f3be759ef | 2069:fabf7820d1f1 |
---|---|
109 | 109 |
110 virtual IFindRequestHandler* ConstructFindRequestHandler() | 110 virtual IFindRequestHandler* ConstructFindRequestHandler() |
111 { | 111 { |
112 std::auto_ptr<OrthancFindRequestHandler> result(new OrthancFindRequestHandler(context_)); | 112 std::auto_ptr<OrthancFindRequestHandler> result(new OrthancFindRequestHandler(context_)); |
113 | 113 |
114 result->SetMaxResults(Configuration::GetGlobalIntegerParameter("LimitFindResults", 0)); | 114 result->SetMaxResults(Configuration::GetGlobalUnsignedIntegerParameter("LimitFindResults", 0)); |
115 result->SetMaxInstances(Configuration::GetGlobalIntegerParameter("LimitFindInstances", 0)); | 115 result->SetMaxInstances(Configuration::GetGlobalUnsignedIntegerParameter("LimitFindInstances", 0)); |
116 | 116 |
117 if (result->GetMaxResults() == 0) | 117 if (result->GetMaxResults() == 0) |
118 { | 118 { |
119 LOG(INFO) << "No limit on the number of C-FIND results at the Patient, Study and Series levels"; | 119 LOG(INFO) << "No limit on the number of C-FIND results at the Patient, Study and Series levels"; |
120 } | 120 } |
720 | 720 |
721 | 721 |
722 // HTTP server | 722 // HTTP server |
723 MyIncomingHttpRequestFilter httpFilter(context, plugins); | 723 MyIncomingHttpRequestFilter httpFilter(context, plugins); |
724 MongooseServer httpServer; | 724 MongooseServer httpServer; |
725 httpServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("HttpPort", 8042)); | 725 httpServer.SetPortNumber(Configuration::GetGlobalUnsignedIntegerParameter("HttpPort", 8042)); |
726 httpServer.SetRemoteAccessAllowed(Configuration::GetGlobalBoolParameter("RemoteAccessAllowed", false)); | 726 httpServer.SetRemoteAccessAllowed(Configuration::GetGlobalBoolParameter("RemoteAccessAllowed", false)); |
727 httpServer.SetKeepAliveEnabled(Configuration::GetGlobalBoolParameter("KeepAlive", false)); | 727 httpServer.SetKeepAliveEnabled(Configuration::GetGlobalBoolParameter("KeepAlive", false)); |
728 httpServer.SetHttpCompressionEnabled(Configuration::GetGlobalBoolParameter("HttpCompressionEnabled", true)); | 728 httpServer.SetHttpCompressionEnabled(Configuration::GetGlobalBoolParameter("HttpCompressionEnabled", true)); |
729 httpServer.SetIncomingHttpRequestFilter(httpFilter); | 729 httpServer.SetIncomingHttpRequestFilter(httpFilter); |
730 httpServer.SetHttpExceptionFormatter(exceptionFormatter); | 730 httpServer.SetHttpExceptionFormatter(exceptionFormatter); |
782 OrthancApplicationEntityFilter dicomFilter(context); | 782 OrthancApplicationEntityFilter dicomFilter(context); |
783 dicomServer.SetCalledApplicationEntityTitleCheck(Configuration::GetGlobalBoolParameter("DicomCheckCalledAet", false)); | 783 dicomServer.SetCalledApplicationEntityTitleCheck(Configuration::GetGlobalBoolParameter("DicomCheckCalledAet", false)); |
784 dicomServer.SetStoreRequestHandlerFactory(serverFactory); | 784 dicomServer.SetStoreRequestHandlerFactory(serverFactory); |
785 dicomServer.SetMoveRequestHandlerFactory(serverFactory); | 785 dicomServer.SetMoveRequestHandlerFactory(serverFactory); |
786 dicomServer.SetFindRequestHandlerFactory(serverFactory); | 786 dicomServer.SetFindRequestHandlerFactory(serverFactory); |
787 dicomServer.SetAssociationTimeout(Configuration::GetGlobalUnsignedIntegerParameter("DicomScpTimeout", 30)); | |
788 | |
787 | 789 |
788 #if ORTHANC_PLUGINS_ENABLED == 1 | 790 #if ORTHANC_PLUGINS_ENABLED == 1 |
789 if (plugins != NULL) | 791 if (plugins != NULL) |
790 { | 792 { |
791 if (plugins->HasWorklistHandler()) | 793 if (plugins->HasWorklistHandler()) |
803 dicomServer.SetMoveRequestHandlerFactory(*plugins); | 805 dicomServer.SetMoveRequestHandlerFactory(*plugins); |
804 } | 806 } |
805 } | 807 } |
806 #endif | 808 #endif |
807 | 809 |
808 dicomServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("DicomPort", 4242)); | 810 dicomServer.SetPortNumber(Configuration::GetGlobalUnsignedIntegerParameter("DicomPort", 4242)); |
809 dicomServer.SetApplicationEntityTitle(Configuration::GetGlobalStringParameter("DicomAet", "ORTHANC")); | 811 dicomServer.SetApplicationEntityTitle(Configuration::GetGlobalStringParameter("DicomAet", "ORTHANC")); |
810 dicomServer.SetApplicationEntityFilter(dicomFilter); | 812 dicomServer.SetApplicationEntityFilter(dicomFilter); |
811 | 813 |
812 if (dicomServer.GetPortNumber() < 1024) | 814 if (dicomServer.GetPortNumber() < 1024) |
813 { | 815 { |
934 { | 936 { |
935 ServerContext context(database, storageArea); | 937 ServerContext context(database, storageArea); |
936 | 938 |
937 HttpClient::ConfigureSsl(Configuration::GetGlobalBoolParameter("HttpsVerifyPeers", true), | 939 HttpClient::ConfigureSsl(Configuration::GetGlobalBoolParameter("HttpsVerifyPeers", true), |
938 Configuration::GetGlobalStringParameter("HttpsCACertificates", "")); | 940 Configuration::GetGlobalStringParameter("HttpsCACertificates", "")); |
939 HttpClient::SetDefaultTimeout(Configuration::GetGlobalIntegerParameter("HttpTimeout", 0)); | 941 HttpClient::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("HttpTimeout", 0)); |
940 HttpClient::SetDefaultProxy(Configuration::GetGlobalStringParameter("HttpProxy", "")); | 942 HttpClient::SetDefaultProxy(Configuration::GetGlobalStringParameter("HttpProxy", "")); |
943 | |
944 DicomUserConnection::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("DicomScuTimeout", 10)); | |
945 | |
941 context.SetCompressionEnabled(Configuration::GetGlobalBoolParameter("StorageCompression", false)); | 946 context.SetCompressionEnabled(Configuration::GetGlobalBoolParameter("StorageCompression", false)); |
942 context.SetStoreMD5ForAttachments(Configuration::GetGlobalBoolParameter("StoreMD5ForAttachments", true)); | 947 context.SetStoreMD5ForAttachments(Configuration::GetGlobalBoolParameter("StoreMD5ForAttachments", true)); |
943 | 948 |
944 try | 949 try |
945 { | 950 { |
946 context.GetIndex().SetMaximumPatientCount(Configuration::GetGlobalIntegerParameter("MaximumPatientCount", 0)); | 951 context.GetIndex().SetMaximumPatientCount(Configuration::GetGlobalUnsignedIntegerParameter("MaximumPatientCount", 0)); |
947 } | 952 } |
948 catch (...) | 953 catch (...) |
949 { | 954 { |
950 context.GetIndex().SetMaximumPatientCount(0); | 955 context.GetIndex().SetMaximumPatientCount(0); |
951 } | 956 } |
952 | 957 |
953 try | 958 try |
954 { | 959 { |
955 uint64_t size = Configuration::GetGlobalIntegerParameter("MaximumStorageSize", 0); | 960 uint64_t size = Configuration::GetGlobalUnsignedIntegerParameter("MaximumStorageSize", 0); |
956 context.GetIndex().SetMaximumStorageSize(size * 1024 * 1024); | 961 context.GetIndex().SetMaximumStorageSize(size * 1024 * 1024); |
957 } | 962 } |
958 catch (...) | 963 catch (...) |
959 { | 964 { |
960 context.GetIndex().SetMaximumStorageSize(0); | 965 context.GetIndex().SetMaximumStorageSize(0); |