copy zmq ip even if receiver not online, else it is lost

This commit is contained in:
Dhanya Maliakal 2017-11-23 17:18:40 +01:00
commit 935fecefde
2 changed files with 15 additions and 11 deletions

View File

@ -3734,15 +3734,15 @@ string multiSlsDetector::setNetworkParameter(networkParameter p, string s){
switch (p) { switch (p) {
case CLIENT_STREAMING_PORT: case CLIENT_STREAMING_PORT:
case CLIENT_STREAMING_SRC_IP: case CLIENT_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver(); prev_streaming = enableDataStreamingToClient();
enableDataStreamingFromReceiver(0); if (enableDataStreamingFromReceiver(-1)) enableDataStreamingFromReceiver(0);
enableDataStreamingToClient(0); if (enableDataStreamingToClient(-1)) enableDataStreamingToClient(0);
break; break;
case RECEIVER_STREAMING_PORT: case RECEIVER_STREAMING_PORT:
case RECEIVER_STREAMING_SRC_IP: case RECEIVER_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver(); prev_streaming = enableDataStreamingFromReceiver();
enableDataStreamingFromReceiver(0); if (enableDataStreamingFromReceiver(-1)) enableDataStreamingFromReceiver(0);
enableDataStreamingToClient(0); if (enableDataStreamingToClient(-1)) enableDataStreamingToClient(0);
break; break;
default: break; default: break;
} }

View File

@ -6444,6 +6444,13 @@ string slsDetector::setReceiverStreamingIP(string sourceIP) {
} }
} }
// set it anyway, else it is lost
memset(thisDetector->receiver_zmqip, 0, MAX_STR_LENGTH);
strcpy(thisDetector->receiver_zmqip, arg);
// if zmqip is empty, update it
if (! strlen(thisDetector->zmqip))
strcpy(thisDetector->zmqip, retval);
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
#ifdef VERBOSE #ifdef VERBOSE
@ -6453,12 +6460,9 @@ string slsDetector::setReceiverStreamingIP(string sourceIP) {
ret=thisReceiver->sendString(fnum,retval,arg); ret=thisReceiver->sendString(fnum,retval,arg);
disconnectData(); disconnectData();
} }
if(ret!=FAIL) { if(ret==FAIL) {
memset(thisDetector->receiver_zmqip, 0, MAX_STR_LENGTH); setErrorMask((getErrorMask())|(COULDNOT_SET_NETWORK_PARAMETER));
strcpy(thisDetector->receiver_zmqip, retval); std::cout << "Warning: Could not set rx_zmqip" << std::endl;
// if zmqip is empty, update it
if (! strlen(thisDetector->zmqip))
strcpy(thisDetector->zmqip, retval);
} }
if(ret==FORCE_UPDATE) if(ret==FORCE_UPDATE)
updateReceiver(); updateReceiver();