Loading src/hldsview.cpp +9 −16 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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){ Loading @@ -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); Loading @@ -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); Loading src/hldsview.h +4 −3 Original line number Diff line number Diff line Loading @@ -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; }; Loading
src/hldsview.cpp +9 −16 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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){ Loading @@ -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); Loading @@ -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); Loading
src/hldsview.h +4 −3 Original line number Diff line number Diff line Loading @@ -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; };