Mercurial > hg > orthanc
comparison Core/DicomNetworking/Internals/StoreScp.cpp @ 3704:58f92b1c8061
Fix issue #167 (Job can't be cancelled - Handling of timeouts after established association)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Feb 2020 11:25:57 +0100 |
parents | 94f4a18a79cc |
children |
comparison
equal
deleted
inserted
replaced
3702:643b5ee86f92 | 3704:58f92b1c8061 |
---|---|
249 */ | 249 */ |
250 OFCondition Internals::storeScp(T_ASC_Association * assoc, | 250 OFCondition Internals::storeScp(T_ASC_Association * assoc, |
251 T_DIMSE_Message * msg, | 251 T_DIMSE_Message * msg, |
252 T_ASC_PresentationContextID presID, | 252 T_ASC_PresentationContextID presID, |
253 IStoreRequestHandler& handler, | 253 IStoreRequestHandler& handler, |
254 const std::string& remoteIp) | 254 const std::string& remoteIp, |
255 int timeout) | |
255 { | 256 { |
256 OFCondition cond = EC_Normal; | 257 OFCondition cond = EC_Normal; |
257 T_DIMSE_C_StoreRQ *req; | 258 T_DIMSE_C_StoreRQ *req; |
258 | 259 |
259 // assign the actual information of the C-STORE-RQ command to a local variable | 260 // assign the actual information of the C-STORE-RQ command to a local variable |
292 // define an address where the information which will be received over the network will be stored | 293 // define an address where the information which will be received over the network will be stored |
293 DcmDataset *dset = dcmff.getDataset(); | 294 DcmDataset *dset = dcmff.getDataset(); |
294 | 295 |
295 cond = DIMSE_storeProvider(assoc, presID, req, NULL, /*opt_useMetaheader*/OFFalse, &dset, | 296 cond = DIMSE_storeProvider(assoc, presID, req, NULL, /*opt_useMetaheader*/OFFalse, &dset, |
296 storeScpCallback, &data, | 297 storeScpCallback, &data, |
297 /*opt_blockMode*/ DIMSE_BLOCKING, | 298 /*opt_blockMode*/ (timeout ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), |
298 /*opt_dimse_timeout*/ 0); | 299 /*opt_dimse_timeout*/ timeout); |
299 | 300 |
300 // if some error occured, dump corresponding information and remove the outfile if necessary | 301 // if some error occured, dump corresponding information and remove the outfile if necessary |
301 if (cond.bad()) | 302 if (cond.bad()) |
302 { | 303 { |
303 OFString temp_str; | 304 OFString temp_str; |