Module: kamailio
Branch: master
Commit: 7cbece0e2e60f8c334bea97333b029d51e5b7e33
URL: 
https://github.com/kamailio/kamailio/commit/7cbece0e2e60f8c334bea97333b029d51e5b7e33

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2017-11-24T19:39:27+01:00

app_lua: print special kemi functions via rpc

---

Modified: src/modules/app_lua/app_lua_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/7cbece0e2e60f8c334bea97333b029d51e5b7e33.diff
Patch: 
https://github.com/kamailio/kamailio/commit/7cbece0e2e60f8c334bea97333b029d51e5b7e33.patch

---

diff --git a/src/modules/app_lua/app_lua_mod.c 
b/src/modules/app_lua/app_lua_mod.c
index 4c431dd3ed..b4a44fab70 100644
--- a/src/modules/app_lua/app_lua_mod.c
+++ b/src/modules/app_lua/app_lua_mod.c
@@ -606,6 +606,54 @@ static void app_lua_rpc_list(rpc_t* rpc, void* ctx)
        return;
 }
 
+/**
+ * only prototypes of special kemi exports in order to list via rpc
+ */
+/* clang-format off */
+static sr_kemi_t sr_kemi_app_lua_rpc_exports[] = {
+       { str_init("pv"), str_init("get"),
+               SR_KEMIP_STR, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("pv"), str_init("seti"),
+               SR_KEMIP_NONE, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("pv"), str_init("sets"),
+               SR_KEMIP_NONE, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("pv"), str_init("unset"),
+               SR_KEMIP_NONE, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("pv"), str_init("is_null"),
+               SR_KEMIP_BOOL, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("x"), str_init("modf"),
+               SR_KEMIP_INT, NULL,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("x"), str_init("exit"),
+               SR_KEMIP_NONE, NULL,
+               { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("x"), str_init("drop"),
+               SR_KEMIP_NONE, NULL,
+               { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+
+       { {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
+};
 
 static const char* app_lua_rpc_api_list_doc[2] = {
        "list kemi exports to lua",
@@ -656,6 +704,22 @@ static void app_lua_rpc_api_list(rpc_t* rpc, void* ctx)
                        return;
                }
        }
+       for(i=0; sr_kemi_app_lua_rpc_exports[i].fname.s!=NULL; i++) {
+               ket = &sr_kemi_app_lua_rpc_exports[i];
+               if(rpc->struct_add(ih, "{", "func", &sh)<0) {
+                       rpc->fault(ctx, 500, "Internal error internal 
structure");
+                       return;
+               }
+               if(rpc->struct_add(sh, "SSSS",
+                               "ret", sr_kemi_param_map_get_name(ket->rtype),
+                               "module", &ket->mname,
+                               "name", &ket->fname,
+                               "params", 
sr_kemi_param_map_get_params(ket->ptypes))<0) {
+                       LM_ERR("failed to add the structure with attributes 
(%d)\n", i);
+                       rpc->fault(ctx, 500, "Internal error creating dest 
struct");
+                       return;
+               }
+       }
 }
 
 rpc_export_t app_lua_rpc_cmds[] = {


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to