kamailio.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
List overview
Download
sr-dev
August 2018
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
sr-dev@lists.kamailio.org
22 participants
281 discussions
Start a n
N
ew thread
git:master:89c65fa3: app_sqlang: implemented KSR.pv.gete(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: 89c65fa3210ab0682d4cb699d732ac1653ba0221 URL:
https://github.com/kamailio/kamailio/commit/89c65fa3210ab0682d4cb699d732ac1…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-27T10:47:34+02:00 app_sqlang: implemented KSR.pv.gete(...) --- Modified: src/modules/app_sqlang/app_sqlang_api.c --- Diff:
https://github.com/kamailio/kamailio/commit/89c65fa3210ab0682d4cb699d732ac1…
Patch:
https://github.com/kamailio/kamailio/commit/89c65fa3210ab0682d4cb699d732ac1…
--- diff --git a/src/modules/app_sqlang/app_sqlang_api.c b/src/modules/app_sqlang/app_sqlang_api.c index 0d4672c32b..1d4f60abd6 100644 --- a/src/modules/app_sqlang/app_sqlang_api.c +++ b/src/modules/app_sqlang/app_sqlang_api.c @@ -277,9 +277,12 @@ static int sqlang_gettype(HSQUIRRELVM J, int idx) */ static SQInteger sqlang_sr_get_str_null(HSQUIRRELVM J, int rmode) { - if(rmode) { + if(rmode==1) { sqlang_pushlstring(J, "<<null>>", 8); return 1; + } else if(rmode==2) { + sqlang_pushlstring(J, "", 0); + return 1; } else { return 0; } @@ -347,6 +350,14 @@ static SQInteger sqlang_sr_pv_getw(HSQUIRRELVM J) return sqlang_sr_pv_get_mode(J, 1); } +/** + * + */ +static SQInteger sqlang_sr_pv_gete(HSQUIRRELVM J) +{ + return sqlang_sr_pv_get_mode(J, 2); +} + /** * */ @@ -538,6 +549,7 @@ static SQInteger sqlang_sr_pv_is_null (HSQUIRRELVM J) const SQRegFunction _sr_kemi_pv_J_Map[] = { { "get", sqlang_sr_pv_get, 2 /* 1 args */, NULL }, { "getw", sqlang_sr_pv_getw, 2 /* 1 args */, NULL }, + { "gete", sqlang_sr_pv_gete, 2 /* 1 args */, NULL }, { "seti", sqlang_sr_pv_seti, 3 /* 2 args */, NULL }, { "sets", sqlang_sr_pv_sets, 4 /* 2 args */, NULL }, { "unset", sqlang_sr_pv_unset, 2 /* 1 args */, NULL },
6 years, 5 months
1
0
0
0
git:master:de5561dd: app_ruby: implemented KSR.pv.gete(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: de5561ddbf821348b76b6e2ed044f10a0cec017a URL:
https://github.com/kamailio/kamailio/commit/de5561ddbf821348b76b6e2ed044f10…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-27T10:43:39+02:00 app_ruby: implemented KSR.pv.gete(...) --- Modified: src/modules/app_ruby/app_ruby_api.c --- Diff:
https://github.com/kamailio/kamailio/commit/de5561ddbf821348b76b6e2ed044f10…
Patch:
https://github.com/kamailio/kamailio/commit/de5561ddbf821348b76b6e2ed044f10…
--- diff --git a/src/modules/app_ruby/app_ruby_api.c b/src/modules/app_ruby/app_ruby_api.c index 965c5e3c84..06d8cf2ce7 100644 --- a/src/modules/app_ruby/app_ruby_api.c +++ b/src/modules/app_ruby/app_ruby_api.c @@ -245,10 +245,12 @@ int sr_kemi_ruby_return_int(sr_kemi_t *ket, int rc) */ static VALUE sr_kemi_ruby_return_none(int rmode) { - if(rmode==0) { - return Qnil; + if(rmode==1) { + return rb_str_new_cstr("<<null>>"); + } else if(rmode==2) { + return rb_str_new_cstr(""); } - return rb_str_new_cstr("<<null>>"); + return Qnil; } /** @@ -320,6 +322,14 @@ static VALUE app_ruby_pv_getw(int argc, VALUE* argv, VALUE self) return app_ruby_pv_get_mode(argc, argv, self, 1); } +/** + * + */ +static VALUE app_ruby_pv_gete(int argc, VALUE* argv, VALUE self) +{ + return app_ruby_pv_get_mode(argc, argv, self, 2); +} + /** * */ @@ -549,6 +559,7 @@ static VALUE app_ruby_pv_is_null(int argc, VALUE* argv, VALUE self) static ksr_ruby_export_t _sr_kemi_pv_R_Map[] = { {"PV", "get", app_ruby_pv_get}, {"PV", "getw", app_ruby_pv_getw}, + {"PV", "gete", app_ruby_pv_gete}, {"PV", "seti", app_ruby_pv_seti}, {"PV", "sets", app_ruby_pv_sets}, {"PV", "unset", app_ruby_pv_unset},
6 years, 5 months
1
0
0
0
git:master:7bd55ca7: ipops: exported KSR.ipops.is_in_subnet(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: 7bd55ca760a2b1aed8da431b61370c750742ff84 URL:
https://github.com/kamailio/kamailio/commit/7bd55ca760a2b1aed8da431b61370c7…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-26T10:37:38+02:00 ipops: exported KSR.ipops.is_in_subnet(...) - match the function name from kamailio.cfg - so far it was exported as KSR.ipops.ip_is_in_subnet(...) --- Modified: src/modules/ipops/ipops_mod.c --- Diff:
https://github.com/kamailio/kamailio/commit/7bd55ca760a2b1aed8da431b61370c7…
Patch:
https://github.com/kamailio/kamailio/commit/7bd55ca760a2b1aed8da431b61370c7…
--- diff --git a/src/modules/ipops/ipops_mod.c b/src/modules/ipops/ipops_mod.c index 262f4a8494..ac55df7906 100644 --- a/src/modules/ipops/ipops_mod.c +++ b/src/modules/ipops/ipops_mod.c @@ -1418,6 +1418,11 @@ static sr_kemi_t sr_kemi_ipops_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("ipops"), str_init("is_in_subnet"), + SR_KEMIP_INT, ki_ip_is_in_subnet, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, { str_init("ipops"), str_init("is_ip_rfc1918"), SR_KEMIP_INT, ki_is_ip_rfc1918, { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
6 years, 5 months
1
0
0
0
git:master:d92216eb: app_jsdt: implemented kemi KSR.pv.gete(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: d92216ebdb94c4a068437c083c9f1809ddfa8857 URL:
https://github.com/kamailio/kamailio/commit/d92216ebdb94c4a068437c083c9f180…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-26T09:53:03+02:00 app_jsdt: implemented kemi KSR.pv.gete(...) --- Modified: src/modules/app_jsdt/app_jsdt_api.c --- Diff:
https://github.com/kamailio/kamailio/commit/d92216ebdb94c4a068437c083c9f180…
Patch:
https://github.com/kamailio/kamailio/commit/d92216ebdb94c4a068437c083c9f180…
--- diff --git a/src/modules/app_jsdt/app_jsdt_api.c b/src/modules/app_jsdt/app_jsdt_api.c index 224d54bfe6..9b6dda8472 100644 --- a/src/modules/app_jsdt/app_jsdt_api.c +++ b/src/modules/app_jsdt/app_jsdt_api.c @@ -158,14 +158,16 @@ int sr_kemi_jsdt_return_int(duk_context *J, sr_kemi_t *ket, int rc) /** * */ -static int jsdt_sr_return_none(duk_context *J, int rmode) +static int jsdt_sr_return_pv_null(duk_context *J, int rmode) { - if(rmode) { + if(rmode==1) { duk_push_lstring(J, "<<null>>", 8); - return 1; + } else if(rmode==2) { + duk_push_lstring(J, "", 0); } else { - return 0; + duk_push_string(J, NULL); } + return 1; } /** @@ -183,32 +185,27 @@ static int jsdt_sr_pv_get_mode(duk_context *J, int rmode) pvn.s = (char*)duk_to_string(J, 0); if(pvn.s==NULL || env_J->msg==NULL) - return jsdt_sr_return_none(J, rmode); + return jsdt_sr_return_pv_null(J, rmode); pvn.len = strlen(pvn.s); LM_DBG("pv get: %s\n", pvn.s); pl = pv_locate_name(&pvn); if(pl != pvn.len) { LM_ERR("invalid pv [%s] (%d/%d)\n", pvn.s, pl, pvn.len); - return jsdt_sr_return_none(J, rmode); + return jsdt_sr_return_pv_null(J, rmode); } pvs = pv_cache_get(&pvn); if(pvs==NULL) { LM_ERR("cannot get pv spec for [%s]\n", pvn.s); - return jsdt_sr_return_none(J, rmode); + return jsdt_sr_return_pv_null(J, rmode); } memset(&val, 0, sizeof(pv_value_t)); if(pv_get_spec_value(env_J->msg, pvs, &val) != 0) { LM_ERR("unable to get pv value for [%s]\n", pvn.s); - return jsdt_sr_return_none(J, rmode); + return jsdt_sr_return_pv_null(J, rmode); } if(val.flags&PV_VAL_NULL) { - if(rmode) { - jsdt_sr_return_none(J, rmode); - } else { - duk_push_string(J, NULL); - return 1; - } + return jsdt_sr_return_pv_null(J, rmode); } if(val.flags&PV_TYPE_INT) { duk_push_int(J, val.ri); @@ -234,6 +231,14 @@ static int jsdt_sr_pv_getw(duk_context *J) return jsdt_sr_pv_get_mode(J, 1); } +/** + * + */ +static int jsdt_sr_pv_gete(duk_context *J) +{ + return jsdt_sr_pv_get_mode(J, 2); +} + /** * */ @@ -425,6 +430,7 @@ static int jsdt_sr_pv_is_null (duk_context *J) const duk_function_list_entry _sr_kemi_pv_J_Map[] = { { "get", jsdt_sr_pv_get, 1 /* 1 args */ }, { "getw", jsdt_sr_pv_getw, 1 /* 1 args */ }, + { "gete", jsdt_sr_pv_gete, 1 /* 1 args */ }, { "seti", jsdt_sr_pv_seti, 2 /* 2 args */ }, { "sets", jsdt_sr_pv_sets, 2 /* 2 args */ }, { "unset", jsdt_sr_pv_unset, 1 /* 1 args */ },
6 years, 5 months
1
0
0
0
git:master:a837f69a: app_python3: implemented KSR.pv.gete(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: a837f69aacc93c55f89a91bcbb0f1cfbe539ab7c URL:
https://github.com/kamailio/kamailio/commit/a837f69aacc93c55f89a91bcbb0f1cf…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-25T16:15:46+02:00 app_python3: implemented KSR.pv.gete(...) --- Modified: src/modules/app_python3/apy_kemi.c --- Diff:
https://github.com/kamailio/kamailio/commit/a837f69aacc93c55f89a91bcbb0f1cf…
Patch:
https://github.com/kamailio/kamailio/commit/a837f69aacc93c55f89a91bcbb0f1cf…
--- diff --git a/src/modules/app_python3/apy_kemi.c b/src/modules/app_python3/apy_kemi.c index 1e9fd23d48..cc7dfa6ccf 100755 --- a/src/modules/app_python3/apy_kemi.c +++ b/src/modules/app_python3/apy_kemi.c @@ -733,8 +733,10 @@ static sr_kemi_t _sr_apy_kemi_test[] = { */ PyObject *sr_apy_kemi_return_none_mode(int rmode) { - if(rmode) { + if(rmode==1) { return sr_apy_kemi_return_str(NULL, "<<null>>", 8); + } else if(rmode==2) { + return sr_apy_kemi_return_str(NULL, "", 0); } else { return sr_apy_kemi_return_none(); } @@ -818,6 +820,14 @@ static PyObject *sr_apy_kemi_f_pv_getw(PyObject *self, PyObject *args) return sr_apy_kemi_f_pv_get_mode(self, args, 1); } +/** + * + */ +static PyObject *sr_apy_kemi_f_pv_gete(PyObject *self, PyObject *args) +{ + return sr_apy_kemi_f_pv_get_mode(self, args, 2); +} + /** * */ @@ -1051,6 +1061,8 @@ static PyMethodDef _sr_apy_kemi_pv_Methods[] = { NAME " - pv get value"}, {"getw", sr_apy_kemi_f_pv_getw, METH_VARARGS, NAME " - pv get value or <<null>>"}, + {"gete", sr_apy_kemi_f_pv_gete, METH_VARARGS, + NAME " - pv get value or <<null>>"}, {"seti", sr_apy_kemi_f_pv_seti, METH_VARARGS, NAME " - pv set int value"}, {"sets", sr_apy_kemi_f_pv_sets, METH_VARARGS,
6 years, 5 months
1
0
0
0
git:master:63498d6c: app_python: implemented KSR.pv.gete(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: 63498d6c2180645562f495077d6b414b12b39820 URL:
https://github.com/kamailio/kamailio/commit/63498d6c2180645562f495077d6b414…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-25T16:13:25+02:00 app_python: implemented KSR.pv.gete(...) --- Modified: src/modules/app_python/apy_kemi.c --- Diff:
https://github.com/kamailio/kamailio/commit/63498d6c2180645562f495077d6b414…
Patch:
https://github.com/kamailio/kamailio/commit/63498d6c2180645562f495077d6b414…
--- diff --git a/src/modules/app_python/apy_kemi.c b/src/modules/app_python/apy_kemi.c index 7110912b92..b40c042777 100644 --- a/src/modules/app_python/apy_kemi.c +++ b/src/modules/app_python/apy_kemi.c @@ -710,8 +710,10 @@ static sr_kemi_t _sr_apy_kemi_test[] = { */ PyObject *sr_apy_kemi_return_none_mode(int rmode) { - if(rmode) { + if(rmode==1) { return sr_apy_kemi_return_str(NULL, "<<null>>", 8); + } else if(rmode==2) { + return sr_apy_kemi_return_str(NULL, "", 0); } else { return sr_apy_kemi_return_none(); } @@ -795,6 +797,14 @@ static PyObject *sr_apy_kemi_f_pv_getw(PyObject *self, PyObject *args) return sr_apy_kemi_f_pv_get_mode(self, args, 1); } +/** + * + */ +static PyObject *sr_apy_kemi_f_pv_gete(PyObject *self, PyObject *args) +{ + return sr_apy_kemi_f_pv_get_mode(self, args, 2); +} + /** * */ @@ -1028,6 +1038,8 @@ static PyMethodDef _sr_apy_kemi_pv_Methods[] = { NAME " - pv get value"}, {"getw", sr_apy_kemi_f_pv_getw, METH_VARARGS, NAME " - pv get value or <<null>>"}, + {"gete", sr_apy_kemi_f_pv_gete, METH_VARARGS, + NAME " - pv get value or empty string"}, {"seti", sr_apy_kemi_f_pv_seti, METH_VARARGS, NAME " - pv set int value"}, {"sets", sr_apy_kemi_f_pv_sets, METH_VARARGS,
6 years, 5 months
1
0
0
0
git:master:fd3656fb: app_lua: proper return 'nil' for $null values of pvs
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: fd3656fba3fe5dcb472836f935e2b4781b02251e URL:
https://github.com/kamailio/kamailio/commit/fd3656fba3fe5dcb472836f935e2b47…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-25T16:01:39+02:00 app_lua: proper return 'nil' for $null values of pvs --- Modified: src/modules/app_lua/app_lua_sr.c --- Diff:
https://github.com/kamailio/kamailio/commit/fd3656fba3fe5dcb472836f935e2b47…
Patch:
https://github.com/kamailio/kamailio/commit/fd3656fba3fe5dcb472836f935e2b47…
--- diff --git a/src/modules/app_lua/app_lua_sr.c b/src/modules/app_lua/app_lua_sr.c index 61c661852d..165f43bf06 100644 --- a/src/modules/app_lua/app_lua_sr.c +++ b/src/modules/app_lua/app_lua_sr.c @@ -892,13 +892,12 @@ static int lua_sr_pv_push_val_null (lua_State *L, int rmode) { if(rmode==1) { lua_pushlstring(L, "<<null>>", 8); - return 1; } else if(rmode==2) { lua_pushlstring(L, "", 0); - return 1; } else { - return 0; + lua_pushnil(L); } + return 1; } /**
6 years, 5 months
1
0
0
0
git:master:1576dc7c: app_lua: new KEMI pv functions KSR.pv.getvn(...) and KSR.pv.getvs(...)
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: 1576dc7cf504a3a30e83919222f1b8441e4207b5 URL:
https://github.com/kamailio/kamailio/commit/1576dc7cf504a3a30e83919222f1b84…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-24T11:43:53+02:00 app_lua: new KEMI pv functions KSR.pv.getvn(...) and KSR.pv.getvs(...) - KSR.pv.getvn(pv, ival) - return the value of pv if not null, otherwise return the int value ival - KSR.pv.getvs(pv, sval) - return the value of pv if not null, otherwise return the str value sval --- Modified: src/modules/app_lua/app_lua_sr.c --- Diff:
https://github.com/kamailio/kamailio/commit/1576dc7cf504a3a30e83919222f1b84…
Patch:
https://github.com/kamailio/kamailio/commit/1576dc7cf504a3a30e83919222f1b84…
--- diff --git a/src/modules/app_lua/app_lua_sr.c b/src/modules/app_lua/app_lua_sr.c index a57f94fcc7..61c661852d 100644 --- a/src/modules/app_lua/app_lua_sr.c +++ b/src/modules/app_lua/app_lua_sr.c @@ -901,6 +901,19 @@ static int lua_sr_pv_push_val_null (lua_State *L, int rmode) } } +/** + * + */ +static int lua_sr_pv_push_valx (lua_State *L, int rmode, int vi, str *vs) +{ + if(rmode==1) { + lua_pushlstring(L, vs->s, vs->len); + } else { + lua_pushinteger(L, vi); + } + return 1; +} + /** * */ @@ -971,6 +984,89 @@ static int lua_sr_pv_gete (lua_State *L) return lua_sr_pv_get_val(L, 2); } +/** + * + */ +static int lua_sr_pv_get_valx (lua_State *L, int rmode) +{ + str pvn; + pv_spec_t *pvs; + pv_value_t val; + sr_lua_env_t *env_L; + int pl; + int xival = 0; + str xsval = str_init(""); + + env_L = sr_lua_env_get(); + + if(lua_gettop(L)<2) { + LM_ERR("to few parameters [%d]\n", lua_gettop(L)); + return lua_sr_pv_push_val_null(L, 0); + } + if(rmode==1) { + if(!lua_isnumber(L, -1)) { + LM_ERR("invalid int parameter\n"); + return lua_sr_pv_push_val_null(L, 0); + } + xival = lua_tointeger(L, -1); + } else { + if(!lua_isstring(L, -1)) { + LM_ERR("invalid str parameter\n"); + return lua_sr_pv_push_val_null(L, 0); + } + xsval.s = (char*)lua_tostring(L, -1); + xsval.len = strlen(xsval.s); + } + + pvn.s = (char*)lua_tostring(L, -2); + if(pvn.s==NULL || env_L->msg==NULL) + return lua_sr_pv_push_valx(L, rmode, xival, &xsval); + + pvn.len = strlen(pvn.s); + LM_DBG("pv set: %s\n", pvn.s); + pl = pv_locate_name(&pvn); + if(pl != pvn.len) { + LM_ERR("invalid pv [%s] (%d/%d)\n", pvn.s, pl, pvn.len); + return lua_sr_pv_push_valx(L, rmode, xival, &xsval); + } + pvs = pv_cache_get(&pvn); + if(pvs==NULL) { + LM_ERR("cannot get pv spec for [%s]\n", pvn.s); + return lua_sr_pv_push_valx(L, rmode, xival, &xsval); + } + + memset(&val, 0, sizeof(pv_value_t)); + if(pv_get_spec_value(env_L->msg, pvs, &val) != 0) { + LM_ERR("unable to get pv value for [%s]\n", pvn.s); + return lua_sr_pv_push_valx(L, rmode, xival, &xsval); + } + if(val.flags&PV_VAL_NULL) { + return lua_sr_pv_push_valx(L, rmode, xival, &xsval); + } + if(val.flags&PV_TYPE_INT) { + lua_pushinteger(L, val.ri); + return 1; + } + lua_pushlstring(L, val.rs.s, val.rs.len); + return 1; +} + +/** + * + */ +static int lua_sr_pv_getvs (lua_State *L) +{ + return lua_sr_pv_get_valx(L, 0); +} + +/** + * + */ +static int lua_sr_pv_getvn (lua_State *L) +{ + return lua_sr_pv_get_valx(L, 1); +} + /** * */ @@ -1179,6 +1275,8 @@ static const luaL_Reg _sr_pv_Map [] = { {"get", lua_sr_pv_get}, {"getw", lua_sr_pv_getw}, {"gete", lua_sr_pv_gete}, + {"getvn", lua_sr_pv_getvn}, + {"getvs", lua_sr_pv_getvs}, {"seti", lua_sr_pv_seti}, {"sets", lua_sr_pv_sets}, {"unset", lua_sr_pv_unset},
6 years, 5 months
1
0
0
0
git:master:e361e5ec: tm: added fcount field for free operations debugging
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: e361e5ec2883775d14d92d46659d062b31c45f33 URL:
https://github.com/kamailio/kamailio/commit/e361e5ec2883775d14d92d46659d062…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-24T11:02:32+02:00 tm: added fcount field for free operations debugging --- Modified: src/modules/tm/h_table.c Modified: src/modules/tm/h_table.h --- Diff:
https://github.com/kamailio/kamailio/commit/e361e5ec2883775d14d92d46659d062…
Patch:
https://github.com/kamailio/kamailio/commit/e361e5ec2883775d14d92d46659d062…
--- diff --git a/src/modules/tm/h_table.c b/src/modules/tm/h_table.c index ee79b91fd3..998bdfad8e 100644 --- a/src/modules/tm/h_table.c +++ b/src/modules/tm/h_table.c @@ -143,7 +143,10 @@ void free_cell_helper( unlink_timers(dead_cell); remove_from_hash_table_unsafe(dead_cell); } - release_cell_lock(dead_cell); + release_cell_lock(dead_cell); /* does nothing */ + + dead_cell->fcount++; + if(unlikely(has_tran_tmcbs(dead_cell, TMCB_DESTROY))) run_trans_callbacks(TMCB_DESTROY, dead_cell, 0, 0, 0); diff --git a/src/modules/tm/h_table.h b/src/modules/tm/h_table.h index 7d61ae3673..a60fb9c754 100644 --- a/src/modules/tm/h_table.h +++ b/src/modules/tm/h_table.h @@ -366,6 +366,9 @@ typedef struct cell /* number of forks */ short nr_of_outgoings; + /* free operations counter - debug */ + int fcount; + #ifdef TM_DEL_UNREF /* every time the transaction/cell is referenced from somewhere this * ref_count should be increased (via REF()) and every time the reference
6 years, 5 months
1
0
0
0
git:master:927d738d: tm: more debug messages for reply relay
by Daniel-Constantin Mierla
Module: kamailio Branch: master Commit: 927d738d0e1585ccbccc878ab55c219ae737091d URL:
https://github.com/kamailio/kamailio/commit/927d738d0e1585ccbccc878ab55c219…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com> Committer: Daniel-Constantin Mierla <miconda(a)gmail.com> Date: 2018-08-24T10:52:26+02:00 tm: more debug messages for reply relay --- Modified: src/modules/tm/t_reply.c --- Diff:
https://github.com/kamailio/kamailio/commit/927d738d0e1585ccbccc878ab55c219…
Patch:
https://github.com/kamailio/kamailio/commit/927d738d0e1585ccbccc878ab55c219…
--- diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c index 474851aa7c..2f5488a309 100644 --- a/src/modules/tm/t_reply.c +++ b/src/modules/tm/t_reply.c @@ -315,7 +315,7 @@ inline static int update_totag_set(struct cell *t, struct sip_msg *ok) return 0; } memset(n, 0, sizeof(struct totag_elem)); - memcpy(s, tag->s, tag->len ); + memcpy(s, tag->s, tag->len); n->tag.s=s;n->tag.len=tag->len; n->next=t->fwded_totags; membar_write(); /* make sure all the changes to n are visible on all cpus @@ -328,7 +328,7 @@ inline static int update_totag_set(struct cell *t, struct sip_msg *ok) * the "readers" (unmatched_tags()) do not use locks and * can be called simultaneously on another cpu.*/ t->fwded_totags=n; - LM_DBG("new totag \n"); + LM_DBG("new totag [%.*s]\n", tag->len, tag->s); return 0; } @@ -1995,6 +1995,7 @@ enum rps relay_reply( struct cell *t, struct sip_msg *p_msg, int branch, if (likely(uas_rb->dst.send_sock)) { if (SEND_PR_BUFFER( uas_rb, buf, res_len ) >= 0){ + LM_DBG("reply buffer sent out\n"); if (unlikely(!totag_retr && has_tran_tmcbs(t, TMCB_RESPONSE_OUT))){ LOCK_REPLIES( t ); @@ -2059,6 +2060,7 @@ enum rps relay_reply( struct cell *t, struct sip_msg *p_msg, int branch, /* a serious error occurred -- attempt to send an error reply; * it will take care of clean-ups */ + LM_DBG("reply relay failure\n"); /* failure */ return RPS_ERROR; }
6 years, 5 months
1
0
0
0
← Newer
1
...
9
10
11
12
13
14
15
...
29
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Results per page:
10
25
50
100
200