function triggered from reactor in order to continue the processing */
| 399 | /* function triggered from reactor in order to continue the processing |
| 400 | */ |
| 401 | int t_resume_async(int fd, void *param, int was_timeout) |
| 402 | { |
| 403 | async_tm_ctx *ctx = (async_tm_ctx *)param; |
| 404 | int rc; |
| 405 | |
| 406 | if (current_processing_ctx) { |
| 407 | LM_CRIT("BUG - a context is already set (%p), overwriting it...\n", |
| 408 | current_processing_ctx); |
| 409 | set_global_context(NULL); |
| 410 | } |
| 411 | |
| 412 | profiling_proc_enter( LEVEL_SIP, |
| 413 | sss_merge256( ctx->async.resume_f_name, " -> ", |
| 414 | ctx->resume_route->name.s), |
| 415 | 0 ); |
| 416 | |
| 417 | /* for now we only support async in REQUEST and ONREPLY routes, |
| 418 | * dispatch to the correct resume function */ |
| 419 | if (ctx->reply) { |
| 420 | rc = t_resume_async_reply(fd,param,was_timeout); |
| 421 | } else |
| 422 | rc = t_resume_async_request(fd,param,was_timeout); |
| 423 | |
| 424 | profiling_proc_exit( LEVEL_SIP, "async-cfg resume handler", rc ); |
| 425 | |
| 426 | return rc; |
| 427 | } |
| 428 | |
| 429 | |
| 430 | int t_handle_async(struct sip_msg *msg, struct action* a, |
nothing calls this directly
no test coverage detected