mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-06 05:21:22 +03:00
Fixed bug when making multiple consecutive queries
This commit is contained in:
parent
1569b3ba5d
commit
59c6667050
@ -314,14 +314,7 @@ int MDNSResponder::queryService(char *service, char *proto) {
|
||||
|
||||
_waitingForAnswers = false;
|
||||
|
||||
int numAnswers = 0;
|
||||
MDNSAnswer *answer = _answers;
|
||||
while (answer != 0) {
|
||||
numAnswers++;
|
||||
answer = answer->next;
|
||||
}
|
||||
|
||||
return numAnswers;
|
||||
return _getNumAnswers();
|
||||
}
|
||||
|
||||
String MDNSResponder::hostname(int idx) {
|
||||
@ -359,6 +352,16 @@ MDNSAnswer* MDNSResponder::_getAnswerFromIdx(int idx) {
|
||||
return answer;
|
||||
}
|
||||
|
||||
int MDNSResponder::_getNumAnswers() {
|
||||
int numAnswers = 0;
|
||||
MDNSAnswer *answer = _answers;
|
||||
while (answer != 0) {
|
||||
numAnswers++;
|
||||
answer = answer->next;
|
||||
}
|
||||
return numAnswers;
|
||||
}
|
||||
|
||||
MDNSTxt * MDNSResponder::_getServiceTxt(char *name, char *proto){
|
||||
MDNSService* servicePtr;
|
||||
for (servicePtr = _services; servicePtr; servicePtr = servicePtr->_next) {
|
||||
@ -468,18 +471,14 @@ void MDNSResponder::_parsePacket(){
|
||||
|
||||
// Clear answer list
|
||||
if (_newQuery) {
|
||||
answer = _answers;
|
||||
while (answer != 0) {
|
||||
while (answer->next != 0) {
|
||||
answer = answer->next;
|
||||
}
|
||||
if (answer == _answers) {
|
||||
_answers = 0;
|
||||
}
|
||||
int numAnswers = _getNumAnswers();
|
||||
for (int n = numAnswers - 1; n >= 0; n--) {
|
||||
answer = _getAnswerFromIdx(n);
|
||||
os_free(answer->hostname);
|
||||
os_free(answer);
|
||||
answer = _answers;
|
||||
answer = 0;
|
||||
}
|
||||
_answers = 0;
|
||||
_newQuery = false;
|
||||
}
|
||||
|
||||
|
@ -124,6 +124,7 @@ private:
|
||||
void _reply(uint8_t replyMask, char * service, char *proto, uint16_t port);
|
||||
size_t advertiseServices(); // advertise all hosted services
|
||||
MDNSAnswer* _getAnswerFromIdx(int idx);
|
||||
int _getNumAnswers();
|
||||
};
|
||||
|
||||
extern MDNSResponder MDNS;
|
||||
|
Loading…
x
Reference in New Issue
Block a user