/* Extcap interfaces (and their preferences) are dynamic, they can be created and destroyed at will. Thus their data structures are insufficient to pass to the preferences APIs which require pointers which are valid until the preferences are removed (at exit).  */
static gchar** extcap_prefs_dynamic_valptr(const char *name)
/* Extcap interfaces (and their preferences) are dynamic, they can be created and destroyed at will. Thus their data structures are insufficient to pass to the preferences APIs which require pointers which are valid until the preferences are removed (at exit).  */
static gchar** extcap_prefs_dynamic_valptr(const char *name)
{
    gchar **valp;
    if (!extcap_prefs_dynamic_vals) {
        extcap_prefs_dynamic_vals = g_hash_table_new_full(g_str_hash, g_str_equal,
                g_free, g_free);
    }
    valp = (gchar **)g_hash_table_lookup(extcap_prefs_dynamic_vals, name);
    if (!valp) {
        valp = g_new0(gchar *, 1);
        g_hash_table_insert(extcap_prefs_dynamic_vals, g_strdup(name), valp);
    }
    return valp;
}