コード例 #1
0
void SaveConfig(const char *cfgname)
{
	char filename[MAX_PATH] = {0}, *filename_ext, *backupname_ext;
	size_t len;
	FILE *f;

	snprintf(filename, sizeof(filename) - 4, "%s", cfgname[0] ? cfgname : MAIN_CONFIG_FILENAME); // use config.cfg if no params was specified

	COM_ForceExtensionEx (filename, ".cfg", sizeof (filename));

	if (cfg_backup.integer) {
		if (cfg_use_home.integer)	// homedir
			filename_ext = va("%s/%s/%s", com_homedir, (strcmp(com_gamedirfile, "qw") == 0 || !cfg_use_gamedir.integer) ? "" : com_gamedirfile, filename);
		else	// basedir
			filename_ext = va("%s/%s/configs/%s", com_basedir, (strcmp(com_gamedirfile, "qw") == 0 || !cfg_use_gamedir.integer) ? "ezquake" : com_gamedirfile, filename);

		if ((f = fopen(filename_ext, "r"))) {
			fclose(f);
			len = strlen(filename_ext) + 5;
			backupname_ext = (char *) Q_malloc(len);
			snprintf (backupname_ext, len, "%s.bak", filename_ext);

			if ((f = fopen(backupname_ext, "r"))) {
				fclose(f);
				remove(backupname_ext);
			}

			rename(filename_ext, backupname_ext);
			Q_free(backupname_ext);
		}
	}

	DumpConfig(filename);
	filesystemchanged = true; // fix bug 2359900
}
コード例 #2
0
RobotConfig::RobotConfig() {
	std::printf("2135: RobotConfig -- LoadConfig Started  --\n");
	LoadConfig();
	std::printf("2135: RobotConfig -- LoadConfig Finished --\n");
	std::printf("2135: RobotConfig -- DumpConfig Started  --\n");
	DumpConfig();
	std::printf("2135: RobotConfig -- DumpConfig Finished --\n");
}
コード例 #3
0
ファイル: config_manager.c プロジェクト: jogi1/camquake
void SaveConfig_f(void)
{
	char filename[MAX_PATH] = {0}, *filename_ext, *backupname_ext;
	const char* arg1;
	size_t len;
	FILE *f;


	arg1 = COM_SkipPath(Cmd_Argv(1));
	snprintf(filename, sizeof(filename) - 4, "%s", arg1[0] ? arg1 : "config.cfg"); // use config.cfg if no params was specified

	COM_ForceExtensionEx (filename, ".cfg", sizeof (filename));

	if (cfg_backup.integer) {
		if (cfg_use_home.integer) // use home dir for cfg
			filename_ext = va("%s/%s", com_homedir, filename);
		else // use ezquake dir
			filename_ext = va("%s/ezquake/configs/%s", com_basedir, filename);

		if ((f = fopen(filename_ext, "r"))) {
			fclose(f);
			len = strlen(filename_ext) + 5;
			backupname_ext = (char *) Q_malloc(len);
			snprintf (backupname_ext, len, "%s.bak", filename_ext);

			if ((f = fopen(backupname_ext, "r"))) {
				fclose(f);
				remove(backupname_ext);
			}

			rename(filename_ext, backupname_ext);
			Q_free(backupname_ext);
		}
	}

	DumpConfig(filename);
	Com_Printf("Saving configuration to %s\n", filename);
}
コード例 #4
0
ファイル: TestPatternBase.cpp プロジェクト: bagumondigi/fpp
int TestPatternBase::Init(Json::Value config)
{
	if (m_cycleMS != config["cycleMS"].asInt())
	{
		m_cycleMS = config["cycleMS"].asInt();
		m_nextCycleTime = GetTime() + (m_cycleMS * 1000);
	}

	if (m_channelSetStr != config["channelSet"].asString())
	{
		m_channelSetStr = config["channelSet"].asString();
		SetChannelSet(m_channelSetStr);
		m_configChanged = 1;
	}

	if (m_configChanged)
		SetupTest();

	m_testEnabled = 1;

	DumpConfig();

	return 1;
}
コード例 #5
0
ファイル: clientmain.cpp プロジェクト: graydon/stunserver
int main(int argc, char** argv)
{
    CCmdLineParser cmdline;
    ClientCmdLineArgs args;
    StunClientLogicConfig config;
    ClientSocketConfig socketconfig;
    bool fError = false;
    uint32_t loglevel = LL_ALWAYS;
    

#ifdef DEBUG
    loglevel = LL_DEBUG;
#endif
    Logging::SetLogLevel(loglevel);
    

    cmdline.AddNonOption(&args.strRemoteServer);
    cmdline.AddNonOption(&args.strRemotePort);
    cmdline.AddOption("localaddr", required_argument,  &args.strLocalAddr);
    cmdline.AddOption("localport", required_argument, &args.strLocalPort);
    cmdline.AddOption("mode", required_argument, &args.strMode);
    cmdline.AddOption("family", required_argument, &args.strFamily);
    cmdline.AddOption("protocol", required_argument, &args.strProtocol);
    cmdline.AddOption("verbosity", required_argument, &args.strVerbosity);
    cmdline.AddOption("help", no_argument, &args.strHelp);

    if (argc <= 1)
    {
        PrintUsage(true);
        return -1;
    }
    
    cmdline.ParseCommandLine(argc, argv, 1, &fError);
    
    if (args.strHelp.length() > 0)
    {
        PrintUsage(false);
        return -2;
    }
    
    if (fError)
    {
        PrintUsage(true);
        return -3;
    }
    

    if (args.strVerbosity.length() > 0)
    {
        int level = atoi(args.strVerbosity.c_str());
        if (level >= 0)
        {
            Logging::SetLogLevel(level);
        }
    }

    if (FAILED(CreateConfigFromCommandLine(args, &config, &socketconfig)))
    {
        Logging::LogMsg(LL_ALWAYS, "Can't start client");
        PrintUsage(true);
        return -4;
    }

    DumpConfig(config, socketconfig);
    
    if (socketconfig.socktype == SOCK_STREAM)
    {
        TcpClientLoop(config, socketconfig);
    }
    else
    {
        UdpClientLoop(config, socketconfig);
    }

    return 0;
}