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