Commit 920f1501 authored by jan.koester's avatar jan.koester
Browse files

some fixes

new netapi
parent aae97d33
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -36,11 +36,10 @@ 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) : serverSocket(addr,port,1,0){
    try{
        sport = port;
        serverSocket = new netplus::udp(addr,sport,1,0);
        clientSocket=serverSocket->connect();
        serverSocket.connect(&clientSocket);
        memset(challange,0,sizeof(challange));
    }catch(netplus::NetException &exp){
        throw exp.what();
@@ -48,14 +47,11 @@ HldsView::HldsView(const char *addr,int port){
}

HldsView::~HldsView(){
    delete clientSocket;
    delete serverSocket;
}

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

@@ -67,10 +63,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);
@@ -79,13 +75,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;
    netplus::udp  clientSocket;
    netplus::udp  serverSocket;

    std::mutex rlock;