diff Core/DicomNetworking/Internals/CommandDispatcher.cpp @ 3706:bd34b6ac5c08 storage-commitment

timeouts in storage commitment SCU and SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 27 Feb 2020 12:24:29 +0100
parents d8b214a46b91
children 56f2397f027a
line wrap: on
line diff
--- a/Core/DicomNetworking/Internals/CommandDispatcher.cpp	Thu Feb 27 12:07:19 2020 +0100
+++ b/Core/DicomNetworking/Internals/CommandDispatcher.cpp	Thu Feb 27 12:24:29 2020 +0100
@@ -891,14 +891,15 @@
 
 
     static DcmDataset* ReadDataset(T_ASC_Association* assoc,
-                                   const char* errorMessage)
+                                   const char* errorMessage,
+                                   int timeout)
     {
       DcmDataset *tmp = NULL;
       T_ASC_PresentationContextID presIdData;
     
       OFCondition cond = DIMSE_receiveDataSetInMemory(
-        assoc, /*opt_blockMode*/ DIMSE_BLOCKING,
-        /*opt_dimse_timeout*/ 0, &presIdData, &tmp, NULL, NULL);
+        assoc, (timeout ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), timeout,
+        &presIdData, &tmp, NULL, NULL);
       if (!cond.good() ||
           tmp == NULL)
       {
@@ -1027,7 +1028,7 @@
        **/
       
       std::auto_ptr<DcmDataset> dataset(
-        ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP"));
+        ReadDataset(assoc_, "Cannot read the dataset in N-ACTION SCP", associationTimeout_));
 
       std::string transactionUid = ReadString(*dataset, DCM_TransactionUID);
 
@@ -1150,7 +1151,7 @@
        **/
       
       std::auto_ptr<DcmDataset> dataset(
-        ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP"));
+        ReadDataset(assoc_, "Cannot read the dataset in N-EVENT-REPORT SCP", associationTimeout_));
 
       std::string transactionUid = ReadString(*dataset, DCM_TransactionUID);