slsReceiver bug fix affecting Jungfrau receivers as root (optlen size as int), but setting buffer size is uint32_t size. setting it to uint64_t

This commit is contained in:
2019-03-04 09:41:20 +01:00
parent 8939e23622
commit 08bd2378f4
11 changed files with 45 additions and 44 deletions

View File

@ -39,7 +39,7 @@ class Listener : private virtual slsDetectorDefs, public ThreadObject {
*/
Listener(int ind, detectorType dtype, Fifo* f, runStatus* s,
uint32_t* portno, char* e, uint64_t* nf, uint32_t* dr,
uint32_t* us, uint32_t* as, uint32_t* fpf,
uint64_t* us, uint64_t* as, uint32_t* fpf,
frameDiscardPolicy* fdp, bool* act, bool* depaden, bool* sm);
/**
@ -138,7 +138,7 @@ class Listener : private virtual slsDetectorDefs, public ThreadObject {
* @param s UDP socket buffer size to be set
* @return OK or FAIL of dummy socket creation
*/
int CreateDummySocketForUDPSocketBufferSize(uint32_t s);
int CreateDummySocketForUDPSocketBufferSize(uint64_t s);
/**
* Set hard coded (calculated but not from detector) row and column
@ -231,10 +231,10 @@ class Listener : private virtual slsDetectorDefs, public ThreadObject {
uint32_t* dynamicRange;
/** UDP Socket Buffer Size */
uint32_t* udpSocketBufferSize;
uint64_t* udpSocketBufferSize;
/** actual UDP Socket Buffer Size (double due to kernel bookkeeping) */
uint32_t* actualUDPSocketBufferSize;
uint64_t* actualUDPSocketBufferSize;
/** frames per file */
uint32_t* framesPerFile;

View File

@ -308,14 +308,14 @@ class slsReceiverImplementation: private virtual slsDetectorDefs {
* Get UDP Socket Buffer Size
* @return UDP Socket Buffer Size
*/
uint32_t getUDPSocketBufferSize() const;
uint64_t getUDPSocketBufferSize() const;
/** (not saved in client shared memory)
* Get actual UDP Socket Buffer Size
* @return actual UDP Socket Buffer Size
*/
uint32_t getActualUDPSocketBufferSize() const;
uint64_t getActualUDPSocketBufferSize() const;
/*************************************************************************
* Setters ***************************************************************
@ -438,7 +438,7 @@ class slsReceiverImplementation: private virtual slsDetectorDefs {
* @param s UDP Socket Buffer Size
* @return OK or FAIL if dummy socket could be created
*/
int setUDPSocketBufferSize(const uint32_t s);
int setUDPSocketBufferSize(const uint64_t s);
//***acquisition parameters***
@ -805,9 +805,9 @@ private:
/** Server UDP Port Number*/
uint32_t udpPortNum[MAX_NUMBER_OF_LISTENING_THREADS];
/** udp socket buffer size */
uint32_t udpSocketBufferSize;
uint64_t udpSocketBufferSize;
/** actual UDP Socket Buffer Size (halved due to kernel bookkeeping) */
uint32_t actualUDPSocketBufferSize;
uint64_t actualUDPSocketBufferSize;
//***file parameters***
/** File format */

View File

@ -20,7 +20,7 @@ const std::string Listener::TypeName = "Listener";
Listener::Listener(int ind, detectorType dtype, Fifo* f, runStatus* s,
uint32_t* portno, char* e, uint64_t* nf, uint32_t* dr,
uint32_t* us, uint32_t* as, uint32_t* fpf,
uint64_t* us, uint64_t* as, uint32_t* fpf,
frameDiscardPolicy* fdp, bool* act, bool* depaden, bool* sm) :
ThreadObject(ind),
runningFlag(0),
@ -242,7 +242,7 @@ void Listener::ShutDownUDPSocket() {
}
int Listener::CreateDummySocketForUDPSocketBufferSize(uint32_t s) {
int Listener::CreateDummySocketForUDPSocketBufferSize(uint64_t s) {
FILE_LOG(logINFO) << "Testing UDP Socket Buffer size with test port " << *udpPortNumber;
if (!(*activated)) {
@ -250,7 +250,7 @@ int Listener::CreateDummySocketForUDPSocketBufferSize(uint32_t s) {
return OK;
}
uint32_t temp = *udpSocketBufferSize;
uint64_t temp = *udpSocketBufferSize;
*udpSocketBufferSize = s;
//if eth is mistaken with ip address

View File

@ -373,12 +373,12 @@ std::string slsReceiverImplementation::getAdditionalJsonHeader() const{
return std::string(additionalJsonHeader);
}
uint32_t slsReceiverImplementation::getUDPSocketBufferSize() const {
uint64_t slsReceiverImplementation::getUDPSocketBufferSize() const {
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
return udpSocketBufferSize;
}
uint32_t slsReceiverImplementation::getActualUDPSocketBufferSize() const {
uint64_t slsReceiverImplementation::getActualUDPSocketBufferSize() const {
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
return actualUDPSocketBufferSize;
}
@ -607,7 +607,7 @@ void slsReceiverImplementation::setEthernetInterface(const char* c) {
FILE_LOG(logINFO) << "Ethernet Interface: " << eth;
}
int slsReceiverImplementation::setUDPSocketBufferSize(const uint32_t s) {
int slsReceiverImplementation::setUDPSocketBufferSize(const uint64_t s) {
if (listener.size())
return listener[0]->CreateDummySocketForUDPSocketBufferSize(s);
return FAIL;

View File

@ -1726,8 +1726,8 @@ int slsReceiverTCPIPInterface::get_additional_json_header() {
int slsReceiverTCPIPInterface::set_udp_socket_buffer_size() {
ret = OK;
memset(mess, 0, sizeof(mess));
int index = -1;
int retval = -1;
uint64_t index = -1;
uint64_t retval = -1;
// get args, return if socket crashed, ret is fail if receiver is not null
if (interface->Server_ReceiveArg(ret, mess, &index, sizeof(index), true, receiver) == FAIL)
@ -1760,7 +1760,7 @@ int slsReceiverTCPIPInterface::set_udp_socket_buffer_size() {
int slsReceiverTCPIPInterface::get_real_udp_socket_buffer_size(){
ret = OK;
memset(mess, 0, sizeof(mess));
int retval = -1;
uint64_t retval = -1;
// no arg, check receiver is null
interface->Server_ReceiveArg(ret, mess, nullptr, 0, true, receiver);