@@ -59,9 +59,11 @@ extern "C" {
59
59
60
60
61
61
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
65
67
66
68
#define MDNS_NAME_REF 0xC000
67
69
@@ -187,8 +189,8 @@ void MDNSResponder::_restart() {
187
189
bool MDNSResponder::_listen () {
188
190
// Open the MDNS socket if it isn't already open.
189
191
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" );
192
194
#endif
193
195
ip_addr_t multicast_addr;
194
196
multicast_addr.addr = (uint32_t ) MDNS_MULTICAST_ADDR;
@@ -280,8 +282,8 @@ void MDNSResponder::addService(char *name, char *proto, uint16_t port){
280
282
}
281
283
282
284
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);
285
287
#endif
286
288
287
289
if (_query != 0 ) {
@@ -359,8 +361,8 @@ int MDNSResponder::queryService(char *service, char *proto) {
359
361
_conn->send ();
360
362
}
361
363
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.." );
364
366
#endif
365
367
delay (1000 );
366
368
@@ -488,13 +490,13 @@ void MDNSResponder::_parsePacket(){
488
490
for (i=0 ; i<6 ; i++) packetHeader[i] = _conn_read16 ();
489
491
490
492
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 ]);
493
495
#endif
494
496
495
497
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" );
498
500
#endif
499
501
_conn->flush ();
500
502
return ;
@@ -503,8 +505,8 @@ void MDNSResponder::_parsePacket(){
503
505
int numAnswers = packetHeader[3 ] + packetHeader[5 ];
504
506
// 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.
505
507
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);
508
510
#endif
509
511
_conn->flush ();
510
512
return ;
@@ -547,26 +549,26 @@ void MDNSResponder::_parsePacket(){
547
549
break ;
548
550
}
549
551
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" );
552
554
#endif
553
555
_conn->flush ();
554
556
return ;
555
557
}
556
558
_conn_readS (serviceName, tmp8);
557
559
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);
560
562
for (int n = 0 ; n < tmp8; n++) {
561
- Serial .printf (" %c" , serviceName[n]);
563
+ DEBUG_ESP_PORT .printf (" %c" , serviceName[n]);
562
564
}
563
- Serial .println ();
565
+ DEBUG_ESP_PORT .println ();
564
566
#endif
565
567
if (serviceName[0 ] == ' _' ) {
566
568
if (strcmp (&serviceName[1 ], _query->_service ) == 0 ) {
567
569
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 );
570
572
#endif
571
573
}
572
574
}
@@ -585,16 +587,16 @@ void MDNSResponder::_parsePacket(){
585
587
if (answerType == MDNS_TYPE_TXT && answerRdlength < 1460 ){
586
588
while (--answerRdlength) _conn->read ();
587
589
} 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);
590
592
#endif
591
593
_conn->flush ();
592
594
return ;
593
595
}
594
596
}
595
597
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);
598
600
#endif
599
601
600
602
if (answerType == MDNS_TYPE_PTR) {
@@ -604,24 +606,24 @@ void MDNSResponder::_parsePacket(){
604
606
memcpy (answerHostName, hostName+1 , answerRdlength-3 );
605
607
answerHostName[answerRdlength-3 ] = ' \0 ' ;
606
608
}
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);
609
611
for (int n = 0 ; n < answerRdlength; n++) {
610
- Serial .printf (" %c" , hostName[n]);
612
+ DEBUG_ESP_PORT .printf (" %c" , hostName[n]);
611
613
}
612
- Serial .println ();
614
+ DEBUG_ESP_PORT .println ();
613
615
#endif
614
616
}
615
617
616
618
else if (answerType == MDNS_TYPE_TXT) {
617
619
partsCollected |= 0x02 ;
618
620
_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);
621
623
for (int n = 0 ; n < answerRdlength; n++) {
622
- Serial .printf (" %c" , hostName[n]);
624
+ DEBUG_ESP_PORT .printf (" %c" , hostName[n]);
623
625
}
624
- Serial .println ();
626
+ DEBUG_ESP_PORT .println ();
625
627
#endif
626
628
}
627
629
@@ -637,20 +639,20 @@ void MDNSResponder::_parsePacket(){
637
639
// Read hostname
638
640
tmp8 = _conn_read8 ();
639
641
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" );
642
644
#endif
643
645
tmp8 = _conn_read8 ();
644
646
}
645
647
else {
646
648
_conn_readS (answerHostName, tmp8);
647
649
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);
650
652
for (int n = 0 ; n < tmp8; n++) {
651
- Serial .printf (" %02x " , answerHostName[n]);
653
+ DEBUG_ESP_PORT .printf (" %02x " , answerHostName[n]);
652
654
}
653
- Serial .printf (" \n %s\n " , answerHostName);
655
+ DEBUG_ESP_PORT .printf (" \n %s\n " , answerHostName);
654
656
#endif
655
657
if (answerRdlength - (6 + 1 + tmp8) > 0 ) { // Skip any remaining rdata
656
658
_conn_readS (hostName, answerRdlength - (6 + 1 + tmp8));
@@ -665,16 +667,16 @@ void MDNSResponder::_parsePacket(){
665
667
}
666
668
}
667
669
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);
670
672
#endif
671
673
for (int n = 0 ; n < answerRdlength; n++)
672
674
(void )_conn_read8 ();
673
675
}
674
676
675
677
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.." );
678
680
#endif
679
681
// Add new answer to answer list
680
682
if (_answers == 0 ) {
@@ -722,10 +724,10 @@ void MDNSResponder::_parsePacket(){
722
724
}
723
725
724
726
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 () );
729
731
#endif
730
732
_conn->flush ();
731
733
return ;
@@ -749,15 +751,15 @@ void MDNSResponder::_parsePacket(){
749
751
protoNameLen = 0 ;
750
752
localParsed = true ;
751
753
} 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);
754
756
#endif
755
757
_conn->flush ();
756
758
return ;
757
759
}
758
760
} 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);
761
763
#endif
762
764
_conn->flush ();
763
765
return ;
@@ -778,8 +780,8 @@ void MDNSResponder::_parsePacket(){
778
780
_replyToTypeEnumRequest (interface);
779
781
return ;
780
782
} 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);
783
785
#endif
784
786
_conn->flush ();
785
787
return ;
@@ -795,8 +797,8 @@ void MDNSResponder::_parsePacket(){
795
797
if (localNameLen == 5 && strcmp (" local" , localName) == 0 && tmp == 0 ){
796
798
localParsed = true ;
797
799
} 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);
800
802
#endif
801
803
_conn->flush ();
802
804
return ;
@@ -806,24 +808,24 @@ void MDNSResponder::_parsePacket(){
806
808
if (serviceNameLen > 0 && protoNameLen > 0 ){
807
809
servicePort = _getServicePort (serviceName, protoName);
808
810
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);
811
813
#endif
812
814
_conn->flush ();
813
815
return ;
814
816
}
815
817
} 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);
818
820
#endif
819
821
_conn->flush ();
820
822
return ;
821
823
}
822
824
823
825
// RESPOND
824
826
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 ]);
827
829
#endif
828
830
829
831
uint16_t currentType;
@@ -849,25 +851,25 @@ void MDNSResponder::_parsePacket(){
849
851
}
850
852
}
851
853
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 " );
871
873
#endif
872
874
}
873
875
uint8_t questionMask = 0 ;
@@ -909,8 +911,8 @@ void MDNSResponder::_replyToTypeEnumRequest(IPAddress multicastInterface) {
909
911
char *proto = servicePtr->_proto ;
910
912
// uint16_t port = servicePtr->_port;
911
913
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);
914
916
#endif
915
917
916
918
char sdHostName[] = " _services" ;
@@ -996,8 +998,8 @@ void MDNSResponder::_replyToInstanceRequest(uint8_t questionMask, uint8_t respon
996
998
if (questionMask == 0 ) return ;
997
999
if (responseMask == 0 ) return ;
998
1000
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);
1001
1003
#endif
1002
1004
1003
1005
0 commit comments