# HG changeset patch # User Sebastien Jodogne # Date 1467640211 -7200 # Node ID ed383e7a6753ed590e5a100a952e8a83f7766252 # Parent 40ffd0e8676a8b8ed40c66bd1e372531a7f34033 cont diff -r 40ffd0e8676a -r ed383e7a6753 Core/MultiThreading/Semaphore.cpp --- a/Core/MultiThreading/Semaphore.cpp Sat Jul 02 15:09:03 2016 +0200 +++ b/Core/MultiThreading/Semaphore.cpp Mon Jul 04 15:50:11 2016 +0200 @@ -40,10 +40,6 @@ { Semaphore::Semaphore(unsigned int count) : count_(count) { - if (count == 0) - { - throw OrthancException(ErrorCode_ParameterOutOfRange); - } } void Semaphore::Release() diff -r 40ffd0e8676a -r ed383e7a6753 Core/Toolbox.cpp --- a/Core/Toolbox.cpp Sat Jul 02 15:09:03 2016 +0200 +++ b/Core/Toolbox.cpp Mon Jul 04 15:50:11 2016 +0200 @@ -230,6 +230,7 @@ } +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void Toolbox::ReadFile(std::string& content, const std::string& path) { @@ -255,8 +256,10 @@ f.close(); } +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool Toolbox::ReadHeader(std::string& header, const std::string& path, size_t headerSize) @@ -300,8 +303,10 @@ return full; } +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void Toolbox::WriteFile(const void* content, size_t size, const std::string& path) @@ -320,16 +325,20 @@ f.close(); } +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void Toolbox::WriteFile(const std::string& content, const std::string& path) { WriteFile(content.size() > 0 ? content.c_str() : NULL, content.size(), path); } +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void Toolbox::RemoveFile(const std::string& path) { if (boost::filesystem::exists(path)) @@ -344,7 +353,7 @@ } } } - +#endif void Toolbox::SplitUriComponents(UriComponents& components, @@ -515,6 +524,7 @@ +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 uint64_t Toolbox::GetFileSize(const std::string& path) { try @@ -526,6 +536,7 @@ throw OrthancException(ErrorCode_InexistentFile); } } +#endif #if !defined(ORTHANC_ENABLE_MD5) || ORTHANC_ENABLE_MD5 == 1 @@ -1144,6 +1155,7 @@ } +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void Toolbox::MakeDirectory(const std::string& path) { if (boost::filesystem::exists(path)) @@ -1161,12 +1173,15 @@ } } } +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool Toolbox::IsExistingFile(const std::string& path) { return boost::filesystem::exists(path); } +#endif #if ORTHANC_PUGIXML_ENABLED == 1 @@ -1468,6 +1483,7 @@ } +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool Toolbox::IsRegularFile(const std::string& path) { namespace fs = boost::filesystem; @@ -1487,6 +1503,7 @@ return false; } +#endif FILE* Toolbox::OpenFile(const std::string& path, diff -r 40ffd0e8676a -r ed383e7a6753 Core/Toolbox.h --- a/Core/Toolbox.h Sat Jul 02 15:09:03 2016 +0200 +++ b/Core/Toolbox.h Mon Jul 04 15:50:11 2016 +0200 @@ -65,25 +65,35 @@ void ToLowerCase(std::string& result, const std::string& source); +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void ReadFile(std::string& content, const std::string& path); +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool ReadHeader(std::string& header, const std::string& path, size_t headerSize); +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void WriteFile(const std::string& content, const std::string& path); +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void WriteFile(const void* content, size_t size, const std::string& path); +#endif #if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void USleep(uint64_t microSeconds); #endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void RemoveFile(const std::string& path); +#endif void SplitUriComponents(UriComponents& components, const std::string& uri); @@ -100,7 +110,9 @@ std::string FlattenUri(const UriComponents& components, size_t fromLevel = 0); +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 uint64_t GetFileSize(const std::string& path); +#endif #if !defined(ORTHANC_ENABLE_MD5) || ORTHANC_ENABLE_MD5 == 1 void ComputeMD5(std::string& result, @@ -177,9 +189,13 @@ const std::string& source, char separator); +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 void MakeDirectory(const std::string& path); +#endif +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool IsExistingFile(const std::string& path); +#endif #if ORTHANC_PUGIXML_ENABLED == 1 void JsonToXml(std::string& target, @@ -201,7 +217,9 @@ int GetProcessId(); +#if !defined(ORTHANC_SANDBOXED) || ORTHANC_SANDBOXED != 1 bool IsRegularFile(const std::string& path); +#endif FILE* OpenFile(const std::string& path, FileMode mode); diff -r 40ffd0e8676a -r ed383e7a6753 OrthancServer/Scheduler/ServerScheduler.cpp --- a/OrthancServer/Scheduler/ServerScheduler.cpp Sat Jul 02 15:09:03 2016 +0200 +++ b/OrthancServer/Scheduler/ServerScheduler.cpp Mon Jul 04 15:50:11 2016 +0200 @@ -192,6 +192,11 @@ ServerScheduler::ServerScheduler(unsigned int maxJobs) : availableJob_(maxJobs) { + if (maxJobs == 0) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + finish_ = false; worker_ = boost::thread(Worker, this); } diff -r 40ffd0e8676a -r ed383e7a6753 Resources/CMake/BoostConfiguration.cmake --- a/Resources/CMake/BoostConfiguration.cmake Sat Jul 02 15:09:03 2016 +0200 +++ b/Resources/CMake/BoostConfiguration.cmake Mon Jul 04 15:50:11 2016 +0200 @@ -57,6 +57,7 @@ ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR ${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl") list(APPEND BOOST_SOURCES + ${BOOST_SOURCES_DIR}/libs/atomic/src/lockpool.cpp ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp ) @@ -109,14 +110,27 @@ list(APPEND BOOST_SOURCES ${BOOST_REGEX_SOURCES} ${BOOST_SOURCES_DIR}/libs/date_time/src/gregorian/greg_month.cpp - ${BOOST_FILESYSTEM_SOURCES_DIR}/codecvt_error_category.cpp - ${BOOST_FILESYSTEM_SOURCES_DIR}/operations.cpp - ${BOOST_FILESYSTEM_SOURCES_DIR}/path.cpp - ${BOOST_FILESYSTEM_SOURCES_DIR}/path_traits.cpp ${BOOST_SOURCES_DIR}/libs/locale/src/encoding/codepage.cpp ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp ) + if (${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl") + # boost::filesystem is not available on PNaCl + add_definitions( + -DBOOST_HAS_FILESYSTEM_V3=0 + -D__INTEGRITY=1 + -DORTHANC_SANDBOXED=1 + ) + else() + add_definitions(-DBOOST_HAS_FILESYSTEM_V3=1) + list(APPEND BOOST_SOURCES + ${BOOST_FILESYSTEM_SOURCES_DIR}/codecvt_error_category.cpp + ${BOOST_FILESYSTEM_SOURCES_DIR}/operations.cpp + ${BOOST_FILESYSTEM_SOURCES_DIR}/path.cpp + ${BOOST_FILESYSTEM_SOURCES_DIR}/path_traits.cpp + ) + endif() + if (USE_BOOST_LOCALE_BACKENDS) if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR @@ -178,7 +192,6 @@ -DBOOST_SYSTEM_NO_LIB -DBOOST_LOCALE_NO_LIB -DBOOST_HAS_LOCALE=1 - -DBOOST_HAS_FILESYSTEM_V3=1 ) if (CMAKE_COMPILER_IS_GNUCXX)