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.

Reply via email to