minor changes to cfg-impl interface
This commit is contained in:
parent
e370a86566
commit
fcebda1812
|
@ -25,6 +25,7 @@ typedef struct mCfgImpFuncs {
|
|||
mCfgGrp *(*get_multi_by_field)(mCfgImpl *cfg, Octstr *name, Octstr *field, Octstr *value);
|
||||
Octstr *(*get)(mCfgImpl *cfg, mCfgGrp *grp, Octstr *name);
|
||||
Octstr *(*get_grp_name)(mCfgImpl *, mCfgGrp *);
|
||||
void (*destroy_grp)(mCfgImpl *cfg, mCfgGrp *);
|
||||
} mCfgImpFuncs;
|
||||
|
||||
|
||||
|
|
|
@ -303,6 +303,14 @@ List *mms_cfg_get_multi(mCfg *cfg, Octstr *name)
|
|||
return cfg->cfg_funcs->get_multi(cfg->xcfg, name);
|
||||
}
|
||||
|
||||
void mms_cfg_destroy_grp(mCfg *cfg, mCfgGrp *grp)
|
||||
{
|
||||
gw_assert(cfg);
|
||||
if (cfg->xcfg == NULL || cfg->cfg_funcs == NULL || cfg->cfg_funcs->destroy_grp == NULL)
|
||||
return;
|
||||
else
|
||||
cfg->cfg_funcs->destroy_grp(cfg->xcfg, grp);
|
||||
}
|
||||
|
||||
mCfgGrp *mms_get_multi_by_field(mCfg *cfg, Octstr *name, Octstr *field, Octstr *value)
|
||||
{
|
||||
|
|
|
@ -36,6 +36,11 @@ List *mms_cfg_get_multi(mCfg *cfg,Octstr *name);
|
|||
|
||||
mCfgGrp *mms_get_multi_by_field(mCfg *cfg, Octstr *name, Octstr *field, Octstr *value);
|
||||
|
||||
/* Destroy a group object after user -- call this to cleanup memory used by group object
|
||||
* always!
|
||||
*/
|
||||
void mms_cfg_destroy_grp(mCfg *, mCfgGrp *);
|
||||
|
||||
/* Get a string field value from a group. */
|
||||
Octstr *mms_cfg_get(mCfg *cfg, mCfgGrp *grp, Octstr *name);
|
||||
|
||||
|
|
|
@ -241,6 +241,8 @@ int mms_load_mmsbox_settings(Octstr *fname, gwthread_func_t *mmsc_handler_func)
|
|||
u->rr_url = _mms_cfg_getx(cfg, x, octstr_imm("read-report-url"));
|
||||
u->mmsc = mms_cfg_get(cfg, x, octstr_imm("mmsc"));
|
||||
gwlist_append(sendmms_users, u);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, x);
|
||||
}
|
||||
gwlist_destroy(l, NULL);
|
||||
|
||||
|
@ -252,8 +254,9 @@ int mms_load_mmsbox_settings(Octstr *fname, gwthread_func_t *mmsc_handler_func)
|
|||
List *errors = gwlist_create();
|
||||
List *warnings = gwlist_create();
|
||||
Octstr *x;
|
||||
mCfgGrp *xgrp = gwlist_get(l, i);
|
||||
|
||||
start_mmsc_from_conf(cfg, gwlist_get(l, i), mmsc_handler_func, errors, warnings);
|
||||
start_mmsc_from_conf(cfg, xgrp, mmsc_handler_func, errors, warnings);
|
||||
|
||||
while ((x = gwlist_extract_first(errors)) != NULL) {
|
||||
mms_error(0, "mmsbox", NULL, "%s", octstr_get_cstr(x));
|
||||
|
@ -266,6 +269,8 @@ int mms_load_mmsbox_settings(Octstr *fname, gwthread_func_t *mmsc_handler_func)
|
|||
}
|
||||
gwlist_destroy(errors, NULL);
|
||||
gwlist_destroy(warnings, NULL);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, xgrp);
|
||||
}
|
||||
|
||||
gwlist_destroy(l, NULL);
|
||||
|
@ -409,6 +414,8 @@ int mms_load_mmsbox_settings(Octstr *fname, gwthread_func_t *mmsc_handler_func)
|
|||
m->service_code = mms_cfg_get(cfg, x, octstr_imm("service-code"));
|
||||
m->special_header = mms_cfg_get(cfg, x, octstr_imm("extra-reply-content-header"));
|
||||
gwlist_append(mms_services, m);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, x);
|
||||
}
|
||||
|
||||
/* Finally load admin-port config and start the thingie */
|
||||
|
@ -437,6 +444,8 @@ int mms_load_mmsbox_settings(Octstr *fname, gwthread_func_t *mmsc_handler_func)
|
|||
gwlist_destroy(l, NULL);
|
||||
octstr_destroy(gdir);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, cgrp);
|
||||
mms_cfg_destroy_grp(cfg, grp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1017,7 +1026,8 @@ static void admin_handler(void *unused)
|
|||
}
|
||||
gwlist_destroy(e, (void *)octstr_destroy);
|
||||
gwlist_destroy(w, (void *)octstr_destroy);
|
||||
|
||||
|
||||
mms_cfg_destroy_grp(cfg, m);
|
||||
}
|
||||
} else if (octstr_str_case_compare(url, "/stop") == 0) {
|
||||
Octstr *x;
|
||||
|
|
|
@ -319,8 +319,8 @@ MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays)
|
|||
List *e = gwlist_create();
|
||||
List *w = gwlist_create();
|
||||
Octstr *x;
|
||||
|
||||
mmsc_load_vasp_from_conf(m, gwlist_get(l, i), e, w);
|
||||
mCfgGrp *xgrp = gwlist_get(l, i);
|
||||
mmsc_load_vasp_from_conf(m, xgrp, e, w);
|
||||
|
||||
while ((x = gwlist_extract_first(e)) != NULL) {
|
||||
mms_error(0, "mmsc", NULL, "%s", octstr_get_cstr(x));
|
||||
|
@ -333,6 +333,8 @@ MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays)
|
|||
}
|
||||
gwlist_destroy(e, NULL);
|
||||
gwlist_destroy(w, NULL);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, xgrp);
|
||||
}
|
||||
gwlist_destroy(l, NULL);
|
||||
|
||||
|
@ -361,6 +363,10 @@ MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays)
|
|||
} else if (m->admin_pass == NULL)
|
||||
mms_warning(0, "mmsc", NULL, "Empty or no password supplied for admin port. All requests will be allowed!");
|
||||
|
||||
|
||||
mms_cfg_destroy_grp(cfg, cgrp);
|
||||
mms_cfg_destroy_grp(cfg, grp);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
|
@ -546,6 +552,8 @@ List *mms_proxy_relays(mCfg *cfg, Octstr *myhostname)
|
|||
mms_warning(0, "mmsc", NULL,"MMSC Config: Found MM4 Proxy %s with same hostname as local host!",
|
||||
octstr_get_cstr(m->name));
|
||||
gwlist_append(l, m);
|
||||
|
||||
mms_cfg_destroy_grp(cfg, grp);
|
||||
}
|
||||
|
||||
gwlist_destroy(gl, NULL);
|
||||
|
@ -975,7 +983,8 @@ static void admin_handler(MmscSettings *settings)
|
|||
}
|
||||
gwlist_destroy(e, (void *)octstr_destroy);
|
||||
gwlist_destroy(w, (void *)octstr_destroy);
|
||||
|
||||
|
||||
mms_cfg_destroy_grp(settings->cfg, m);
|
||||
}
|
||||
} else if (octstr_str_case_compare(url, "/stop") == 0) {
|
||||
Octstr *x;
|
||||
|
|
Loading…
Reference in New Issue