Skip to content

Commit 82c2ca2

Browse files
committed
Allow processing of incoming queries (GET_IMGMETA, GET_IMG, etc.) with no message body
1 parent eb7ab6a commit 82c2ca2

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

src/PlusServer/vtkPlusCommandProcessor.cxx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,6 @@ PlusStatus vtkPlusCommandProcessor::QueueCommandResponse(PlusStatus status, cons
331331
//------------------------------------------------------------------------------
332332
PlusStatus vtkPlusCommandProcessor::QueueGetImageMetaData(unsigned int clientId, const std::string& deviceName)
333333
{
334-
335334
vtkSmartPointer<vtkPlusGetImageCommand> cmdGetImage = vtkSmartPointer<vtkPlusGetImageCommand>::New();
336335
cmdGetImage->SetCommandProcessor(this);
337336
cmdGetImage->SetClientId(clientId);

src/PlusServer/vtkPlusOpenIGTLinkServer.cxx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
603603
clientSocket->Receive(clientInfoMsg->GetBufferBodyPointer(), clientInfoMsg->GetBufferBodySize());
604604

605605
int c = clientInfoMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
606-
if (c & igtl::MessageHeader::UNPACK_BODY)
606+
if (c & igtl::MessageHeader::UNPACK_BODY || clientInfoMsg->GetBufferBodySize() == 0)
607607
{
608608
// Message received from client, need to lock to modify client info
609609
PlusLockGuard<vtkPlusRecursiveCriticalSection> igtlClientsMutexGuardedLock(self->IgtlClientsMutex);
@@ -631,7 +631,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
631631

632632
// We are receiving old style commands, handle it
633633
int c = stringMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
634-
if (c & igtl::MessageHeader::UNPACK_BODY)
634+
if (c & igtl::MessageHeader::UNPACK_BODY || stringMsg->GetBufferBodySize() == 0)
635635
{
636636
std::string deviceName(headerMsg->GetDeviceName());
637637
if (deviceName.empty())
@@ -690,7 +690,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
690690
clientSocket->Receive(commandMsg->GetBufferBodyPointer(), commandMsg->GetBufferBodySize());
691691

692692
int c = commandMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
693-
if (c & igtl::MessageHeader::UNPACK_BODY)
693+
if (c & igtl::MessageHeader::UNPACK_BODY || commandMsg->GetBufferBodySize() == 0)
694694
{
695695
std::string deviceName(headerMsg->GetDeviceName());
696696

@@ -731,7 +731,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
731731
clientSocket->Receive(startTracking->GetBufferBodyPointer(), startTracking->GetBufferBodySize());
732732

733733
int c = startTracking->Unpack(self->IgtlMessageCrcCheckEnabled);
734-
if (c & igtl::MessageHeader::UNPACK_BODY)
734+
if (c & igtl::MessageHeader::UNPACK_BODY || startTracking->GetBufferBodySize() == 0)
735735
{
736736
client->ClientInfo.SetTDATAResolution(startTracking->GetResolution());
737737
client->ClientInfo.SetTDATARequested(true);
@@ -772,7 +772,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
772772
clientSocket->Receive(polyDataMessage->GetBufferBodyPointer(), polyDataMessage->GetBufferBodySize());
773773

774774
int c = polyDataMessage->Unpack(self->IgtlMessageCrcCheckEnabled);
775-
if (c & igtl::MessageHeader::UNPACK_BODY)
775+
if (c & igtl::MessageHeader::UNPACK_BODY || polyDataMessage->GetBufferBodySize() == 0)
776776
{
777777
std::string fileName;
778778
// Check metadata for requisite parameters, if absent, check deviceName
@@ -850,7 +850,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
850850
clientSocket->Receive(getImageMetaMsg->GetBufferBodyPointer(), getImageMetaMsg->GetBufferBodySize());
851851

852852
int c = getImageMetaMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
853-
if (c & igtl::MessageHeader::UNPACK_BODY)
853+
if (c & igtl::MessageHeader::UNPACK_BODY || getImageMetaMsg->GetBufferBodySize() == 0)
854854
{
855855
// Image meta message
856856
std::string deviceName("");
@@ -875,7 +875,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
875875
clientSocket->Receive(getImageMsg->GetBufferBodyPointer(), getImageMsg->GetBufferBodySize());
876876

877877
int c = getImageMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
878-
if (c & igtl::MessageHeader::UNPACK_BODY)
878+
if (c & igtl::MessageHeader::UNPACK_BODY || getImageMsg->GetBufferBodySize() == 0)
879879
{
880880
std::string deviceName("");
881881
if (headerMsg->GetDeviceName() != NULL)
@@ -905,7 +905,7 @@ void* vtkPlusOpenIGTLinkServer::DataReceiverThread(vtkMultiThreader::ThreadInfo*
905905
clientSocket->Receive(getPointMsg->GetBufferBodyPointer(), getPointMsg->GetBufferBodySize());
906906

907907
int c = getPointMsg->Unpack(self->IgtlMessageCrcCheckEnabled);
908-
if (c & igtl::MessageHeader::UNPACK_BODY)
908+
if (c & igtl::MessageHeader::UNPACK_BODY || getPointMsg->GetBufferBodySize() == 0)
909909
{
910910
std::string fileName;
911911
if (!getPointMsg->GetMetaDataElement("Filename", fileName))

0 commit comments

Comments
 (0)