void tst_ServerWorkerTests::login(QString name, QString pass)
{
    LoginRequest loginRequest;
    loginRequest.set_name(name);
    loginRequest.set_password(pass);

    mc->addMessage( &loginRequest );
    QByteArray ba = mc->toArray();
    worker->readyRead(ba);
    mc->Clear();
}
Exemple #2
0
void HSRequest::SendLoginRequest(const char* channe_UUID)
{
	//开始登陆

	MobClickCpp::beginEvent("HSLoginTime");

	CCLog("WEIBO_OPENID %s",channe_UUID);
	LoginRequest* r = LoginRequest::default_instance().New();
    r->set_wb_uuid(channe_UUID);
    r->set_channel(HSJava::ShaderJava()->GetChannel());
    r->set_version(HSJava::ShaderJava()->GetVersion());
	HS_FILTER_REQUEST(r);
}
Exemple #3
0
void Driver::LoginToGate()
{
    LoginRequest request;

    EnumServerType type = ST_GameServer;
    request.set_server_type(type);

    char *account = "just_for_test";
    request.set_account(account);

    std::string tmp(account + std::to_string(type));
    std::string key = GetMD5((md5byte *)tmp.c_str(), tmp.size());
    request.set_secure_key(key);

    SendToGate(SERVER_LOGIN_REQUEST, request);
}
void tst_ServerWorkerTests::loginChangesUserStatus()
{
    LoginRequest loginRequest;
    LoginRequestResponse loginResponse;

    loginRequest.set_name(QStringLiteral("testuser"));
    loginRequest.set_password(QStringLiteral("some_password"));

    mc->addMessage( &loginRequest );

    QByteArray ba = mc->toArray();
    worker->readyRead(ba);

    mc->Clear();
    QVERIFY(mc->fromArray(binaryMessage));
    QVERIFY(loginResponse.fromArray(mc->getCapsule(0).getData()));
    QVERIFY(loginResponse.replay() == protbuf::Replay::UserAlreadyLogged);
}
void tst_ServerWorkerTests::loginToServerBadUser()
{
    LoginRequest loginRequest;
    LoginRequestResponse loginResponse;

    loginRequest.set_name(QStringLiteral("bad_user"));
    loginRequest.set_password(QStringLiteral("bad_passwd"));

    mc->addMessage( &loginRequest );

    QByteArray ba = mc->toArray();
    worker->readyRead(ba);

    mc->Clear();
    QVERIFY(mc->fromArray(binaryMessage));
    QVERIFY(loginResponse.fromArray(mc->getCapsule(0).getData()));
    QVERIFY(loginResponse.replay() == protbuf::Replay::LoginDeny);
}
Exemple #6
0
int SvCon::doRegister(){
	int ret = 0;
	LoginRequest lgr;
	lgr.set_type(m_sv_type);
	lgr.set_id(ef::itostr(m_svid));
	string reqbody;
	lgr.SerializeToString(&reqbody);	
	head h;
	h.cmd = LOGIN_REQ;
	h.magic = MAGIC_NUMBER;
	string req;
	constructPacket(h, reqbody, req);	
	ALogError(m_serv->getConfig().LogName) << "<action:server_register> "
		"<event_loop:" << getEventLoop() << "> <conid:"
		<< getId() << "> <con_serv_id:" << m_con_serv_id
		<< ">";
	ret = sendMessage(req);
	return ret;
}
void MainLayer::menuCloseCallback(Object* pSender)
{
	SocketClient* socketClient = SocketClient::createSocketClient("127.0.0.1",12345);
	socketClient->retain();
	SocketMgr::set(socketClient);

	socketClient = SocketMgr::get();

	auto callback = std::bind(&MainLayer::onLoginResponse,this,std::placeholders::_1);
	socketClient->registCallbackT<LoginResponse>(1,callback);

	if (socketClient->connect())
	{
		LoginRequest* loginRequestMessage = new LoginRequest();
		loginRequestMessage->set_username("cmzx3444");
		loginRequestMessage->set_password("123456");
		socketClient->send(loginRequestMessage);

		loginRequestMessage = new LoginRequest();
		loginRequestMessage->set_username("cmzx3444");
		loginRequestMessage->set_password("123456");
		socketClient->send(loginRequestMessage);

		loginRequestMessage = new LoginRequest();
		loginRequestMessage->set_username("cmzx3444");
		loginRequestMessage->set_password("123456");
		socketClient->send(loginRequestMessage);

		loginRequestMessage = new LoginRequest();
		loginRequestMessage->set_username("cmzx3444");
		loginRequestMessage->set_password("123456");
		socketClient->send(loginRequestMessage);
	}
	else
	{
		socketClient->release();
	}

    Director::getInstance()->end();

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    exit(0);
#endif
}
Exemple #8
0
void LoginRequest::MergeFrom(const LoginRequest& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_wb_uuid()) {
      set_wb_uuid(from.wb_uuid());
    }
    if (from.has_channel()) {
      set_channel(from.channel());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
}
std::shared_ptr<sb::messaging::Message> TibiaClient::handleLoginRequest(const char* data, size_t size)
{
    using namespace sb::messaging;

    LoginRequest l;
    size_t numBytesRead = l.fromBinary(data, size);
    if(numBytesRead == 0)
    {
        std::cout << "Failed to handle login request." << std::endl;
        return std::make_shared<LoginResponse>();
    }



    std::cout << "Handling login request: " << std::endl;
    std::cout << "\tAccount name: " << l.getAccountName() << std::endl;
    std::cout << "\tPassword: "******"Cannot login. Not in main menu." << std::endl;
        return std::make_shared<LoginResponse>();
    }

    for(const Gui::Button& b : mGui.getButtons())
    {
        if(b.text == "Login")
        {
            mInput->sendString(l.getAccountName());
            mInput->sendKey(VK_TAB);
            mGraphicsMonitorReader->getNewFrame();
            mGraphicsMonitorReader->getNewFrame();
            mInput->sendString(l.getPassword());
            mInput->sendKey(VK_RETURN);

            OVERLAPPED* overlapped = new OVERLAPPED();
            *overlapped = {0};
            for(size_t i = 0; i < 10; i++)
            {
                Frame frame = mGraphicsMonitorReader->getNewFrame();
                for(auto it = frame.textDraws->begin(); it != frame.textDraws->end(); it++)
                {
                    const TextDraw& text = *it;
                    TextBuilder builder(text, frame.width, frame.height);
                    for(const Text& t : builder.getText())
                    {
                        if(t.string == "Select Character")
                        {
                            auto response = std::make_shared<LoginResponse>(sb::RequestResult::SUCCESS);

                            it++;
                            while(it != frame.textDraws->end())
                            {
                                std::list<Text> character = TextBuilder(*it, frame.width, frame.height).getText();
                                if(character.size() != 2)
                                    break;
                                if(character.front().string == "Account Status:")
                                    break;

                                response->addCharacter(character.front().string, character.back().string);

                                it++;
                            }
                            return response;
                        }
                    }
                }
            }

            return std::make_shared<LoginResponse>();
        }
    }

    std::cout << "Failed to login. Login screen not visible." << std::endl;
    return std::make_shared<LoginResponse>();
}
Exemple #10
0
    int32	login(const std::string& cid, const std::string& pwd,
                  int enc, const std::string& version) {
        int32 ret = 0;
        LoginRequest lgr;
        lgr.set_cid(cid);
        lgr.set_enc(enc);
        lgr.set_version(version);

        std::string s = cid + pwd + version + ef::itostr(time(NULL));
        std::string tk;
        ef::MD5Hex(tk, (const ef::uint8*)s.data(), s.size());
        lgr.set_token(tk);

        m_cid = cid;
        m_pwd = pwd;
        LoginResponse lgresp;
        std::string req;
        lgr.SerializeToString(&req);

        std::string rsp;
        ret = send_req(100, req);

        if(ret < 0) {
            LOG_OUT << "test_login send fail, cid:" << m_cid
                    << std::endl;
            return  ret;
        }

        int32 cmd = 0;
        ret = recv_resp(cmd, rsp);
        if(ret <= 0) {
            LOG_OUT << "login recv_resp fail, cid:" << m_cid
                    << std::endl;
            return ret;
        }
        //redirect
        if(cmd == 1001) {
            RedirectResponse rdresp;
            rdresp.ParseFromString(rsp);
            disconnect();
            if(rdresp.status() != 0 || !rdresp.addrs_size()) {
                return -1;
            }
            int i = 0;
            for(; i < rdresp.addrs_size(); ++i) {
                const Address& a = rdresp.addrs(i);
                LOG_OUT << "test_login redirect, cid:"
                        << m_cid << ", addr:" << a.ip()
                        << ", port:" << a.port() << std::endl;
                ret = bind_connect(a.ip(), a.port(),
                                   m_local_ip, m_local_port);
                if(ret < 0) {
                    LOG_OUT << "test_login redirect fail, cid:"
                            << m_cid << std::endl;
                } else {
                    break;
                }
            }
            if(i < rdresp.addrs_size())
                return	login(m_cid, pwd, enc, version);
        }

        lgresp.ParseFromString(rsp);
        if(lgresp.status() == 0) {
            LOG_OUT << "test_login success: cid:" << m_cid
                    << ", sessid:" << lgresp.sessid() << std::endl;
        } else {
            LOG_OUT << "test_login fail: cid:" << m_cid
                    << ", status:"
                    << lgresp.status() << std::endl;
            return -1;
        }
        m_sessid = lgresp.sessid();
        ++success_count;
        return	ret;
    }
Exemple #11
0
int CliCon::handleLoginRequest(const head& h, const string& req, 
	string& resp){
	TimeRecorder t("CliCon::handleLoginRequest");
	int ret = 0;
	int i = 0;
	LoginRequest lgreq;
	LoginResponse lgresp;	
	string tk;
	string sessid;
	string enctk;

	if(!lgreq.ParseFromArray(req.data(), req.size())){
		ret = INPUT_FORMAT_ERROR;
		goto exit;
	}
	//if login, return the sessid
	if(m_status == STATUS_LOGIN){
		goto exit;
	}

	m_login_time = time(NULL);	
	m_sess.set_id(lgreq.id());
	m_sess.set_type(lgreq.type());
	m_sess.set_consvid(m_serv->getConfig().ID);
	m_sess.set_version(lgreq.version());

	ret = checkType(lgreq.type());

	if(ret < 0){
		ret = INVALID_TYPE;
		goto exit;
	}

	decorationName(m_serv->getConfig().ID, getId(), lgreq.id(), sessid);
	m_sess.set_sessid(sessid);


	for(; i < lgreq.kvs_size(); ++i){
		*(m_sess.add_kvs()) = lgreq.kvs(i);
	}

	if(lgreq.type() > 0){
		TypeMap::addServer(this);
	}
	
	ret = updateSession();

	if(ret < 0){
		ret = CREATE_SESSION_FAIL;
	}
exit:
	if(ret < 0){
		lgresp.set_status(ret);
	}else{
		m_status = STATUS_LOGIN;
		lgresp.set_status(0);
	}

	lgresp.set_sessid(m_sess.sessid());

	lgresp.SerializeToString(&resp);
	ALogError("ConnectServer") << "<action:client_login> <id:" 
		<< m_sess.id() << "> <version:" << lgreq.version() 
		<< "> <type:" << lgreq.type()
		<< "> <token:" << lgreq.token()  
		<< "> <sessid:" << m_sess.sessid() << "> <status:"
		<< ret << "> <errstr:" << getErrStr(ret) << ">";
	return ret;
}
Exemple #12
0
	int32	login(const std::string& cid, const std::string& version, 
		const std::string& token){
		int32 ret = 0;
		LoginRequest lgr;

		string enctk;

		if(token.size()){
			ef::encrypt(token, enctk);	
		}	

		lgr.set_id(cid);		
		lgr.set_type(-1);
		lgr.set_version(version);	
		lgr.set_token(enctk);
	
		m_cid = cid;
		m_token = token;
		LoginResponse lgresp;
		std::string req;
		lgr.SerializeToString(&req);	
	
		std::string rsp;
		ret = send_req(100, req);

		if(ret < 0){
			LOG_OUT << "test_login send fail, cid:" << m_cid 
				<< std::endl;
			return  ret;
		}
		
		int32 cmd = 0;
		ret = recv_resp(cmd, rsp);	
		if(ret <= 0){
			LOG_OUT << "login recv_resp fail, cid:" << m_cid
				<< std::endl;
			return ret;
		}
		//redirect
		if(cmd == 1001){
			RedirectResponse rdresp;
			rdresp.ParseFromString(rsp);
			disconnect();
			if(rdresp.status() != 0 || !rdresp.addrs_size()){
				return -1;
			}
			int i = 0;
			for(; i < rdresp.addrs_size(); ++i){
				const Address& a = rdresp.addrs(i);
				LOG_OUT << "test_login redirect, cid:"
					<< m_cid << ", addr:" << a.ip()
					<< ", port:" << a.port() << std::endl;
				ret = bind_connect(a.ip(), a.port(), 
					m_local_ip, m_local_port);
				if(ret < 0){
					LOG_OUT << "test_login redirect fail, cid:"
						<< m_cid << std::endl;
				}else{
					break;
				}
			}
			if(i < rdresp.addrs_size())
				return	login(m_cid, version, token);
		}

		lgresp.ParseFromString(rsp);
		if(lgresp.status() == 0){
			LOG_OUT << "test_login success: cid:" << m_cid 
				<< ", sessid:" << lgresp.sessid() << std::endl;	
		}else{
			LOG_OUT << "test_login fail: cid:" << m_cid 
				<< ", status:" 
				<< lgresp.status() << std::endl;	
			return -1;
		}
		m_sessid = lgresp.sessid();
		++success_count;
		if(token.size()){
			m_key = token + m_sessid;
		}
		return	ret;
	}