Ejemplo n.º 1
0
/**
 ******************************************************************************
 * @brief   从配置文件中获取服务器ip字符串
 * @param[out] *pserverip   : 返回服务器ip字符串
 *
 * @retval     -1 失败
 * @retval      0 成功
 ******************************************************************************
 */
int
ini_get_server_ip(char * pserverip)
{
    dictionary  *   ini ;
    char *pstr = NULL;

    ini = iniparser_load(DEFAULT_INI_FILE);
    if (NULL == ini)
    {
        create_example_ini_file();
        ini = iniparser_load(DEFAULT_INI_FILE);
        if (ini == NULL)
        {
            return -1;
        }
    }

    iniparser_dump(ini, NULL);
    pstr = iniparser_getstring(ini, "client:ip", NULL);
    if (pstr == NULL)
    {
        return -1;
    }
    strncpy(pserverip, pstr, 16);   //ip字符串最长16字节

    iniparser_freedict(ini);

    return 0;
}
Ejemplo n.º 2
0
int main(int argc, char * argv[])
{
	int		status ;

	if (argc<2) {
		create_example_ini_file();
		status = parse_ini_file("example.ini");
	} else {
		status = parse_ini_file(argv[1]);
	}
	return status ;
}
Ejemplo n.º 3
0
/*  ...
 */
void CBaIniParse::CTest() {
   CPPUNIT_ASSERT(true);
   create_example_ini_file();
   TBaIniParseHdl hdl = BaIniParseCreate(EXINI);
   CPPUNIT_ASSERT(hdl);

   BaIniParseDump(hdl, stdout);
   BaIniParseDumpIni(hdl, stdout);

   CPPUNIT_ASSERT(BaIniParseGetBool(hdl, "pizza:ham", false));
   CPPUNIT_ASSERT_EQUAL(BaIniParseGetInt(hdl, "pizza:capres", 1), 0);
   CPPUNIT_ASSERT_DOUBLES_EQUAL(BaIniParseGetDouble(hdl, "wine:alcohol", 0.0), 12.5, 0.0001);
   std::string tmp = BaIniParseGetString(hdl, "extra", "BAD");

   CPPUNIT_ASSERT_MESSAGE(BaIniParseGetString(hdl, "extra", "BAD"), tmp == "glass");

   // Look for bad entry and check default
   tmp = BaIniParseGetString(hdl, ":", "BAD");
   CPPUNIT_ASSERT_MESSAGE(BaIniParseGetString(hdl, ":", "BAD"), tmp == "BAD");
}
Ejemplo n.º 4
0
/**
 ******************************************************************************
 * @brief   从配置文件中获取路由器牌子
 * @param[out] *pserverip   : 返回type
 *
 * @retval     -1 失败
 * @retval      0 成功
 ******************************************************************************
 */
int
ini_get_log_type(int *ptype)
{
    dictionary  *   ini ;

    ini = iniparser_load(DEFAULT_INI_FILE);
    if (NULL == ini)
    {
        create_example_ini_file();
        ini = iniparser_load(DEFAULT_INI_FILE);
        if (ini == NULL)
        {
            return -1;
        }
    }

    iniparser_dump(ini, NULL);//stderr
    *ptype = iniparser_getint(ini, "client:type", -1);

    iniparser_freedict(ini);

    return 0;
}
Ejemplo n.º 5
0
/**
 ******************************************************************************
 * @brief   从配置文件中获取是否记入日志标志
 * @param[out] *pserverip   : 返回服务器ip字符串
 *
 * @retval     -1 失败
 * @retval      0 成功
 ******************************************************************************
 */
int
ini_get_log_flag(char *pflag)
{
    dictionary  *   ini ;

    ini = iniparser_load(DEFAULT_INI_FILE);
    if (NULL == ini)
    {
        create_example_ini_file();
        ini = iniparser_load(DEFAULT_INI_FILE);
        if (ini == NULL)
        {
            return -1;
        }
    }

    iniparser_dump(ini, NULL);//stderr
    *pflag = (char)iniparser_getboolean(ini, "client:log", -1);

    iniparser_freedict(ini);

    return 0;
}
Ejemplo n.º 6
0
/**
 ******************************************************************************
 * @brief   从配置文件中获取服务器端口
 * @param[out] *pserverip   : 返回服务器ip字符串
 *
 * @retval     -1 失败
 * @retval      0 成功
 ******************************************************************************
 */
int
ini_get_server_port(unsigned short *pport)
{
    dictionary  *   ini ;

    ini = iniparser_load(DEFAULT_INI_FILE);
    if (NULL == ini)
    {
        create_example_ini_file();
        ini = iniparser_load(DEFAULT_INI_FILE);
        if (ini == NULL)
        {
            return -1;
        }
    }

    iniparser_dump(ini, NULL);
    *pport = (unsigned short)iniparser_getint(ini, "client:port", -1);

    iniparser_freedict(ini);

    return 0;
}
Ejemplo n.º 7
0
/*  ...
 */
void CBaIniParse::CPPTest() {

   CPPUNIT_ASSERT(true);
   create_example_ini_file();
   IBaIniParser *pHdl = IBaIniParserCreate(EXINI);
   CPPUNIT_ASSERT(pHdl);

   pHdl->Dump(stdout);
   pHdl->DumpIni(stdout);

   CPPUNIT_ASSERT(pHdl->GetBool("pizza:ham", false));
   CPPUNIT_ASSERT_EQUAL(pHdl->GetInt("pizza:capres", 1), 0);


   CPPUNIT_ASSERT_EQUAL((uint32_t) pHdl->GetInt("LargerThanInt", 0),
         (uint32_t)2147483650);
   CPPUNIT_ASSERT_EQUAL(pHdl->GetInt("NegInt", 0), -2);

   CPPUNIT_ASSERT_DOUBLES_EQUAL(pHdl->GetDouble("wine:alcohol", 0.0), 12.5, 0.0001);
   CPPUNIT_ASSERT_MESSAGE(pHdl->GetString("extra", "BAD"), pHdl->GetString("extra", "BAD") == "glass");

   // Look for bad entry and check default
   CPPUNIT_ASSERT_MESSAGE(pHdl->GetString(":", "BAD"), pHdl->GetString(":", "BAD") == "BAD");
}
Ejemplo n.º 8
0
/**
 ******************************************************************************
 * @brief   从配置文件中获取文件合并信息
 * @param[out] *pinfo   : 返回info
 *
 * @retval     -1 失败
 * @retval      0 成功
 ******************************************************************************
 */
int
ini_get_info(filejoint_ini_t *pinfo)
{
    dictionary  *   ini ;
    char *pstr = NULL;
    char ftmp[32];
    int i;

    memset(pinfo, 0x00, sizeof(*pinfo));

    ini = iniparser_load(DEFAULT_INI_FILE);
    if (NULL == ini)
    {
        create_example_ini_file();
        ini = iniparser_load(DEFAULT_INI_FILE);
        if (ini == NULL)
        {
            return -1;
        }
    }

    iniparser_dump(ini, NULL);//stderr
    pinfo->files = iniparser_getint(ini, "cfg:Files", -1);
    if ((pinfo->files > DEFAULT_MAX_FILE) || (pinfo->files <= 0))
    {
        iniparser_freedict(ini);
        return -1;
    }
    pinfo->blank = iniparser_getint(ini, "cfg:Blank", -1);
    if (pinfo->blank < 0)
    {
        iniparser_freedict(ini);
        return -1;
    }
    if (pinfo->blank > 255)
    {
        pinfo->blank = 255;
    }
    pinfo->islog = iniparser_getint(ini, "cfg:IsLog", -1);
    if (pinfo->islog == -1)
    {
        iniparser_freedict(ini);
        return -1;
    }
    pstr = iniparser_getstring(ini, "cfg:LogFile", NULL);
    if (pstr == NULL)
    {
        iniparser_freedict(ini);
        return -1;
    }
    strncpy(pinfo->logfile, pstr, sizeof(pinfo->logfile));

    pstr = iniparser_getstring(ini, "cfg:OutFile", NULL);
    if (pstr == NULL)
    {
        strncpy(pinfo->outfile, DEFAULT_DEST_FILE, sizeof(pinfo->outfile));
    }
    else
    {
        strncpy(pinfo->outfile, pstr, sizeof(pinfo->logfile));
    }

    /* 扫描所以文件 */
    for (i = 0; i < pinfo->files; i++)
    {
        sprintf(ftmp, "f%d:FileName", i + 1);
        pstr = iniparser_getstring(ini, ftmp, NULL);
        if (pstr == NULL)
        {
            iniparser_freedict(ini);
            return -1;
        }
        strncpy(pinfo->file[i].filename, pstr, sizeof(pinfo->file[i].filename));

        sprintf(ftmp, "f%d:FileMaxSize", i + 1);
        pinfo->file[i].filemaxsize = iniparser_getint(ini, ftmp, -1);
        if (pinfo->file[i].filemaxsize == -1)
        {
            iniparser_freedict(ini);
            return -1;
        }
    }

    iniparser_freedict(ini);

    return 0;
}