@@ -74,11 +74,11 @@ extern "C" {
7474#define MDNS_CLASS_IN 0x0001
7575#define MDNS_CLASS_IN_FLUSH_CACHE 0x8001
7676
77- #define MDNS_ANSWERS_ALL 0x0F
78- #define MDNS_ANSWER_PTR 0x08
79- #define MDNS_ANSWER_TXT 0x04
80- #define MDNS_ANSWER_SRV 0x02
8177#define MDNS_ANSWER_A 0x01
78+ #define MDNS_ANSWER_SRV 0x02
79+ #define MDNS_ANSWER_TXT 0x04
80+ #define MDNS_ANSWER_PTR 0x08
81+ #define MDNS_ANSWER_AAAA 0x10
8282
8383#define _conn_read32 () (((uint32_t )_conn->read () << 24) | ((uint32_t )_conn->read() << 16) | ((uint32_t )_conn->read() << 8) | _conn->read())
8484#define _conn_read16 () (((uint16_t )_conn->read () << 8) | _conn->read())
@@ -332,11 +332,11 @@ int MDNSResponder::queryService(char *service, char *proto) {
332332
333333 // Only supports sending one PTR query
334334 // Send the Name field (eg. "_http._tcp.local")
335- _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // lenght of "_" + service
335+ _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // length of "_" + service
336336 _conn->append (reinterpret_cast <const char *>(serviceName), serviceNameLen); // "_" + service
337- _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // lenght of "_" + proto
337+ _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // length of "_" + proto
338338 _conn->append (reinterpret_cast <const char *>(protoName), protoNameLen); // "_" + proto
339- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght of "local"
339+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length of "local"
340340 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
341341 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
342342
@@ -824,10 +824,11 @@ void MDNSResponder::_parsePacket(){
824824 }
825825 uint8_t responseMask = 0 ;
826826 for (i=0 ;i<question;i++){
827- if (questions[i] == MDNS_TYPE_A) responseMask |= 0x1 ;
828- else if (questions[i] == MDNS_TYPE_SRV) responseMask |= 0x3 ;
829- else if (questions[i] == MDNS_TYPE_TXT) responseMask |= 0x4 ;
830- else if (questions[i] == MDNS_TYPE_PTR) responseMask |= 0xF ;
827+ if (questions[i] == MDNS_TYPE_A) responseMask |= MDNS_ANSWER_A;
828+ else if (questions[i] == MDNS_TYPE_SRV) responseMask |= MDNS_ANSWER_A | MDNS_ANSWER_SRV;
829+ else if (questions[i] == MDNS_TYPE_TXT) responseMask |= MDNS_ANSWER_TXT;
830+ else if (questions[i] == MDNS_TYPE_PTR) responseMask |= MDNS_ANSWER_A | MDNS_ANSWER_SRV | MDNS_ANSWER_TXT;
831+ else if (questions[i] == MDNS_TYPE_AAAA) responseMask |= MDNS_ANSWER_AAAA;
831832 }
832833
833834 return _reply (responseMask, serviceName, protoName, servicePort);
@@ -891,7 +892,8 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1
891892 char terminator[] = " \0 " ;
892893
893894 uint8_t answerCount = 0 ;
894- for (i=0 ;i<4 ;i++){
895+ for (i=0 ; i<4 ; i++){
896+ // we don't add AAAA to answers count because we never answer those
895897 if (replyMask & (1 << i)) answerCount++;
896898 }
897899
@@ -909,13 +911,13 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1
909911 _conn->append (reinterpret_cast <const char *>(head), 12 );
910912
911913 // PTR Response
912- if (replyMask & 0x8 ){
914+ if (replyMask & MDNS_ANSWER_PTR ){
913915 // Send the Name field (ie. "_http._tcp.local")
914- _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // lenght of "_http"
916+ _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // length of "_http"
915917 _conn->append (reinterpret_cast <const char *>(serviceName), serviceNameLen); // "_http"
916- _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // lenght of "_tcp"
918+ _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // length of "_tcp"
917919 _conn->append (reinterpret_cast <const char *>(protoName), protoNameLen); // "_tcp"
918- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
920+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
919921 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
920922 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
921923
@@ -930,27 +932,27 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1
930932 _conn->append (reinterpret_cast <const char *>(ptrAttrs), 10 );
931933
932934 // Send the RData (ie. "My IOT device._http._tcp.local")
933- _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // lenght of "My IOT device"
935+ _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // length of "My IOT device"
934936 _conn->append (reinterpret_cast <const char *>(instanceName.c_str ()), instanceNameLen);// "My IOT device"
935- _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // lenght of "_http"
937+ _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // length of "_http"
936938 _conn->append (reinterpret_cast <const char *>(serviceName), serviceNameLen); // "_http"
937- _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // lenght of "_tcp"
939+ _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // length of "_tcp"
938940 _conn->append (reinterpret_cast <const char *>(protoName), protoNameLen); // "_tcp"
939- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
941+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
940942 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
941943 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
942944 }
943945
944946 // TXT Responce
945- if (replyMask & 0x4 ){
947+ if (replyMask & MDNS_ANSWER_TXT ){
946948 // Send the name field (ie. "My IOT device._http._tcp.local")
947- _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // lenght of "My IOT device"
949+ _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // length of "My IOT device"
948950 _conn->append (reinterpret_cast <const char *>(instanceName.c_str ()), instanceNameLen);// "My IOT device"
949- _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // lenght of "_http"
951+ _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // length of "_http"
950952 _conn->append (reinterpret_cast <const char *>(serviceName), serviceNameLen); // "_http"
951- _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // lenght of "_tcp"
953+ _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // length of "_tcp"
952954 _conn->append (reinterpret_cast <const char *>(protoName), protoNameLen); // "_tcp"
953- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
955+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
954956 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
955957 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
956958
@@ -968,23 +970,23 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1
968970 MDNSTxt * txtPtr = _getServiceTxt (service,proto);
969971 while (txtPtr !=0 ){
970972 uint8_t txtLen = txtPtr->_txt .length ();
971- _conn->append (reinterpret_cast <const char *>(&txtLen), 1 ); // lenght of txt
973+ _conn->append (reinterpret_cast <const char *>(&txtLen), 1 ); // length of txt
972974 _conn->append (reinterpret_cast <const char *>(txtPtr->_txt .c_str ()), txtLen);// the txt
973975 txtPtr = txtPtr->_next ;
974976 }
975977 }
976978
977979
978980 // SRV Responce
979- if (replyMask & 0x2 ){
981+ if (replyMask & MDNS_ANSWER_SRV ){
980982 // Send the name field (ie. "My IOT device._http._tcp.local")
981- _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // lenght of "My IOT device"
983+ _conn->append (reinterpret_cast <const char *>(&instanceNameLen), 1 ); // length of "My IOT device"
982984 _conn->append (reinterpret_cast <const char *>(instanceName.c_str ()), instanceNameLen);// "My IOT device"
983- _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // lenght of "_http"
985+ _conn->append (reinterpret_cast <const char *>(&serviceNameLen), 1 ); // length of "_http"
984986 _conn->append (reinterpret_cast <const char *>(serviceName), serviceNameLen); // "_http"
985- _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // lenght of "_tcp"
987+ _conn->append (reinterpret_cast <const char *>(&protoNameLen), 1 ); // length of "_tcp"
986988 _conn->append (reinterpret_cast <const char *>(protoName), protoNameLen); // "_tcp"
987- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
989+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
988990 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
989991 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
990992
@@ -1007,20 +1009,20 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1
10071009 };
10081010 _conn->append (reinterpret_cast <const char *>(srvRData), 6 );
10091011 // Send the RData (ie. "esp8266.local")
1010- _conn->append (reinterpret_cast <const char *>(&hostNameLen), 1 ); // lenght of "esp8266"
1012+ _conn->append (reinterpret_cast <const char *>(&hostNameLen), 1 ); // length of "esp8266"
10111013 _conn->append (reinterpret_cast <const char *>(hostName.c_str ()), hostNameLen);// "esp8266"
1012- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
1014+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
10131015 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
10141016 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
10151017
10161018 }
10171019
10181020 // A Response
1019- if (replyMask & 0x1 ){
1021+ if (replyMask & MDNS_ANSWER_A ){
10201022 // Send the RData (ie. "esp8266.local")
1021- _conn->append (reinterpret_cast <const char *>(&hostNameLen), 1 ); // lenght of "esp8266"
1023+ _conn->append (reinterpret_cast <const char *>(&hostNameLen), 1 ); // length of "esp8266"
10221024 _conn->append (reinterpret_cast <const char *>(hostName.c_str ()), hostNameLen);// "esp8266"
1023- _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // lenght "local"
1025+ _conn->append (reinterpret_cast <const char *>(&localNameLen), 1 ); // length "local"
10241026 _conn->append (reinterpret_cast <const char *>(localName), localNameLen); // "local"
10251027 _conn->append (reinterpret_cast <const char *>(&terminator), 1 ); // terminator
10261028
0 commit comments