|
|
|
@ -153,10 +153,7 @@ void config_load_free(struct rtpengine_common_config *cconfig) {
|
|
|
|
|
g_free(cconfig->pidfile);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void free_gopte(GOptionEntry **k) {
|
|
|
|
|
if (k && *k)
|
|
|
|
|
free(*k);
|
|
|
|
|
}
|
|
|
|
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionEntry, free)
|
|
|
|
|
|
|
|
|
|
void config_load(int *argc, char ***argv, GOptionEntry *app_entries, const char *description,
|
|
|
|
|
char *default_config, char *default_section,
|
|
|
|
@ -215,10 +212,10 @@ void config_load(int *argc, char ***argv, GOptionEntry *app_entries, const char
|
|
|
|
|
unsigned int app_len = options_length(app_entries);
|
|
|
|
|
size_t entries_size = sizeof(GOptionEntry) * (shared_len + app_len + 1);
|
|
|
|
|
|
|
|
|
|
AUTO_CLEANUP(GOptionEntry *entries, free_gopte) = malloc(entries_size);
|
|
|
|
|
g_autoptr(GOptionEntry) entries = malloc(entries_size);
|
|
|
|
|
memcpy(entries, shared_options, sizeof(*entries) * shared_len);
|
|
|
|
|
memcpy(&entries[shared_len], app_entries, sizeof(*entries) * (app_len + 1));
|
|
|
|
|
AUTO_CLEANUP(GOptionEntry *entries_copy, free_gopte) = malloc(entries_size);
|
|
|
|
|
g_autoptr(GOptionEntry) entries_copy = malloc(entries_size);
|
|
|
|
|
memcpy(entries_copy, entries, entries_size);
|
|
|
|
|
|
|
|
|
|
c = g_option_context_new(description);
|
|
|
|
|