On Thu, Dec 09, 2010 at 10:35:15AM +0000, Dietmar Maurer wrote:
Hi all,
Can we move this to the libqb mailing list? https://fedorahosted.org/mailman/listinfo/quarterback-devel
I am playing around with libqb writing my first test server. Normal operation work quite good so far. I just wonder how to handle errors on the server side, especially in qb_ipcs_msg_process_fn:
typedef int32_t (*qb_ipcs_msg_process_fn) (qb_ipcs_connection_t *c, void *data, size_t size);
I thought the return value is used to indicate errors, but if I simply return a negative number my client hang forever.
Currently if you return anything but -ENOBUFS or -EAGAIN the server will remove the socket from the poll loop.
To return an error to the client use qb_ipcs_response_send(). like: { struct qb_ipc_response_header response;
response.size = sizeof(struct qb_ipc_response_header); response.id = MY_MSG_ID; response.error = MY_ERROR; qb_ipcs_response_send(c, &response, sizeof(response)); }
Regards -Angus
So I always need to send something back? What is the purpose of the return value then?
On the client side there seems to be no timeout in qb_ipcc_sendv_recv()?
- Dietmar
Openais mailing list Openais@lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/openais