示例#1
0
std::string iniparser_getstring(dictionary * d, std::string key, std::string def){
    printf("ini Requesting key=%s\n", key.c_str());
    char* value = iniparser_getstring(d, key.c_str(), NULL);

    printf("ini %s=%s\n", key.c_str(), value);

    if(value == NULL){
        return def;
    }

    return std::string(value);
}
示例#2
0
void JalousieEinstellungen::updateJalEinstellungen()
{
    dictionary *hsconf;
    QByteArray hsconfByteArray = hsconfFile->fileName().toLatin1();
    hsconf = iniparser_load(hsconfByteArray.data());
    ui->spinBox_Auf_Offset->setValue(0);
    ui->spinBox_Zu_Offset->setValue(0);
    ui->timeEdit_Auf->setTime(QTime::fromString("00:00"));
    ui->timeEdit_Zu->setTime(QTime::fromString("00:00"));
    for(int i = 0; i < 8; i++)
    {
        if(confWidgetsJal[i].isBool)
        {
            QAbstractButton *foo = (QAbstractButton*)confWidgetsJal[i].object;
            confWidgetsJal[i].boolValue = iniparser_getboolean(hsconf, QString(confWidgetsJal[i].section + ":" + confWidgetsJal[i].key).toLatin1(), false);
            foo->setChecked(confWidgetsJal[i].boolValue);
        }else if(confWidgetsJal[i].isTime)
        {
            QSpinBox *spinBox_Offset = confWidgetsJal[i].object->findChild<QSpinBox *>();
            QTimeEdit *timeEdit_Uhrzeit = confWidgetsJal[i].object->findChild<QTimeEdit *>();
            QList<QRadioButton *> listRadioButton = confWidgetsJal[i].object->findChildren<QRadioButton *>();
            confWidgetsJal[i].strValue = QString(iniparser_getstring(hsconf, QString(confWidgetsJal[i].section + ":" + confWidgetsJal[i].key).toLatin1(), NULL));
            if(confWidgetsJal[i].strValue.contains(":")) //Uhrzeit
            {
                timeEdit_Uhrzeit->setTime(QTime::fromString(confWidgetsJal[i].strValue, "h:m"));
                for(int k = 0; k < 3; k++)
                {
                    listRadioButton[k]->setChecked(listRadioButton[k]->objectName().contains("Uhrzeit"));
                }
            }
            else
            {
                if(confWidgetsJal[i].strValue.contains("SA"))
                {
                    for(int k = 0; k < 3; k++)
                    {
                        listRadioButton[k]->setChecked(listRadioButton[k]->objectName().contains("SA"));
                    }
                }
                else if(confWidgetsJal[i].strValue.contains("SU"))
                {
                    for(int k = 0; k < 3; k++)
                    {
                        listRadioButton[k]->setChecked(listRadioButton[k]->objectName().contains("SU"));
                    }
                }
                spinBox_Offset->setValue(confWidgetsJal[i].strValue.right(confWidgetsJal[i].strValue.size() - 2).toInt());
            }
        }
    }
    iniparser_freedict(hsconf);
    validData(true);
}
示例#3
0
static inline int alloc_cmd(const char *cmd, dictionary *dict, char **to_be_malloc)
{
	char *def = "";
	int len = strlen(iniparser_getstring(dict, cmd, def));
	*to_be_malloc = (char*)malloc(sizeof(char*) * len + 1);
	if (*to_be_malloc == NULL)
	{
		return -1;
	}
	memset(*to_be_malloc,'\0',len);
	return 0;
}
示例#4
0
void finiparser_getDbl(double* out,char *key,int *ifnd,int key_len)
{
    const char* str;

    *ifnd = 0;
    str = iniparser_getstring(dic,addchar0(key,key_len),NULL);
    if (str != NULL) {
       *out = atof(str);
       *ifnd = 1;
    }
    return;
}
uint32_t ReadPrefHex(const char* pref_key, int default_value)
{
    std::stringstream ss;
    std::string default_string;
    ss.setf(std::ios::hex|std::ios::showbase, std::ios::basefield);
    ss << default_value;
    ss >> default_string;
    LoadConfigFile();
    std::string pref = "preferences:";
    pref.append(pref_key);
    return fromHex(iniparser_getstring(preferences, pref.c_str(), default_string.c_str()));
}
示例#6
0
NTSTATUS parse_gpt_ini(TALLOC_CTX *mem_ctx,
		       const char *filename,
		       uint32_t *version,
		       char **display_name)
{
	NTSTATUS result;
	uint32_t v = 0;
	char *name = NULL;
	dictionary *dict = NULL;

	if (!filename) {
		return NT_STATUS_INVALID_PARAMETER;
	}

	dict = iniparser_load(filename);
	if (!dict) {
		return NT_STATUS_NO_SUCH_FILE;
	}

	if ((name = iniparser_getstring(dict, GPT_INI_SECTION_GENERAL
			":"GPT_INI_PARAMETER_DISPLAYNAME, NULL)) == NULL) {
		/* the default domain policy and the default domain controller
		 * policy never have a displayname in their gpt.ini file */
		DEBUG(10,("parse_gpt_ini: no name in %s\n", filename));
	}

	if (name && display_name) {
		*display_name = talloc_strdup(mem_ctx, name);
		if (*display_name == NULL) {
			result = NT_STATUS_NO_MEMORY;
			goto out;
		}
	}

	if ((v = iniparser_getint(dict, GPT_INI_SECTION_GENERAL
			":"GPT_INI_PARAMETER_VERSION, Undefined)) == Undefined) {
		DEBUG(10,("parse_gpt_ini: no version\n"));
		result = NT_STATUS_INTERNAL_DB_CORRUPTION;
		goto out;
	}

	if (version) {
		*version = v;
	}

	result = NT_STATUS_OK;
 out:
	if (dict) {
		iniparser_freedict(dict);
	}

	return result;
}
示例#7
0
void set_config( void *self, dictionary *config )
{
  debug("reading configuration file options");
  if (config) {
    cim_namespace = iniparser_getstr (config, "cim:default_cim_namespace");
    char *namespaces = iniparser_getstr (config, "cim:vendor_namespaces");
    cim_host = iniparser_getstring(config, "cim:host", "localhost");
    cim_client_frontend = iniparser_getstring(config, "cim:cim_client_frontend", "XML");
    cim_port = iniparser_getstring(config, "cim:port", DEFAULT_HTTP_CIMOM_PORT);
    server_port = iniparser_getstring(config, "server:port", server_port);
    cim_ssl = iniparser_getboolean(config, "cim:ssl", 0);
    cim_trust_store = iniparser_getstring(config, "cim:trust_store", "/etc/ssl/certs");
    cim_verify = iniparser_getboolean(config, "cim:verify_cert", 0);
    omit_schema_optional = iniparser_getboolean(config, "cim:omit_schema_optional", 0);
    indication_profile_implementation_ns = iniparser_getstring(config, "cim:indication_profile_implementation_ns", "root/interop");
    debug("vendor namespaces: %s", namespaces);
    if (namespaces) {
      hash_t * t = u_parse_query(namespaces);
      if (t) {
        vendor_namespaces = t;
      }
      else
        vendor_namespaces = NULL;
    }
    debug("cim namespace: %s", cim_namespace);
  }
  return;
}
示例#8
0
void Test_dictionary_wrapper(CuTest *tc)
{
    dictionary *dic;

    dic = dictionary_new(10);

    CuAssertIntEquals(tc, -1, iniparser_set(dic, NULL, NULL));
    CuAssertIntEquals(tc, -1, iniparser_set(NULL, "section", "value"));

    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section", NULL));
    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key", "value"));

    CuAssertStrEquals(tc, "value", iniparser_getstring(dic, "section:key", NULL));
    /* reset the key's value*/
    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key", NULL));
    CuAssertStrEquals(tc, NULL, iniparser_getstring(dic, "section:key", "dummy"));
    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key", "value"));
    CuAssertStrEquals(tc, "value", iniparser_getstring(dic, "section:key", NULL));

    iniparser_unset(dic, "section:key");
    CuAssertStrEquals(tc, "dummy", iniparser_getstring(dic, "section:key", "dummy"));
    CuAssertStrEquals(tc, NULL, iniparser_getstring(dic, "section", "dummy"));

    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key", NULL));
    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key1", NULL));
    CuAssertIntEquals(tc, 0, iniparser_set(dic, "section:key2", NULL));

    iniparser_unset(dic, "section");
    CuAssertStrEquals(tc, NULL, iniparser_getstring(dic, "section", NULL));

    iniparser_freedict(dic);
}
示例#9
0
文件: config.c 项目: starrify/cw4aai
int cfg_init()
{
    dict = iniparser_load(CONFIG_FILE);

    config.memsize = iniparser_getint(dict, "mem:memsize", config.memsize);
    config.entry_offset = iniparser_getint(dict, "mem:entry_offset", config.entry_offset);
    config.sbase_offset = iniparser_getint(dict, "mem:sbase_offset", config.sbase_offset);

    config.endianess = iniparser_getint(dict, "misc:endianess", config.endianess);
    config.display_refresh_interval = iniparser_getint(dict, "misc:display_refresh_interval", config.display_refresh_interval);
    config.timer_interval = iniparser_getint(dict, "misc:timer_interval", config.timer_interval);
    config.log_filename = strdup(iniparser_getstring(dict, "misc:log_file", config.log_filename));

    config.hdd_size = iniparser_getint(dict, "hdd:hdd_size", config.hdd_size);
    config.hdd_filecnt = iniparser_getint(dict, "hdd:hdd_filecnt", config.hdd_filecnt);
    config.hdd_filelist = malloc(config.hdd_filecnt * sizeof(hddfile_t));
    int i;
    for (i = 0; i < config.hdd_filecnt; i++)
    {
        char *s;
        asprintf(&s, "hdd:filename_%d", i);
        config.hdd_filelist[i].filename = strdup(iniparser_getstring(dict, s, NULL));
        free(s);
        asprintf(&s, "hdd:secstart_%d", i);
        config.hdd_filelist[i].secstart = iniparser_getint(dict, s, 0);
        free(s);
        asprintf(&s, "hdd:secsize_%d", i);
        config.hdd_filelist[i].secsize = iniparser_getint(dict, s, 0);
        free(s);
    }

    iniparser_freedict(dict);

    config.log_file = fopen(config.log_filename, "w");
    assert(config.log_file);


    return MEMU_SUCCESS;
}
示例#10
0
char *faptime_config_getstring(const char *key) {
    if (config == NULL) {
        errno = FT_NO_CONFIG;
        return NULL;
    }

    char default_val[] = "";
    char *result = iniparser_getstring(config, key, default_val);
    if (!result || result == default_val) {
        return NULL;
    }
    return strdup(result);
}
示例#11
0
/* All gen_* functions, except gen_iua(), return size as multiples of 8 */
int gen_iua(dictionary *ini, char **iua_data)
{
    int fd, flags, size;
    struct stat st;

    char *binkey, *filename, *data;
    struct internal_use_area *iua;

    /* initialize some sane values */
    fd = -1;
    flags = size = 0;
    data = NULL;
    
    /* We expect this section to have a single key - "binfile", with a value
     * of the absolute path to the binary file to write to in the IUA
     */
    binkey = get_key(IUA, BINFILE);
    
    filename = iniparser_getstring(ini, binkey, NULL);

    if (!filename) {
        fprintf(stderr, "\n%s not found!\n\n", binkey);
        exit(EXIT_FAILURE);
    }

    /* Get size of file */
    stat(filename, &st);
    size = get_aligned_size((sizeof(struct internal_use_area)+st.st_size), 8);
    data = (char *) malloc(size);

    /* Write format version */
    iua = ((struct internal_use_area *) data);
    iua->format_version = 0x01;
                
    flags = O_RDONLY;
    if((fd = open(filename, flags)) == -1) {
        fprintf(stderr, "\nUnable to open %s for reading!\n\n", filename);
        exit(EXIT_FAILURE);
    }
    
    int result = read(fd, iua->data, st.st_size);
    if (result != st.st_size) {
        fprintf(stdout,  "\nError reading entire file content!\n\n");
        exit(EXIT_FAILURE);
    }
    
    close(fd);
    *iua_data = data;

    return size;
}
示例#12
0
文件: main.c 项目: philbooth/server
static void load_inifile(dictionary * d)
{
    const char *reportdir = reportpath();
    const char *datadir = datapath();
    const char *basedir = basepath();
    const char *str;

    assert(d);

    str = iniparser_getstring(d, "eressea:base", basedir);
    if (str != basedir) {
        set_basepath(str);
    }
    str = iniparser_getstring(d, "eressea:report", reportdir);
    if (str != reportdir) {
        set_reportpath(str);
    }
    str = iniparser_getstring(d, "eressea:data", datadir);
    if (str != datadir) {
        set_datapath(str);
    }

    lomem = iniparser_getint(d, "eressea:lomem", lomem) ? 1 : 0;

    str = iniparser_getstring(d, "eressea:encoding", NULL);
    if (str && (_strcmpl(str, "utf8") == 0 || _strcmpl(str, "utf-8") == 0)) {
        enc_gamedata = ENCODING_UTF8;
    }

    verbosity = iniparser_getint(d, "eressea:verbose", 2);
    battledebug = iniparser_getint(d, "eressea:debug", battledebug) ? 1 : 0;

    str = iniparser_getstring(d, "eressea:locales", "de,en");
    make_locales(str);

    if (global.inifile) iniparser_freedict(global.inifile);
    global.inifile = d;
}
示例#13
0
文件: recvfrom.c 项目: minou/ldx-box
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen){
    static ssize_t (*sys_recvfrom)(int, void *, size_t, int, struct sockaddr *, socklen_t *) = NULL;
    if (!sys_recvfrom) {
        if (!(*(void **)(&sys_recvfrom) = dlsym(RTLD_NEXT,"recvfrom"))){
            perror("cannot fetch system recvfrom\n");
            exit(1);
        }
    }

    if (iniparser_getstring(ini, "recvfrom:allow", NULL))
        return sys_recvfrom(sockfd, buf, len, flags, src_addr, addrlen);
    printf("Forbidden use of recvfrom\n");
    return -1;
}
示例#14
0
文件: sendto.c 项目: minou/ldx-box
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) {
    static ssize_t (*sys_sendto)(int, const void *, size_t, int, const struct sockaddr *, socklen_t) = NULL;
    if (!sys_sendto) {
        if (!(*(void **)(&sys_sendto) = dlsym(RTLD_NEXT,"sendto"))){
            perror("cannot fetch system sendto\n");
            exit(1);
        }
    }

    if (iniparser_getstring(ini, "sendto:allow", NULL))
        return sys_sendto(sockfd, buf, len, flags, dest_addr, addrlen);
    printf("Forbidden use of sendto\n");
    return -1;
}
示例#15
0
frame_t *frame_factory_get(const char *key)
{
    frame_t *frame;
    char *addr_str;
    // try to load frame using config from config cache
    static char key_buf[MAX_TEXTURE_NAME+4+1];
    static char addr_buff[16+1];
    char *file;
    int pf, loc;
    int namelen = strlen(key);

    if (frame_cache == NULL) {
        printf("frame factory not inited!\n");
        return NULL;
    }

    addr_str = dictionary_get(frame_cache, (char *)key, "0x0");
    frame = (frame_t *)(strtol(addr_str, NULL, 0));
    if (frame != 0) {
        return frame;
    }

    if (strlen(key) > MAX_TEXTURE_NAME) {
        oslFatalError("config key too long! %s", key);
    }
    strcpy(key_buf, key);

    strcat(key_buf, ":f");
    file = iniparser_getstring(texture_cfg, key_buf, NULL);
    printf("search key %s, value %s\n", key_buf, file);
    printf("texture cfg %p\n", texture_cfg);

    key_buf[namelen] = '\0';
    strcat(key_buf, ":pf");
    pf = iniparser_getint(texture_cfg, key_buf, OSL_IN_VRAM);

    key_buf[namelen] = '\0';
    strcat(key_buf, ":loc");
    loc = iniparser_getint(texture_cfg, key_buf, TAIKO_PF);

    printf("ok so far!\n");;
    frame = frame_create_simple(file, pf, loc);

    if (frame != NULL) {
        key_buf[namelen] = '\0';
        sprintf(addr_buff, "%d", (int)frame);
        dictionary_set(frame_cache, key_buf, addr_buff);
    }
    return frame;
}
示例#16
0
int MSG_db1_data::get_channel_number(char *chname)
{
  int ich = 0;
  char *iname;
  while (ich < MAXCH)
  {
    ich ++;
    snprintf(infochuse, INFOCHLEN, "Channel%d:Name", ich);
    iname = iniparser_getstring(INFO, infochuse, "Undefined");
    if (! strncmp(chname, iname, CHLEN))
      return ich;
  }
  return 0;
}
示例#17
0
文件: recv.c 项目: minou/ldx-box
ssize_t recv(int sockfd, void *buf, size_t len, int flags){
    static ssize_t (*sys_recv)(int, void *, size_t, int) = NULL;
    if (!sys_recv) {
        if (!(*(void **)(&sys_recv) = dlsym(RTLD_NEXT,"recv"))){
            perror("cannot fetch system recv\n");
            exit(1);
        }
    }

    if (iniparser_getstring(ini, "recv:allow", NULL))
        return sys_recv(sockfd, buf, len, flags);
    printf("Forbidden use of recv\n");
    return -1;
}
示例#18
0
文件: send.c 项目: minou/ldx-box
ssize_t send(int sockfd, const void *buf, size_t len, int flags){
    static ssize_t (*sys_send)(int, const void *, size_t, int) = NULL;
    if (!sys_send) {
        if (!(*(void **)(&sys_send) = dlsym(RTLD_NEXT,"send"))){
            perror("cannot fetch system send\n");
            exit(1);
        }
    }

    if (iniparser_getstring(ini, "send:allow", NULL))
        return sys_send(sockfd, buf, len, flags);
    printf("Forbidden use of send\n");
    return -1;
}
static char*
getIniString (IniDictionary *dictionary,
	      const char    *section,
	      const char    *entry)
{
    char *sectionName;
    char *retValue;

    asprintf (&sectionName, "%s:%s", section, entry);

    retValue = iniparser_getstring (dictionary, sectionName, NULL);
    free (sectionName);

    return retValue;
}
configuration_t read_config(const char *filename) {
  configuration_t result;
  clean_config(&result);
  dictionary *ini = iniparser_load(filename);
  char *touch_device_path = iniparser_getstring(ini, "general:touchdevice", NULL);
  if (touch_device_path) {
    if (result.touch_device_path = malloc(strlen(touch_device_path) + 1)) {
      strcpy(result.touch_device_path, touch_device_path);
    }
  } else {
    errno = EINVAL;
    die("error: no touch device defined");
  }
  result.scroll.vert = iniparser_getboolean(ini, "scroll:vertical", false);
  result.scroll.horz = iniparser_getboolean(ini, "scroll:horizontal", false);
  result.scroll.vert_delta = (int8_t) iniparser_getint(ini, "scroll:verticaldelta", 79);
  result.scroll.horz_delta = (int8_t) iniparser_getint(ini, "scroll:horizontaldelta", 30);
  result.scroll.invert_vert = iniparser_getboolean(ini, "scroll:invertvertical", false);
  result.scroll.invert_horz = iniparser_getboolean(ini, "scroll:inverthorizontal", false);
  result.vert_threshold_percentage = iniparser_getint(ini, "thresholds:vertical", 15);
  result.horz_threshold_percentage = iniparser_getint(ini, "thresholds:horizontal", 15);
  result.zoom.enabled = iniparser_getboolean(ini, "zoom:enabled", false);
  result.zoom.delta = (uint8_t) iniparser_getint(ini, "zoom:delta", 200);

  uint8_t i, j;
  for (i = 0; i < MAX_FINGERS; i++) {
    for (j = 0; j < DIRECTIONS_COUNT; j++) {
      char ini_key[16];
      sprintf(ini_key, "%d-fingers:%s", INDEX_TO_FINGER(i), directions[j]);
      fill_keys_array(&result.swipe_keys[i][j].keys, iniparser_getstring(ini, ini_key, NULL));
    }
  }
  
  iniparser_freedict(ini);
  return result;
}
示例#21
0
char* INIGetString(char* stringname)
{
	char* fetchedValue;

	fetchedValue = iniparser_getstring(ConfigINI, stringname, KEY_NOT_FOUND_STR);

	if(strcmp(fetchedValue, KEY_NOT_FOUND_STR) == 0)
	{
		printf("Cannot find str key for %s in %s\n", stringname, DICT_NAME);
		exit(EXIT_FAILURE);
	}

	fetchedValue = INIVariableReplace(fetchedValue);

	return fetchedValue;
}
示例#22
0
/*--------------------------------------------------------------------------*/
int iniparser_getboolean(dictionary * d, const char * key, int notfound)
{
    char    *   c ;
    int         ret ;

    c = iniparser_getstring(d, key, INI_INVALID_KEY);
    if (c==INI_INVALID_KEY) return notfound ;
    if (c[0]=='y' || c[0]=='Y' || c[0]=='1' || c[0]=='t' || c[0]=='T') {
        ret = 1 ;
    } else if (c[0]=='n' || c[0]=='N' || c[0]=='0' || c[0]=='f' || c[0]=='F') {
        ret = 0 ;
    } else {
        ret = notfound ;
    }
    return ret;
}
void *settings_parse_ini_file(struct SiteSettings *ros_settings) {
     char ini_name[80]="/root/test.ini";
     char entry_name[80]="";
     char entry_value[256]="";
     int exists_flag;

     pthread_mutex_unlock(&settings_lock);

     if(Site_INI!=NULL) {
       iniparser_freedict(Site_INI);
       Site_INI=NULL;
     }
     sprintf(ini_name,"%s/site.ini",SITE_DIR);
     fprintf(stderr, "parsing file: %s\n", ini_name);
     Site_INI=iniparser_load(ini_name);
     if (Site_INI==NULL) {
       fprintf(stderr, "cannot parse file: %s\n", ini_name);
       pthread_mutex_unlock(&settings_lock);
       pthread_exit(NULL);
     }
     ros_settings->ifmode=iniparser_getboolean(Site_INI,"site_settings:ifmode",IF_ENABLED);
     ros_settings->use_beam_table=iniparser_getboolean(Site_INI,"beam_lookup_table:use_table",0);
     sprintf(ros_settings->beam_table_1,iniparser_getstring(Site_INI,"beam_lookup_table:beam_table_1",""));
     sprintf(ros_settings->beam_table_2,iniparser_getstring(Site_INI,"beam_lookup_table:beam_table_2",""));

     trigger_type=iniparser_getint(Site_INI,"site_settings:trigger_type",0);
     fprintf(stdout,"Trigger_type: %d\n",trigger_type); 
     switch(trigger_type) {
       case 0:
         gpsrate=0;
         gpsrate=iniparser_getint(Site_INI,"gps:trigger_rate",GPS_DEFAULT_TRIGRATE);
         fprintf(stdout,"GPSrate: %d\n",gpsrate); 
         break;
       case 1:
       case 2:
         gpsrate=iniparser_getint(Site_INI,"gps:trigger_rate",GPS_DEFAULT_TRIGRATE);
         fprintf(stdout,"GPSrate: %d\n",gpsrate); 
         break;
       default:
         break;
     }


     sprintf(ros_settings->name,"%s",iniparser_getstring(Site_INI,"site_settings:name",SITE_NAME));
     sprintf(entry_value,"%s",iniparser_getstring(Site_INI,"beam_lookup_table:use_table","ERROR"));
     printf("beam_lookup: %s\n",entry_value);
     sprintf(entry_value,"%s",iniparser_getstring(Site_INI,"beam_lookup_table:beam_table_1","ERROR"));
     printf("radar_1: %s\n",entry_value);
     sprintf(entry_value,"%s",iniparser_getstring(Site_INI,"beam_lookup_table:beam_table_2","ERROR"));
     printf("radar_2: %s\n",entry_value);
     pthread_mutex_unlock(&settings_lock);
     pthread_exit(NULL);

}
示例#24
0
char * get_cfg(char *section, char *key) {
	char *value;
	char *query = malloc(strlen(section) + strlen(key) + strlen(":") + 1);
	if (!snprintf(query, (strlen(section) + strlen(key) + strlen(":") + 1), "%s:%s", section, key)) {
		write_to_log(WARNING, "%s - %d - %s - %s:%s", __LINE__, __func__, "Unable to set config query for", section, key);
		goto err;
	}

	if ((value = iniparser_getstring(ini, query, NULL)) == NULL) {
		write_to_log(WARNING, "%s - %d - %s - %s:%s", __LINE__, __func__, "Unable to get config value for", section, key);
	}
	free(query);
	return value;
err:
	free(query);
	return NULL;
}
示例#25
0
/*******************  FUNCTION  *********************/
std::string CMRCmdOptions::getConfigString ( const std::string& key, const std::string& defaultValue )
{
	std::string res;

	if (iniDic == NULL)
	{
		res = defaultValue;
	} else {
		char * tmp = iniparser_getstring(iniDic,key.c_str(),strdup(defaultValue.c_str()));
		res = tmp;
		free(tmp);
	}
	
	if (dumpUsedDic)
		setupDumpEntry(key,res.c_str());
	
	return res;
}
char * iniparser_getsecstring(dictionary * d, char * sec, char * key, char * def)
{
  char * ret = NULL; 
  char * sec_key = NULL;
  if( sec != NULL )
  {
    sec_key = (char*) malloc(sizeof(char)*(strlen(sec)+strlen(key)+2));
    sprintf(sec_key, "%s:%s\0", sec, key);
  } else
  {
    sec_key = (char*) malloc(sizeof(char)*(strlen(key)+2));
    sprintf(sec_key, ":%s\0", key);
  }

  ret = iniparser_getstring(d, sec_key, def);
  free(sec_key);
  return ret;
}
示例#27
0
bool parse_config(const char* conf_path)
{
    dictionary *ini ;
    char *t = NULL ;
	bool ret = true; 
    // Open config file.
    ini = iniparser_load(conf_path);
    if (ini==NULL) 
    {
        fprintf(stderr, "Can't load config file: %s\n", conf_path);
        return false;
    }
    
	t = iniparser_getstring(ini, "dnsconf:filter", REFLECTOR_BPFILTER);
	if(strlen(t)){
		bpfilter =  strdup(t);
	}

/*
	t = iniparser_getstring(ini,"reflector:squid_ip",NULL);
	if( NULL==t || !strlen(t) || strlen(t)>15 )
	{
		fprintf(stderr,"No squid_ip in configure,quit.\n");
		ret = false ;
		goto exit ;
	}
	else
	{
		memcpy(squid_ip,t,strlen(t));
	}
	t = iniparser_getstring(ini,"reflector:dns_reflector","on");
	if(strcmp("on",t)) dns_reflector = false; 

	t = iniparser_getstring(ini,"reflector:url_reflector","on");
	if(strcmp("on",t)) url_reflector = false; 
	
	debug("dns_reflector:%d,url_reflector:%d",dns_reflector,url_reflector);	

*/
	if(NULL != ini)
		iniparser_freedict(ini);
    return ret ;

}
示例#28
0
int config_load(char *ini_file, struct config *config)
{
	assert(config);
	assert(ini_file);

	memset(config, 0, sizeof(struct config));


	dictionary *ini;
	ini = iniparser_load(ini_file);
	if (ini == NULL) {
		DEBUG("cannot parse config file\n");
		return -1;
	}	

	config->daemon = iniparser_getint(ini, "sys:daemon", DEAMON);
	config->debug_info = iniparser_getint(ini, "sys:debug_info", DEBUG_INFO);
	config->debug_warning = iniparser_getint(ini, "sys:debug_warning", DEBUG_WARNING);
	config->debug_trace = iniparser_getint(ini, "sys:debug_trace", DEBUG_TRACE);
	config->debug_err = iniparser_getint(ini, "sys:debug_err", DEBUG_ERR);

	char *remote_ip = iniparser_getstring(ini, "sys:remote_ip", NULL);	
	assert(remote_ip);
	sprintf(config->remote_ip, "%s", remote_ip);


	config->remote_port = iniparser_getint(ini, "sys:remote_port", -1);

	sprintf(config->serial_path, "%s", iniparser_getstring(ini, "sys:serial", SERIAL_PATH));
	sprintf(config->db_path, "%s", iniparser_getstring(ini, "sys:db", DB_PATH));
	sprintf(config->log_info_path, "%s", iniparser_getstring(ini, "sys:log_info", LOG_INFO_PATH));
	sprintf(config->log_warning_path, "%s", iniparser_getstring(ini, "sys:log_warning", LOG_WARNING_PATH));
	sprintf(config->log_trace_path, "%s", iniparser_getstring(ini, "sys:log_trace", LOG_TRACE_PATH));
	sprintf(config->log_err_path, "%s", iniparser_getstring(ini, "sys:log_err", LOG_ERR_PATH));

	config->heartbeat = iniparser_getint(ini, "param:heartbeat", HEARTBEAT);
	config->time_sync_freq = iniparser_getint(ini, "param:time_sync_freq", TIME_SYNC_FREQ);
	config->read_plc_freq = iniparser_getint(ini, "param:read_plc_freq", READ_PLC_FREQ);
	config->sensor_data_push_freq = iniparser_getint(ini, "param:sensor_data_push_freq", SENSOR_DATA_PUSH_FREQ);	

	iniparser_freedict(ini);

	config->BASE.magic = MAGIC_NUMBER;

	return 0;
}
示例#29
0
文件: main.c 项目: TomBraun/server
static void parse_config(const char *filename)
{
  dictionary *d = iniparser_new(filename);
  if (d) {
    load_inifile(d);
    log_debug("reading from configuration file %s\n", filename);

    memdebug = iniparser_getint(d, "eressea:memcheck", memdebug);
#ifdef USE_CURSES
    /* only one value in the [editor] section */
    force_color = iniparser_getint(d, "editor:color", force_color);
#endif
    /* excerpt from [config] (the rest is used in bindings.c) */
    game_name = iniparser_getstring(d, "config:game", game_name);
  } else {
    log_warning("could not open configuration file %s\n", filename);
  }
  global.inifile = d;
}
示例#30
0
void frame_factory_init(const char *tex_cfg_file)
{
    if (frame_cache != NULL) {
        return;
    }

    frame_cache = dictionary_new(0);
    if (frame_cache == NULL) {
        oslFatalError("Not enough memory! %s %d", __FILE__, __LINE__);
    }

    texture_cfg = iniparser_load(tex_cfg_file);
    if (texture_cfg == NULL) {
        oslFatalError("can't load texture config!");
    }

    printf("%s\n", iniparser_getstring(texture_cfg, "bg:f", "not found"));
    return;
}