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.
I can't reproduce that behavior. My server continues to work, no matter what I return.
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)); }
OK
On the client side there seems to be no timeout in qb_ipcc_sendv_recv()?
If the server misbehaves, there should be a timeout on the client? Or do I need to implement that myself?
- Dietmar