core expr eval: fix script functions failure check
authorAndrei Pelinescu-Onciul <andrei@iptel.org>
Mon, 4 May 2009 08:41:07 +0000 (10:41 +0200)
committerAndrei Pelinescu-Onciul <andrei@iptel.org>
Mon, 4 May 2009 08:41:07 +0000 (10:41 +0200)
script/module functions integer/boolean evaluation did not respect
the module return convention (>0 success, <0 failure).

Reported-by: Daniel-Constantin Mierla <miconda@gmail.com>
rvalue.c

index 897fb4d..f75c6e9 100644 (file)
--- a/rvalue.c
+++ b/rvalue.c
@@ -693,8 +693,8 @@ int rval_get_int(struct run_act_ctx* h, struct sip_msg* msg,
                        break;
                case RV_ACTION_ST:
                        if (rv->v.action)
-                               *i=run_actions(h, rv->v.action, msg);
-                       else 
+                               *i=(run_actions(h, rv->v.action, msg)>0);
+                       else
                                *i=0;
                        break;
                case RV_SEL:
@@ -796,8 +796,8 @@ int rval_get_tmp_str(struct run_act_ctx* h, struct sip_msg* msg,
                        break;
                case RV_ACTION_ST:
                        if (rv->v.action)
-                               i=run_actions(h, rv->v.action, msg);
-                       else 
+                               i=(run_actions(h, rv->v.action, msg)>0);
+                       else
                                i=0;
                        tmpv->s=int2str(i, &tmpv->len);
                        break;