Question for IO:
citadel_ipc.c, line 2666:
if (errval == SSL_ERROR_ZERO_RETURN ||
errval == SSL_ERROR_SSL) {
serv_read(ipc, &buf[len], bytes - len);
return;
}
My client barfs on this quite frequently -- predominantly when it's
been idle for a long time. I don't know what's causing one of those
error codes to happen, but the result is that serv_read() recurses into
itself until it blows the stack.
What was the idea here? Is there a way to recover from this condition?
For now I've just commented out that block, so the client will at least
crash with a descriptive error instead of blowing the stack and exiting
on signal 11. Any insight you might be able to provide would be
helpful.