Move config to a thread local

This commit is contained in:
Jeremy Lakeman 2015-06-15 11:46:24 +09:30
parent 6febcc350d
commit 5aeb9b960d
3 changed files with 7 additions and 4 deletions

6
conf.c
View File

@ -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()
{

2
conf.h
View File

@ -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);

View File

@ -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){