Regarding rsslReadEx return code

Siril
Siril Newcomer
edited May 30 in ETA

Needed some help with using the ETA library to connect to servers. We were facing issues with connection reset by peer and as per lseg we were not consuming faster enough. I believe I found the issue in the code were we are not consuming from the library properly. However with the change am not seeing the behavior as explained in the ETA specification. We are currently using rsslReadEx instead of rsslRead (however I believe other than the exception of having two extra parameter they both are the same. Please correct me if wrong).

As per below snippet from document, I see we are always getting retCode as 1 and so our process is now stuck at processing the updates from rsslReadEx continuously (we never get this RSSl_RET_SUCCESS).

image.png

From our logs as you can see below rsslRet (=retcode above) is always 1 which doesn’t explain what rsslCode it is from rsslRetCodes.h file (I see enums for all except 1). And as you can see the bytesRead and bytesDecompressed are both 0s. So I believe this buffer length (returned from rsslReadEx) is the data from the rssl library buffers? So is it expected to continuously receive this value of 1 for rsslRet code? Appreciate your help with this. Thanks a lot.

image-6cde47981ae89-1304.png

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    edited May 30 Answer ✓

    @Siril

    Thank you for reaching out to us.

    The document indicates that if the return code is more than 0, this indicates that the rsslReadEx call was successful and there are remaining bytes in the input buffer. The I/O notification mechanism will not notify the user of these bytes. The function should be called again to ensure that the remaining bytes are processed.
    be updated.

    image.png

    Yes, the buffer length (returned from rsslReadEx) is the data from the RSSL library buffers. The contents are only valid until the next call to rsslReadEx.

    I think the buffers returned in the blue box are from the 5027 decompressed bytes. According to the output, this decompressed bytes (5027) contains 21 messages and the rsslReadEx returns a buffer that contains each message for each call.

    image.png

    You can refer to the Consumer example that demonstrates how to use this function.

Answers