diff --git a/conf.c b/conf.c index 30125fb0..cb6059a5 100644 --- a/conf.c +++ b/conf.c @@ -32,11 +32,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #define CONFFILE_NAME "serval.conf" struct cf_om_node *cf_om_root = NULL; -static struct file_meta conffile_meta = FILE_META_UNKNOWN; +static __thread struct file_meta conffile_meta = FILE_META_UNKNOWN; int cf_limbo = 1; -struct config_main config; -static struct file_meta config_meta = FILE_META_UNKNOWN; +__thread struct config_main config; +static __thread struct file_meta config_meta = FILE_META_UNKNOWN; static const char *conffile_path() { diff --git a/conf.h b/conf.h index dfe06097..22a2f336 100644 --- a/conf.h +++ b/conf.h @@ -700,7 +700,7 @@ int cf_opt_encapsulation(short *encapp, const char *text); int cf_fmt_encapsulation(const char **, const short *encapp); extern int cf_limbo; -extern struct config_main config; +extern __thread struct config_main config; int cf_init(void); int cf_load(void); diff --git a/server.c b/server.c index 7185e15e..bed7fa96 100644 --- a/server.c +++ b/server.c @@ -144,7 +144,10 @@ JNIEXPORT jint JNICALL Java_org_servalproject_servaldna_ServalDCommand_server( if (pid>0) return 1; + cf_reload_strict(); + int ret = -1; + { const char *cpin = keyring_pin?(*env)->GetStringUTFChars(env, keyring_pin, NULL):NULL; if (cpin != NULL){