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) {
case CLIENT_STREAMING_PORT:
case CLIENT_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver();
enableDataStreamingFromReceiver(0);
enableDataStreamingToClient(0);
prev_streaming = enableDataStreamingToClient();
if (enableDataStreamingFromReceiver(-1)) enableDataStreamingFromReceiver(0);
if (enableDataStreamingToClient(-1)) enableDataStreamingToClient(0);
break;
case RECEIVER_STREAMING_PORT:
case RECEIVER_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver();
enableDataStreamingFromReceiver(0);
enableDataStreamingToClient(0);
if (enableDataStreamingFromReceiver(-1)) enableDataStreamingFromReceiver(0);
if (enableDataStreamingToClient(-1)) enableDataStreamingToClient(0);
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){
#ifdef VERBOSE
@ -6453,12 +6460,9 @@ string slsDetector::setReceiverStreamingIP(string sourceIP) {
ret=thisReceiver->sendString(fnum,retval,arg);
disconnectData();
}
if(ret!=FAIL) {
memset(thisDetector->receiver_zmqip, 0, MAX_STR_LENGTH);
strcpy(thisDetector->receiver_zmqip, retval);
// if zmqip is empty, update it
if (! strlen(thisDetector->zmqip))
strcpy(thisDetector->zmqip, retval);
if(ret==FAIL) {
setErrorMask((getErrorMask())|(COULDNOT_SET_NETWORK_PARAMETER));
std::cout << "Warning: Could not set rx_zmqip" << std::endl;
}
if(ret==FORCE_UPDATE)
updateReceiver();