]> git.ipfire.org Git - thirdparty/strongswan.git/blobdiff - src/libcharon/plugins/tnc_imc/tnc_imc_manager.c
Use thread save settings alloc_str function where appropriate
[thirdparty/strongswan.git] / src / libcharon / plugins / tnc_imc / tnc_imc_manager.c
index aa20534f5d7c721ba1b1cab5cfe8fbb4a79e72d9..a04e495224b093a1ef2fe368735c9f4c76924cf8 100644 (file)
@@ -43,6 +43,11 @@ struct private_tnc_imc_manager_t {
         * Next IMC ID to be assigned
         */
        TNC_IMCID next_imc_id;
+
+       /**
+        * Preferred language
+        */
+       char *preferred_language;
 };
 
 METHOD(imc_manager_t, add, bool,
@@ -95,8 +100,7 @@ METHOD(imc_manager_t, remove_, imc_t*,
 METHOD(imc_manager_t, get_preferred_language, char*,
        private_tnc_imc_manager_t *this)
 {
-       return lib->settings->get_str(lib->settings,
-                                       "charon.plugins.tnc-imc.preferred_language", "en");
+       return this->preferred_language;
 }
 
 METHOD(imc_manager_t, notify_connection_change, void,
@@ -208,6 +212,7 @@ METHOD(imc_manager_t, destroy, void,
                imc->destroy(imc);
        }
        this->imcs->destroy(this->imcs);
+       free(this->preferred_language);
        free(this);
 }
 
@@ -232,6 +237,8 @@ imc_manager_t* tnc_imc_manager_create(void)
                },
                .imcs = linked_list_create(),
                .next_imc_id = 1,
+               .preferred_language = lib->settings->alloc_str(lib->settings,
+                                       "charon.plugins.tnc-imc.preferred_language", "en");
        );
 
        return &this->public;