Is there a way to obtain the amount of data available to be read?

I'm working with a system that operates in non-blocking mode using epoll. When an EPOLLIN event is received the aim is to read the data. For the non-SSL case, the amount of data can be obtained using ioctl FIONREAD. This is used to malloc a suitable sized buffer, followed by read the data into the buffer.

How should the SSL version of our code work? At present it is using the sum of the number obtained from ioctl FIONREAD (which seems suspect when SSL is in use and appears to be always too large) and the number from ssl_pending (which seems to be zero). The buffer then has to be truncated.

Can this approach work? Could it be improved? Or is there some fundamental problem with operating in this way?


_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to