Skip to content

Commit 20b7e48

Browse files
bryceschoberigrr
authored andcommitted
Make ESP8266mDNS debug output like other ESP libs
1 parent 42aa983 commit 20b7e48

File tree

1 file changed

+88
-86
lines changed

1 file changed

+88
-86
lines changed

libraries/ESP8266mDNS/ESP8266mDNS.cpp

+88-86
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ extern "C" {
5959

6060

6161

62-
//#define MDNS_DEBUG_ERR
63-
//#define MDNS_DEBUG_TX
64-
//#define MDNS_DEBUG_RX
62+
#ifdef DEBUG_ESP_MDNS
63+
#define DEBUG_ESP_MDNS_ERR
64+
#define DEBUG_ESP_MDNS_TX
65+
#define DEBUG_ESP_MDNS_RX
66+
#endif
6567

6668
#define MDNS_NAME_REF 0xC000
6769

@@ -187,8 +189,8 @@ void MDNSResponder::_restart() {
187189
bool MDNSResponder::_listen() {
188190
// Open the MDNS socket if it isn't already open.
189191
if (!_conn) {
190-
#ifdef MDNS_DEBUG_RX
191-
Serial.println("MDNS listening");
192+
#ifdef DEBUG_ESP_MDNS_RX
193+
DEBUG_ESP_PORT.println("MDNS listening");
192194
#endif
193195
ip_addr_t multicast_addr;
194196
multicast_addr.addr = (uint32_t) MDNS_MULTICAST_ADDR;
@@ -280,8 +282,8 @@ void MDNSResponder::addService(char *name, char *proto, uint16_t port){
280282
}
281283

282284
int MDNSResponder::queryService(char *service, char *proto) {
283-
#ifdef MDNS_DEBUG_TX
284-
Serial.printf("queryService %s %s\n", service, proto);
285+
#ifdef DEBUG_ESP_MDNS_TX
286+
DEBUG_ESP_PORT.printf("queryService %s %s\n", service, proto);
285287
#endif
286288

287289
if (_query != 0) {
@@ -359,8 +361,8 @@ int MDNSResponder::queryService(char *service, char *proto) {
359361
_conn->send();
360362
}
361363

362-
#ifdef MDNS_DEBUG_TX
363-
Serial.println("Waiting for answers..");
364+
#ifdef DEBUG_ESP_MDNS_TX
365+
DEBUG_ESP_PORT.println("Waiting for answers..");
364366
#endif
365367
delay(1000);
366368

@@ -488,13 +490,13 @@ void MDNSResponder::_parsePacket(){
488490
for(i=0; i<6; i++) packetHeader[i] = _conn_read16();
489491

490492
if ((packetHeader[1] & 0x8000) != 0) { // Read answers
491-
#ifdef MDNS_DEBUG_RX
492-
Serial.printf("Reading answers RX: REQ, ID:%u, Q:%u, A:%u, NS:%u, ADD:%u\n", packetHeader[0], packetHeader[2], packetHeader[3], packetHeader[4], packetHeader[5]);
493+
#ifdef DEBUG_ESP_MDNS_RX
494+
DEBUG_ESP_PORT.printf("Reading answers RX: REQ, ID:%u, Q:%u, A:%u, NS:%u, ADD:%u\n", packetHeader[0], packetHeader[2], packetHeader[3], packetHeader[4], packetHeader[5]);
493495
#endif
494496

495497
if (!_waitingForAnswers) {
496-
#ifdef MDNS_DEBUG_RX
497-
Serial.println("Not expecting any answers right now, returning");
498+
#ifdef DEBUG_ESP_MDNS_RX
499+
DEBUG_ESP_PORT.println("Not expecting any answers right now, returning");
498500
#endif
499501
_conn->flush();
500502
return;
@@ -503,8 +505,8 @@ void MDNSResponder::_parsePacket(){
503505
int numAnswers = packetHeader[3] + packetHeader[5];
504506
// Assume that the PTR answer always comes first and that it is always accompanied by a TXT, SRV, AAAA (optional) and A answer in the same packet.
505507
if (numAnswers < 4) {
506-
#ifdef MDNS_DEBUG_RX
507-
Serial.printf("Expected a packet with 4 or more answers, got %u\n", numAnswers);
508+
#ifdef DEBUG_ESP_MDNS_RX
509+
DEBUG_ESP_PORT.printf("Expected a packet with 4 or more answers, got %u\n", numAnswers);
508510
#endif
509511
_conn->flush();
510512
return;
@@ -547,26 +549,26 @@ void MDNSResponder::_parsePacket(){
547549
break;
548550
}
549551
if(stringsRead > 3){
550-
#ifdef MDNS_DEBUG_RX
551-
Serial.println("failed to read the response name");
552+
#ifdef DEBUG_ESP_MDNS_RX
553+
DEBUG_ESP_PORT.println("failed to read the response name");
552554
#endif
553555
_conn->flush();
554556
return;
555557
}
556558
_conn_readS(serviceName, tmp8);
557559
serviceName[tmp8] = '\0';
558-
#ifdef MDNS_DEBUG_RX
559-
Serial.printf(" %d ", tmp8);
560+
#ifdef DEBUG_ESP_MDNS_RX
561+
DEBUG_ESP_PORT.printf(" %d ", tmp8);
560562
for (int n = 0; n < tmp8; n++) {
561-
Serial.printf("%c", serviceName[n]);
563+
DEBUG_ESP_PORT.printf("%c", serviceName[n]);
562564
}
563-
Serial.println();
565+
DEBUG_ESP_PORT.println();
564566
#endif
565567
if (serviceName[0] == '_') {
566568
if (strcmp(&serviceName[1], _query->_service) == 0) {
567569
serviceMatch = true;
568-
#ifdef MDNS_DEBUG_RX
569-
Serial.printf("found matching service: %s\n", _query->_service);
570+
#ifdef DEBUG_ESP_MDNS_RX
571+
DEBUG_ESP_PORT.printf("found matching service: %s\n", _query->_service);
570572
#endif
571573
}
572574
}
@@ -585,16 +587,16 @@ void MDNSResponder::_parsePacket(){
585587
if(answerType == MDNS_TYPE_TXT && answerRdlength < 1460){
586588
while(--answerRdlength) _conn->read();
587589
} else {
588-
#ifdef MDNS_DEBUG_RX
589-
Serial.printf("Data len too long! %u\n", answerRdlength);
590+
#ifdef DEBUG_ESP_MDNS_RX
591+
DEBUG_ESP_PORT.printf("Data len too long! %u\n", answerRdlength);
590592
#endif
591593
_conn->flush();
592594
return;
593595
}
594596
}
595597

596-
#ifdef MDNS_DEBUG_RX
597-
Serial.printf("type: %04x rdlength: %d\n", answerType, answerRdlength);
598+
#ifdef DEBUG_ESP_MDNS_RX
599+
DEBUG_ESP_PORT.printf("type: %04x rdlength: %d\n", answerType, answerRdlength);
598600
#endif
599601

600602
if (answerType == MDNS_TYPE_PTR) {
@@ -604,24 +606,24 @@ void MDNSResponder::_parsePacket(){
604606
memcpy(answerHostName, hostName+1, answerRdlength-3);
605607
answerHostName[answerRdlength-3] = '\0';
606608
}
607-
#ifdef MDNS_DEBUG_RX
608-
Serial.printf("PTR %d ", answerRdlength);
609+
#ifdef DEBUG_ESP_MDNS_RX
610+
DEBUG_ESP_PORT.printf("PTR %d ", answerRdlength);
609611
for (int n = 0; n < answerRdlength; n++) {
610-
Serial.printf("%c", hostName[n]);
612+
DEBUG_ESP_PORT.printf("%c", hostName[n]);
611613
}
612-
Serial.println();
614+
DEBUG_ESP_PORT.println();
613615
#endif
614616
}
615617

616618
else if (answerType == MDNS_TYPE_TXT) {
617619
partsCollected |= 0x02;
618620
_conn_readS(hostName, answerRdlength); // Read rdata
619-
#ifdef MDNS_DEBUG_RX
620-
Serial.printf("TXT %d ", answerRdlength);
621+
#ifdef DEBUG_ESP_MDNS_RX
622+
DEBUG_ESP_PORT.printf("TXT %d ", answerRdlength);
621623
for (int n = 0; n < answerRdlength; n++) {
622-
Serial.printf("%c", hostName[n]);
624+
DEBUG_ESP_PORT.printf("%c", hostName[n]);
623625
}
624-
Serial.println();
626+
DEBUG_ESP_PORT.println();
625627
#endif
626628
}
627629

@@ -637,20 +639,20 @@ void MDNSResponder::_parsePacket(){
637639
// Read hostname
638640
tmp8 = _conn_read8();
639641
if (tmp8 & 0xC0) { // Compressed pointer (not supported)
640-
#ifdef MDNS_DEBUG_RX
641-
Serial.println("Skipping compressed pointer");
642+
#ifdef DEBUG_ESP_MDNS_RX
643+
DEBUG_ESP_PORT.println("Skipping compressed pointer");
642644
#endif
643645
tmp8 = _conn_read8();
644646
}
645647
else {
646648
_conn_readS(answerHostName, tmp8);
647649
answerHostName[tmp8] = '\0';
648-
#ifdef MDNS_DEBUG_RX
649-
Serial.printf("SRV %d ", tmp8);
650+
#ifdef DEBUG_ESP_MDNS_RX
651+
DEBUG_ESP_PORT.printf("SRV %d ", tmp8);
650652
for (int n = 0; n < tmp8; n++) {
651-
Serial.printf("%02x ", answerHostName[n]);
653+
DEBUG_ESP_PORT.printf("%02x ", answerHostName[n]);
652654
}
653-
Serial.printf("\n%s\n", answerHostName);
655+
DEBUG_ESP_PORT.printf("\n%s\n", answerHostName);
654656
#endif
655657
if (answerRdlength - (6 + 1 + tmp8) > 0) { // Skip any remaining rdata
656658
_conn_readS(hostName, answerRdlength - (6 + 1 + tmp8));
@@ -665,16 +667,16 @@ void MDNSResponder::_parsePacket(){
665667
}
666668
}
667669
else {
668-
#ifdef MDNS_DEBUG_RX
669-
Serial.printf("Ignoring unsupported type %02x\n", tmp8);
670+
#ifdef DEBUG_ESP_MDNS_RX
671+
DEBUG_ESP_PORT.printf("Ignoring unsupported type %02x\n", tmp8);
670672
#endif
671673
for (int n = 0; n < answerRdlength; n++)
672674
(void)_conn_read8();
673675
}
674676

675677
if ((partsCollected == 0x0F) && serviceMatch) {
676-
#ifdef MDNS_DEBUG_RX
677-
Serial.println("All answers parsed, adding to _answers list..");
678+
#ifdef DEBUG_ESP_MDNS_RX
679+
DEBUG_ESP_PORT.println("All answers parsed, adding to _answers list..");
678680
#endif
679681
// Add new answer to answer list
680682
if (_answers == 0) {
@@ -722,10 +724,10 @@ void MDNSResponder::_parsePacket(){
722724
}
723725

724726
if(hostNameLen > 0 && !_hostName.equals(hostName) && !_instanceName.equals(hostName)){
725-
#ifdef MDNS_DEBUG_ERR
726-
Serial.printf("ERR_NO_HOST: %s\n", hostName);
727-
Serial.printf("hostname: %s\n", _hostName.c_str() );
728-
Serial.printf("instance: %s\n", _instanceName.c_str() );
727+
#ifdef DEBUG_ESP_MDNS_ERR
728+
DEBUG_ESP_PORT.printf("ERR_NO_HOST: %s\n", hostName);
729+
DEBUG_ESP_PORT.printf("hostname: %s\n", _hostName.c_str() );
730+
DEBUG_ESP_PORT.printf("instance: %s\n", _instanceName.c_str() );
729731
#endif
730732
_conn->flush();
731733
return;
@@ -749,15 +751,15 @@ void MDNSResponder::_parsePacket(){
749751
protoNameLen = 0;
750752
localParsed = true;
751753
} else {
752-
#ifdef MDNS_DEBUG_ERR
753-
Serial.printf("ERR_FQDN: %s\n", serviceName);
754+
#ifdef DEBUG_ESP_MDNS_ERR
755+
DEBUG_ESP_PORT.printf("ERR_FQDN: %s\n", serviceName);
754756
#endif
755757
_conn->flush();
756758
return;
757759
}
758760
} else {
759-
#ifdef MDNS_DEBUG_ERR
760-
Serial.printf("ERR_SERVICE: %s\n", serviceName);
761+
#ifdef DEBUG_ESP_MDNS_ERR
762+
DEBUG_ESP_PORT.printf("ERR_SERVICE: %s\n", serviceName);
761763
#endif
762764
_conn->flush();
763765
return;
@@ -778,8 +780,8 @@ void MDNSResponder::_parsePacket(){
778780
_replyToTypeEnumRequest(interface);
779781
return;
780782
} else {
781-
#ifdef MDNS_DEBUG_ERR
782-
Serial.printf("ERR_PROTO: %s\n", protoName);
783+
#ifdef DEBUG_ESP_MDNS_ERR
784+
DEBUG_ESP_PORT.printf("ERR_PROTO: %s\n", protoName);
783785
#endif
784786
_conn->flush();
785787
return;
@@ -795,8 +797,8 @@ void MDNSResponder::_parsePacket(){
795797
if(localNameLen == 5 && strcmp("local", localName) == 0 && tmp == 0){
796798
localParsed = true;
797799
} else {
798-
#ifdef MDNS_DEBUG_ERR
799-
Serial.printf("ERR_FQDN: %s\n", localName);
800+
#ifdef DEBUG_ESP_MDNS_ERR
801+
DEBUG_ESP_PORT.printf("ERR_FQDN: %s\n", localName);
800802
#endif
801803
_conn->flush();
802804
return;
@@ -806,24 +808,24 @@ void MDNSResponder::_parsePacket(){
806808
if(serviceNameLen > 0 && protoNameLen > 0){
807809
servicePort = _getServicePort(serviceName, protoName);
808810
if(servicePort == 0){
809-
#ifdef MDNS_DEBUG_ERR
810-
Serial.printf("ERR_NO_SERVICE: %s\n", serviceName);
811+
#ifdef DEBUG_ESP_MDNS_ERR
812+
DEBUG_ESP_PORT.printf("ERR_NO_SERVICE: %s\n", serviceName);
811813
#endif
812814
_conn->flush();
813815
return;
814816
}
815817
} else if(serviceNameLen > 0 || protoNameLen > 0){
816-
#ifdef MDNS_DEBUG_ERR
817-
Serial.printf("ERR_SERVICE_PROTO: %s\n", serviceName);
818+
#ifdef DEBUG_ESP_MDNS_ERR
819+
DEBUG_ESP_PORT.printf("ERR_SERVICE_PROTO: %s\n", serviceName);
818820
#endif
819821
_conn->flush();
820822
return;
821823
}
822824

823825
// RESPOND
824826

825-
#ifdef MDNS_DEBUG_RX
826-
Serial.printf("RX: REQ, ID:%u, Q:%u, A:%u, NS:%u, ADD:%u\n", packetHeader[0], packetHeader[2], packetHeader[3], packetHeader[4], packetHeader[5]);
827+
#ifdef DEBUG_ESP_MDNS_RX
828+
DEBUG_ESP_PORT.printf("RX: REQ, ID:%u, Q:%u, A:%u, NS:%u, ADD:%u\n", packetHeader[0], packetHeader[2], packetHeader[3], packetHeader[4], packetHeader[5]);
827829
#endif
828830

829831
uint16_t currentType;
@@ -849,25 +851,25 @@ void MDNSResponder::_parsePacket(){
849851
}
850852
}
851853

852-
#ifdef MDNS_DEBUG_RX
853-
Serial.printf("REQ: ");
854-
if(hostNameLen > 0) Serial.printf("%s.", hostName);
855-
if(serviceNameLen > 0) Serial.printf("_%s.", serviceName);
856-
if(protoNameLen > 0) Serial.printf("_%s.", protoName);
857-
Serial.printf("local. ");
858-
859-
if(currentType == MDNS_TYPE_AAAA) Serial.printf(" AAAA ");
860-
else if(currentType == MDNS_TYPE_A) Serial.printf(" A ");
861-
else if(currentType == MDNS_TYPE_PTR) Serial.printf(" PTR ");
862-
else if(currentType == MDNS_TYPE_SRV) Serial.printf(" SRV ");
863-
else if(currentType == MDNS_TYPE_TXT) Serial.printf(" TXT ");
864-
else Serial.printf(" 0x%04X ", currentType);
865-
866-
if(currentClass == MDNS_CLASS_IN) Serial.printf(" IN ");
867-
else if(currentClass == MDNS_CLASS_IN_FLUSH_CACHE) Serial.printf(" IN[F] ");
868-
else Serial.printf(" 0x%04X ", currentClass);
869-
870-
Serial.printf("\n");
854+
#ifdef DEBUG_ESP_MDNS_RX
855+
DEBUG_ESP_PORT.printf("REQ: ");
856+
if(hostNameLen > 0) DEBUG_ESP_PORT.printf("%s.", hostName);
857+
if(serviceNameLen > 0) DEBUG_ESP_PORT.printf("_%s.", serviceName);
858+
if(protoNameLen > 0) DEBUG_ESP_PORT.printf("_%s.", protoName);
859+
DEBUG_ESP_PORT.printf("local. ");
860+
861+
if(currentType == MDNS_TYPE_AAAA) DEBUG_ESP_PORT.printf(" AAAA ");
862+
else if(currentType == MDNS_TYPE_A) DEBUG_ESP_PORT.printf(" A ");
863+
else if(currentType == MDNS_TYPE_PTR) DEBUG_ESP_PORT.printf(" PTR ");
864+
else if(currentType == MDNS_TYPE_SRV) DEBUG_ESP_PORT.printf(" SRV ");
865+
else if(currentType == MDNS_TYPE_TXT) DEBUG_ESP_PORT.printf(" TXT ");
866+
else DEBUG_ESP_PORT.printf(" 0x%04X ", currentType);
867+
868+
if(currentClass == MDNS_CLASS_IN) DEBUG_ESP_PORT.printf(" IN ");
869+
else if(currentClass == MDNS_CLASS_IN_FLUSH_CACHE) DEBUG_ESP_PORT.printf(" IN[F] ");
870+
else DEBUG_ESP_PORT.printf(" 0x%04X ", currentClass);
871+
872+
DEBUG_ESP_PORT.printf("\n");
871873
#endif
872874
}
873875
uint8_t questionMask = 0;
@@ -909,8 +911,8 @@ void MDNSResponder::_replyToTypeEnumRequest(IPAddress multicastInterface) {
909911
char *proto = servicePtr->_proto;
910912
//uint16_t port = servicePtr->_port;
911913

912-
#ifdef MDNS_DEBUG_TX
913-
Serial.printf("TX: service:%s, proto:%s\n", service, proto);
914+
#ifdef DEBUG_ESP_MDNS_TX
915+
DEBUG_ESP_PORT.printf("TX: service:%s, proto:%s\n", service, proto);
914916
#endif
915917

916918
char sdHostName[] = "_services";
@@ -996,8 +998,8 @@ void MDNSResponder::_replyToInstanceRequest(uint8_t questionMask, uint8_t respon
996998
if(questionMask == 0) return;
997999
if(responseMask == 0) return;
9981000

999-
#ifdef MDNS_DEBUG_TX
1000-
Serial.printf("TX: qmask:%01X, rmask:%01X, service:%s, proto:%s, port:%u\n", questionMask, responseMask, service, proto, port);
1001+
#ifdef DEBUG_ESP_MDNS_TX
1002+
DEBUG_ESP_PORT.printf("TX: qmask:%01X, rmask:%01X, service:%s, proto:%s, port:%u\n", questionMask, responseMask, service, proto, port);
10011003
#endif
10021004

10031005

0 commit comments

Comments
 (0)