Module: sip-router
Branch: master
Commit: 4294b7bf3b67f1405869e865c171e268e60d5ee7
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=4294b7b…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Sun Sep 15 22:35:38 2013 +0200
core: store current executed cfg action in a global variable
- can be retrieved by module to access name of config file and the line
---
action.c | 10 ++++++++++
action.h | 1 +
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/action.c b/action.c
index d9a7f2c..72f4fe9 100644
--- a/action.c
+++ b/action.c
@@ -111,6 +111,14 @@
int _last_returned_code = 0;
struct onsend_info* p_onsend=0; /* onsend route send info */
+/* current action executed from config file */
+static cfg_action_t *_cfg_crt_action = 0;
+
+/* return currect action executed from config file */
+cfg_action_t *get_cfg_crt_action(void)
+{
+ return _cfg_crt_action;
+}
/* handle the exit code of a module function call.
@@ -1572,7 +1580,9 @@ int run_actions(struct run_act_ctx* h, struct action* a, struct
sip_msg* msg)
for (t=a; t!=0; t=t->next){
if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0))
ms = TICKS_TO_MS(get_ticks_raw());
+ _cfg_crt_action = t;
ret=do_action(h, t, msg);
+ _cfg_crt_action = 0;
if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0)) {
ms = TICKS_TO_MS(get_ticks_raw()) - ms;
if(ms >= cfg_get(core, core_cfg, latency_limit_action)) {
diff --git a/action.h b/action.h
index a2a5395..d715a65 100644
--- a/action.h
+++ b/action.h
@@ -68,6 +68,7 @@ int run_actions(struct run_act_ctx* c, struct action* a, struct sip_msg*
msg);
int run_top_route(struct action* a, sip_msg_t* msg, struct run_act_ctx* c);
+cfg_action_t *get_cfg_crt_action(void);
#ifdef USE_LONGJMP
int run_actions_safe(struct run_act_ctx* c, struct action* a,