|
|
|
@ -15,7 +15,6 @@
|
|
|
|
|
static Octstr *cfg_getx(CfgGroup *grp, Octstr *item)
|
|
|
|
|
{
|
|
|
|
|
Octstr *v = cfg_get(grp, item);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return v ? v : octstr_create("");
|
|
|
|
|
}
|
|
|
|
@ -34,8 +33,8 @@ static void *load_module(CfgGroup *grp, char *config_key, char *symbolname)
|
|
|
|
|
if (x == NULL || (y = dlsym(x, symbolname)) == NULL)
|
|
|
|
|
|
|
|
|
|
panic(0,
|
|
|
|
|
"Error, unable to load dynamic libary (%s) for billing: "
|
|
|
|
|
"libhandle is %s, billing funcs is %s, err=%s",
|
|
|
|
|
"Error, unable to load dynamic libary (%s): "
|
|
|
|
|
"libhandle is %s, funcs is %s, err=%s",
|
|
|
|
|
octstr_get_cstr(s),
|
|
|
|
|
x ? "OK" : "Not OK", y ? "OK" : "Not OK", dlerror());
|
|
|
|
|
else
|
|
|
|
@ -175,17 +174,17 @@ MmsBoxSettings *mms_load_mmsbox_settings(Cfg *cfg)
|
|
|
|
|
m->mms_bill_module_data = m->mms_billfuncs->mms_billingmodule_init(octstr_get_cstr(m->billing_params));
|
|
|
|
|
|
|
|
|
|
m->resolver_params = cfg_getx(grp,
|
|
|
|
|
octstr_imm("billing-module-parameters"));
|
|
|
|
|
octstr_imm("resolver-module-parameters"));
|
|
|
|
|
|
|
|
|
|
/* Get and load the resolver lib if any. */
|
|
|
|
|
if ((m->mms_resolvefuncs = load_module(grp, "billing-library", "mms_billfuncs"))) {
|
|
|
|
|
if ((m->mms_resolvefuncs = load_module(grp, "resolver-library", "mms_resolvefuncs"))) {
|
|
|
|
|
if (m->mms_resolvefuncs->mms_resolvermodule_init == NULL ||
|
|
|
|
|
m->mms_resolvefuncs->mms_resolve == NULL ||
|
|
|
|
|
m->mms_resolvefuncs->mms_resolvermodule_fini == NULL)
|
|
|
|
|
panic(0, "Missing or NULL functions in resolver module!");
|
|
|
|
|
} else
|
|
|
|
|
m->mms_resolvefuncs = &mms_resolvefuncs; /* The default one. */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m->mms_resolver_module_data = m->mms_resolvefuncs->mms_resolvermodule_init(octstr_get_cstr(m->resolver_params));
|
|
|
|
|
|
|
|
|
|
return m;
|
|
|
|
|