| 278 | } |
| 279 | |
| 280 | int ipc_recv_sync_reply(void **param) |
| 281 | { |
| 282 | void *ret; |
| 283 | int n; |
| 284 | |
| 285 | again: |
| 286 | n = read(IPC_FD_SYNC_READ_SELF, &ret, sizeof(ret)); |
| 287 | if (n < sizeof(*ret)) { |
| 288 | if (errno == EINTR) |
| 289 | goto again; |
| 290 | /* if we got here, it's definitely an error, because the socket is |
| 291 | * blocking, so we can't read partial messages */ |
| 292 | LM_ERR("read failed:[%d] %s\n", errno, strerror(errno)); |
| 293 | return -1; |
| 294 | } |
| 295 | *param = ret; |
| 296 | return 0; |
| 297 | } |
| 298 | |
| 299 | int ipc_running_rpc_job; |
| 300 | void ipc_handle_job(int fd) |
no outgoing calls
no test coverage detected