/* defines the currently used bootstrap config file */
#include "osrfConfig.h"
-osrfConfig* __osrfConfigDefault = NULL;
+static osrfConfig* osrfConfigDefault = NULL;
void osrfConfigSetDefaultConfig(osrfConfig* cfg) {
- if(cfg) __osrfConfigDefault = cfg;
+ if(cfg) {
+ if( osrfConfigDefault )
+ osrfConfigFree( osrfConfigDefault );
+ osrfConfigDefault = cfg;
+ }
}
void osrfConfigFree(osrfConfig* cfg) {
int osrfConfigHasDefaultConfig() {
- return ( __osrfConfigDefault != NULL );
+ return ( osrfConfigDefault != NULL );
}
void osrfConfigCleanup() {
- osrfConfigFree(__osrfConfigDefault);
- __osrfConfigDefault = NULL;
+ osrfConfigFree(osrfConfigDefault);
+ osrfConfigDefault = NULL;
}
osrfConfig* osrfConfigInit(char* configFile, char* configContext) {
if(!configFile) return NULL;
- osrfConfigFree(__osrfConfigDefault);
-
osrfConfig* cfg = safe_malloc(sizeof(osrfConfig));
if(configContext) cfg->configContext = strdup(configContext);
else cfg->configContext = NULL;
char* osrfConfigGetValue(osrfConfig* cfg, char* path, ...) {
if(!path) return NULL;
- if(!cfg) cfg = __osrfConfigDefault;
- if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Confif object!"); return NULL; }
+ if(!cfg) cfg = osrfConfigDefault;
+ if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Config object in osrfConfigGetValue()"); return NULL; }
VA_LIST_TO_STRING(path);
int osrfConfigGetValueList(osrfConfig* cfg, osrfStringArray* arr, char* path, ...) {
if(!arr || !path) return 0;
- if(!cfg) cfg = __osrfConfigDefault;
+ if(!cfg) cfg = osrfConfigDefault;
if(!cfg) { osrfLogWarning( OSRF_LOG_MARK, "No Config object!"); return -1;}
VA_LIST_TO_STRING(path);