From d8f6b975f831b4bd49c71f5efb990563b8dda08c Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Sun, 24 Apr 2016 20:47:35 +0200 Subject: [PATCH] registrar: exported save(...)/lookup(...) variants to kemi --- modules/registrar/api.h | 1 + modules/registrar/registrar.c | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/modules/registrar/api.h b/modules/registrar/api.h index 2e7130fb63f..9f45eb9694d 100644 --- a/modules/registrar/api.h +++ b/modules/registrar/api.h @@ -37,6 +37,7 @@ int regapi_save_uri(sip_msg_t *msg, str *table, int flags, str *uri); typedef int (*regapi_lookup_f)(sip_msg_t *msg, str *table); int regapi_lookup(sip_msg_t *msg, str *table); +int regapi_registered(sip_msg_t *msg, str *table); typedef int (*regapi_lookup_uri_f)(sip_msg_t *msg, str *table, str *uri); int regapi_lookup_uri(sip_msg_t *msg, str *table, str *uri); diff --git a/modules/registrar/registrar.c b/modules/registrar/registrar.c index 2dcc76cf033..0752d2ef23b 100644 --- a/modules/registrar/registrar.c +++ b/modules/registrar/registrar.c @@ -47,6 +47,7 @@ #include "../../lib/srutils/sruid.h" #include "../../modules/sl/sl.h" #include "../../mod_fix.h" +#include "../../kemi.h" #include "save.h" #include "api.h" @@ -747,3 +748,50 @@ void default_expires_range_update(str* gname, str* name){ void expires_range_update(str* gname, str* name){ update_stat(expire_range_stat, cfg_get(registrar, registrar_cfg, expires_range)); } + +/** + * + */ +static sr_kemi_t sr_kemi_registrar_exports[] = { + { str_init("registrar"), str_init("save"), + SR_KEMIP_INT, regapi_save, + { SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("registrar"), str_init("save_uri"), + SR_KEMIP_INT, regapi_save_uri, + { SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_STR, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("registrar"), str_init("lookup"), + SR_KEMIP_INT, regapi_lookup, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("registrar"), str_init("lookup_uri"), + SR_KEMIP_INT, regapi_lookup_uri, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("registrar"), str_init("lookup_to_dset"), + SR_KEMIP_INT, regapi_lookup_to_dset, + { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("registrar"), str_init("registered"), + SR_KEMIP_INT, regapi_registered, + { SR_KEMIP_STR, 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 } } +}; + +/** + * + */ +int mod_register(char *path, int *dlflags, void *p1, void *p2) +{ + sr_kemi_modules_add(sr_kemi_registrar_exports); + return 0; +}