示例#1
0
bool
netif_add_ipv6_address(netif_t *netif, const ipv6_address_t *address, const ipv6_address_t *netmask, const ipv6_state_t state)
{
    ipv6_alias_t *ipv6;
    
    if (LOG_ENABLE(LOG_NETWORK_INTERFACE, LOG_INFO)) {
        LOG_IPV6(address, address_str);
        LOG_IPV6(netmask, netmask_str);
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_ipv6_address:   address = %s", address_str));
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_ipv6_address:   netmask = %s", netmask_str));
    }
    
    /**
     * Concatinate:
     *    _____________      __________________
     *   |             |    |                  |
     *   | netif->ipv6 |===>| old ipv6 or NULL |
     *   |_____________|    |__________________|
     *    _____________      __________      __________________
     *   |             |    |          |    |                  |
     *   | netif->ipv6 |===>| new ipv6 |===>| old ipv6 or NULL |
     *   |_____________|    |__________|    |__________________|
     */
    ipv6            = netif_create_ipv6_alias();
    ipv6->next      = netif->ipv6;
    netif->ipv6     = ipv6;

    ipv6->address   = address   != NULL ? *address   : IPV6_ADDRESS_NULL;
    ipv6->netmask   = netmask   != NULL ? *netmask   : IPV6_ADDRESS_NULL;
    ipv6->state     = state;
    
    return true;
}
示例#2
0
// initialize basic systems for command line help / output
static void ConsolePrintInitialize(const std::string& configSource, bool safemode)
{
	spring_clock::PushTickRate(false);
	spring_time::setstarttime(spring_time::gettime(true));
	LOG_DISABLE();
	FileSystemInitializer::PreInitializeConfigHandler(configSource, safemode);
	FileSystemInitializer::InitializeLogOutput();
	LOG_ENABLE();
}
示例#3
0
bool
netif_add_mac_address(netif_t *netif, const mac_address_t *mac)
{
    if (LOG_ENABLE(LOG_NETWORK_INTERFACE, LOG_INFO)) {
        LOG_MAC(mac, mac_str);
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_mac_address:        mac = %s", mac_str));
    }
    netif->mac = *mac;
    
    return true;
}
示例#4
0
文件: main.cpp 项目: nixtux/spring
void ParseCmdLine(int argc, char* argv[], std::string& scriptName)
{
	#undef  LOG_SECTION_CURRENT
	#define LOG_SECTION_CURRENT LOG_SECTION_DEFAULT

#ifndef WIN32
	if (!FLAGS_nocolor && (getenv("SPRING_NOCOLOR") == nullptr)) {
		// don't colorize, if our output is piped to a diff tool or file
		if (isatty(fileno(stdout)))
			log_console_colorizedOutput(true);
	}
#endif
	if (FLAGS_sync_version) {
		LOG("%s", (SpringVersion::GetSync()).c_str());
		exit(0);
	}

	if (argc >= 2)
		scriptName = argv[1];

	if (scriptName.empty() && !FLAGS_list_config_vars) {
		gflags::ShowUsageWithFlags(argv[0]);
		exit(1);
	}

	if (FLAGS_isolation)
		dataDirLocater.SetIsolationMode(true);

	if (!FLAGS_isolation_dir.empty()) {
		dataDirLocater.SetIsolationMode(true);
		dataDirLocater.SetIsolationModeDir(FLAGS_isolation_dir);
	}


	if (FLAGS_list_config_vars) {
		LOG_DISABLE();
		FileSystemInitializer::PreInitializeConfigHandler(FLAGS_config);
		FileSystemInitializer::InitializeLogOutput();
		LOG_ENABLE();
		ConfigVariable::OutputMetaDataMap();
		exit(0);
	}

	//LOG("Run: %s", cmdLine.GetCmdLine().c_str());
	FileSystemInitializer::PreInitializeConfigHandler(FLAGS_config);

	#undef  LOG_SECTION_CURRENT
	#define LOG_SECTION_CURRENT LOG_SECTION_DEDICATED_SERVER
}
示例#5
0
bool
netif_add_vid(netif_t *netif, const uint16_t vid)
{
    vlan_t *vlan;
    
    if (LOG_ENABLE(LOG_NETWORK_INTERFACE, LOG_INFO)) {
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_vlan:               vid = %u", vid));
    }
    
    if (netif->vlan != NULL) {
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_WARNING, ("overwrite VLAN       vid = %u", netif->vlan->vid));
    }
    
    vlan = netif_create_vlan();
    netif->vlan = vlan;
    
    return true;
}
示例#6
0
bool
netif_add_ipv4_address(netif_t *netif, const ipv4_address_t *address, const ipv4_address_t *netmask, const ipv4_address_t *broadcast, const ipv4_address_t *gateway)
{
    ipv4_alias_t *ipv4;
    
    if (LOG_ENABLE(LOG_NETWORK_INTERFACE, LOG_INFO)) {
        LOG_IPV4(address,   address_str);
        LOG_IPV4(broadcast, broadcast_str);
        LOG_IPV4(netmask,   netmask_str);
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_ipv4_address:   address = %s", address_str));
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_ipv4_address:   netmask = %s", netmask_str));
        LOG_PRINTLN(LOG_NETWORK_INTERFACE, LOG_INFO, ("add_ipv4_address: broadcast = %s", broadcast_str));
    }
    
    /**
     * Concatinate:
     *    _____________      __________________
     *   |             |    |                  |
     *   | netif->ipv4 |===>| old ipv4 or NULL |
     *   |_____________|    |__________________|
     *    _____________      __________      __________________
     *   |             |    |          |    |                  |
     *   | netif->ipv4 |===>| new ipv4 |===>| old ipv4 or NULL |
     *   |_____________|    |__________|    |__________________|
     */
    ipv4            = netif_create_ipv4_alias();
    ipv4->next      = netif->ipv4;
    netif->ipv4     = ipv4;
    
    ipv4->address   = address   != NULL ? *address   : IPV4_ADDRESS_NULL;
    ipv4->netmask   = netmask   != NULL ? *netmask   : IPV4_ADDRESS_NULL;
    ipv4->broadcast = broadcast != NULL ? *broadcast : IPV4_ADDRESS_NULL;
    ipv4->gateway   = gateway   != NULL ? *gateway   : IPV4_ADDRESS_NULL;

    return true;
}
示例#7
0
void ParseCmdLine(int argc, char* argv[], std::string* script_txt)
{
	#undef  LOG_SECTION_CURRENT
	#define LOG_SECTION_CURRENT LOG_SECTION_DEFAULT

	std::string binaryname = argv[0];

	CmdLineParams cmdline(argc, argv);
	cmdline.SetUsageDescription("Usage: " + binaryname + " [options] path_to_script.txt");
	cmdline.AddSwitch(0,   "sync-version",       "Display program sync version (for online gaming)");
	cmdline.AddString('C', "config",             "Exclusive configuration file");
	cmdline.AddSwitch(0,   "list-config-vars",   "Dump a list of config vars and meta data to stdout");
	cmdline.AddSwitch('i', "isolation",          "Limit the data-dir (games & maps) scanner to one directory");
	cmdline.AddString(0,   "isolation-dir",      "Specify the isolation-mode data-dir (see --isolation)");
	cmdline.AddSwitch(0,   "nocolor",            "Disables colorized stdout");
	cmdline.AddSwitch('q', "quiet",              "Ignore unrecognized arguments");

	try {
		cmdline.Parse();
	} catch (const CmdLineParams::unrecognized_option& err) {
		LOG_L(L_ERROR, "%s\n", err.what());
		if (!cmdline.IsSet("quiet")) {
			cmdline.PrintUsage();
			exit(EXIT_FAILURE);
		}
	}

#ifndef WIN32
	if (!cmdline.IsSet("nocolor") && (getenv("SPRING_NOCOLOR") == NULL)) {
		// don't colorize, if our output is piped to a diff tool or file
		if (isatty(fileno(stdout)))
			log_console_colorizedOutput(true);
	}
#endif

	if (cmdline.IsSet("help")) {
		cmdline.PrintUsage();
		exit(0);
	}
	if (cmdline.IsSet("version")) {
		LOG("%s", (SpringVersion::GetFull()).c_str());
		exit(0);
	}
	if (cmdline.IsSet("sync-version")) {
		LOG("%s", (SpringVersion::GetSync()).c_str());
		exit(0);
	}


	*script_txt = cmdline.GetInputFile();
	if (script_txt->empty() && !cmdline.IsSet("list-config-vars")) {
		cmdline.PrintUsage();
		exit(1);
	}

	if (cmdline.IsSet("isolation")) {
		dataDirLocater.SetIsolationMode(true);
	}

	if (cmdline.IsSet("isolation-dir")) {
		dataDirLocater.SetIsolationMode(true);
		dataDirLocater.SetIsolationModeDir(cmdline.GetString("isolation-dir"));
	}

	const std::string configSource = cmdline.IsSet("config") ? cmdline.GetString("config") : "";

	if (cmdline.IsSet("list-config-vars")) {
		LOG_DISABLE();
		FileSystemInitializer::PreInitializeConfigHandler(configSource);
		FileSystemInitializer::InitializeLogOutput();
		LOG_ENABLE();
		ConfigVariable::OutputMetaDataMap();
		exit(0);
	}

	LOG("Run: %s", cmdline.GetCmdLine().c_str());
	FileSystemInitializer::PreInitializeConfigHandler(configSource);

	#undef  LOG_SECTION_CURRENT
	#define LOG_SECTION_CURRENT LOG_SECTION_DEDICATED_SERVER
}