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);