示例#1
0
static void login_loop(void)
{
	int attempts;
	for (attempts = 0; attempts < 10; attempts++) {
		if (!try_login())
			return;
		if (!checkcarrier())
			return;
	}
	DDPut(sd[maxattemptsstr]);
}
示例#2
0
bool IEngine::start()
{
    isRunning = false;
    if (try_login())
    {
        pre_run();
        isRunning = true;
        if (reader.get() == nullptr)
        {
            throw std::runtime_error("reader is not inited! please call init() before start()");
        }
        std::signal(SIGTERM, IEngine::signal_handler);
        std::signal(SIGINT, IEngine::signal_handler);
        std::signal(SIGHUP, IEngine::signal_handler);
        std::signal(SIGQUIT, IEngine::signal_handler);
        std::signal(SIGKILL, IEngine::signal_handler);
        set_reader_thread();
    }
    return isRunning;
}
示例#3
0
void IEngine::on_engine_open()
{
    KF_LOG_INFO(logger, "[CMD] ENGINE OPEN SERVICE!");
    if (is_logged_in())
    {
        KF_LOG_INFO(logger, "already running!");
    }
    else
    {
        if (try_login())
        {
            pre_run();
            KF_LOG_INFO(logger, "restarted!");
        }
        else
        {
            KF_LOG_ERROR(logger, "failed to restart!");
        }
    }
}