static int RLog_LoadConf(PCOSA_DML_RLOG conf) { UtopiaContext ctx; char param[256]; if (!Utopia_Init(&ctx)) return -1; memset(conf, 0, sizeof(*conf)); Utopia_RawGet(&ctx, NULL, RLOG_CFG_ENABLE, param, sizeof(param)); if (atoi(param) == 1) conf->Enable = TRUE; else conf->Enable = FALSE; Utopia_RawGet(&ctx, NULL, RLOG_CFG_HOST, conf->Host, sizeof(conf->Host)); Utopia_RawGet(&ctx, NULL, RLOG_CFG_PORT, param, sizeof(param)); conf->Port = atoi(param); /* could not change */ conf->Protocol = COSA_DML_RLOG_PROTO_UDP; snprintf(conf->Patterns, sizeof(conf->Patterns), "*.*"); Utopia_Free(&ctx, 0); return 0; }
ANSC_STATUS CosaDmlNeighdiscIfGetEntry ( ANSC_HANDLE hContext, ULONG ulIndex, PCOSA_DML_NEIGHDISC_IF_FULL pEntry ) { UtopiaContext utctx = {0}; char out[256] = {0}; int need_write = 0; if (!Utopia_Init(&utctx)) return ANSC_STATUS_FAILURE; memset(out, 0, sizeof(out)); Utopia_RawGet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_inst_num",out,sizeof(out)); if (!out[0] || !(atoi(out))) { /*the first time system boots up*/ need_write = 1; strcpy(out, "1"); Utopia_RawSet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_inst_num",out); } g_neighdisc_interface.Cfg.InstanceNumber = atoi(out); memset(out, 0, sizeof(out)); Utopia_RawGet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_alias",out,sizeof(out)); if (!out[0]) { /*the first time system boots up*/ need_write = 1; strcpy(out, "InterfaceSetting1"); Utopia_RawSet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_alias",out); } safe_strcpy(g_neighdisc_interface.Cfg.Alias, out, sizeof(g_neighdisc_interface.Cfg.Alias)); /*we don't support writing to these variables*/ g_neighdisc_interface.Cfg.bEnabled = TRUE; g_neighdisc_interface.Cfg.bNUDEnable = TRUE; g_neighdisc_interface.Cfg.bRSEnable = TRUE; Utopia_RawGet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_RetransTimer",out,sizeof(out)); if (!out[0] || !(atoi(out))) g_neighdisc_interface.Cfg.RetransTimer = 1000; else g_neighdisc_interface.Cfg.RetransTimer = atoi(out); Utopia_RawGet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_RtrSolicitationInterval",out,sizeof(out)); if (!out[0] || !(atoi(out))) g_neighdisc_interface.Cfg.RtrSolicitationInterval = 4000; else g_neighdisc_interface.Cfg.RtrSolicitationInterval = atoi(out); Utopia_RawGet(&utctx,NULL,SYSCFG_FORMAT_NEIGHDISC_IF"_MaxRtrSolicitations",out,sizeof(out)); if (!out[0] || !(atoi(out))) g_neighdisc_interface.Cfg.MaxRtrSolicitations = 3; else g_neighdisc_interface.Cfg.MaxRtrSolicitations = atoi(out); Utopia_Free(&utctx,need_write); AnscCopyMemory(pEntry, &g_neighdisc_interface, sizeof(*pEntry)); /*handle backend*/ _apply_kernel_params(&pEntry->Cfg); return ANSC_STATUS_SUCCESS; }