Commit 197db28f authored by jan.koester's avatar jan.koester
Browse files

use new api

parent 920f1501
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -36,10 +36,13 @@ 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) : serverSocket(addr,port,1,0){
HldsView::HldsView(const char *addr,int port){
    try{
        serverSocket=std::make_shared<netplus::udp>(addr,port,1,0);
        clientSocket=std::make_shared<netplus::udp>();

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

HldsView::HldsView(const HldsView &view) : serverSocket(view.serverSocket){
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);
        serverSocket->connect(clientSocket);
        sport = view.sport;
};

@@ -63,10 +68,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);
@@ -75,13 +80,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);
+2 −2
Original line number Diff line number Diff line
@@ -51,8 +51,8 @@ private:

    uint8_t       challange[4];

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

    std::mutex rlock;