| 511 | } |
| 512 | |
| 513 | void xmlrpc_process(int rank) |
| 514 | { |
| 515 | enum evi_status status; |
| 516 | |
| 517 | /* init blocking reader */ |
| 518 | xmlrpc_init_reader(); |
| 519 | xmlrpc_init_send_buf(); |
| 520 | xmlrpc_send_t * xmlrpcs; |
| 521 | |
| 522 | /* suppress the E_CORE_LOG event for new logs while handling |
| 523 | * the event itself */ |
| 524 | suppress_proc_log_event(); |
| 525 | |
| 526 | /* waiting for commands */ |
| 527 | for (;;) { |
| 528 | xmlrpcs = xmlrpc_receive(); |
| 529 | if (!xmlrpcs) { |
| 530 | LM_ERR("invalid receive sock info\n"); |
| 531 | goto end; |
| 532 | } |
| 533 | |
| 534 | /* send msg */ |
| 535 | if (xmlrpc_sendmsg(xmlrpcs)) { |
| 536 | LM_ERR("cannot send message\n"); |
| 537 | status = EVI_STATUS_FAIL; |
| 538 | } else |
| 539 | status = EVI_STATUS_SUCCESS; |
| 540 | |
| 541 | if (xmlrpcs->async_ctx.status_cb) |
| 542 | xmlrpc_dispatch_status_cb(&xmlrpcs->async_ctx, status); |
| 543 | end: |
| 544 | if (xmlrpcs) |
| 545 | shm_free(xmlrpcs); |
| 546 | } |
| 547 | |
| 548 | reset_proc_log_event(); |
| 549 | } |
nothing calls this directly
no test coverage detected