Commit 381bb481 authored by jan.koester's avatar jan.koester
Browse files

use new api

parent 197db28f
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -36,13 +36,11 @@ const uint8_t payload_template[A2S_INFO_PAYLOAD_LEN_WITH_CHALLENGE] = {
    'S', 'o', 'u', 'r', 'c', 'e', ' ', 'E', 'n', 'g', 'i', 'n', 'e', ' ', 'Q', 'u', 'e', 'r', 'y', '\0'
};

HldsView::HldsView(const char *addr,int port){
HldsView::HldsView(const char *addr,int port) : clientSocket(addr,port,1,0){
    try{
        serverSocket=std::make_shared<netplus::udp>(addr,port,1,0);
        clientSocket=std::make_shared<netplus::udp>();

        sport = port;
        serverSocket->connect(clientSocket);
        saddr =addr;
        serverSocket.connect(&clientSocket);
        memset(challange,0,sizeof(challange));
    }catch(netplus::NetException &exp){
        throw exp.what();
@@ -52,12 +50,7 @@ HldsView::HldsView(const char *addr,int port){
HldsView::~HldsView(){
}

HldsView::HldsView(const HldsView &view){
        serverSocket=std::make_shared<netplus::udp>(*view.serverSocket);
        clientSocket=std::make_shared<netplus::udp>();
        memcpy(challange,view.challange,sizeof(challange));
        serverSocket->connect(clientSocket);
        sport = view.sport;
HldsView::HldsView(const HldsView &view) : HldsView(view.saddr.c_str(),view.sport){
};

void HldsView::refresh(HldsData &info){
@@ -68,10 +61,10 @@ void HldsView::refresh(HldsData &info){
        uint8_t payload[A2S_INFO_PAYLOAD_LEN_WITH_CHALLENGE];
        memcpy(payload, payload_template, A2S_INFO_PAYLOAD_LEN_WITHOUT_CHALLENGE);

        serverSocket->sendData(clientSocket,(void*)&payload,A2S_INFO_PAYLOAD_LEN_WITHOUT_CHALLENGE);
        serverSocket.sendData(&clientSocket,(void*)&payload,A2S_INFO_PAYLOAD_LEN_WITHOUT_CHALLENGE);

        char recv[9];
        rcv=serverSocket->recvData(clientSocket,&recv,sizeof(recv));
        rcv=serverSocket.recvData(&clientSocket,&recv,sizeof(recv));

        if(recv[4] == 0x41){
            memcpy(challange,recv+5,4);
@@ -80,13 +73,13 @@ void HldsView::refresh(HldsData &info){
        AGAIN:
        if(challange[0]!=0){
            memcpy(payload + A2S_INFO_PAYLOAD_CHALLENGE_OFFSET, &challange, sizeof (challange));
            serverSocket->sendData(clientSocket,(void*)payload,A2S_INFO_PAYLOAD_LEN_WITH_CHALLENGE);
            serverSocket.sendData(&clientSocket,(void*)payload,A2S_INFO_PAYLOAD_LEN_WITH_CHALLENGE);
        }else{
            serverSocket->sendData(clientSocket,(void*)payload,A2S_INFO_PAYLOAD_LEN_WITHOUT_CHALLENGE);
            serverSocket.sendData(&clientSocket,(void*)payload,A2S_INFO_PAYLOAD_LEN_WITHOUT_CHALLENGE);
        }


        rcv=serverSocket->recvData(clientSocket,buffer,1400);
        rcv=serverSocket.recvData(&clientSocket,buffer,1400);

        if(rcv >4 && buffer[4] == 0x41){
            memcpy(challange,buffer+5,4);
+4 −3
Original line number Diff line number Diff line
@@ -51,10 +51,11 @@ private:

    uint8_t       challange[4];

    std::shared_ptr<netplus::udp>  clientSocket;
    std::shared_ptr<netplus::udp>  serverSocket;
    netplus::udp  clientSocket;
    netplus::udp  serverSocket;

    std::mutex rlock;

    int         sport;
    std::string saddr;
};