mDNS
This is a mDNS server.
Diff: mDNSResponder.cpp
- Revision:
- 5:4b6323e78f58
- Parent:
- 4:47d30d199ce0
- Child:
- 6:3bf9f4943d1a
diff -r 47d30d199ce0 -r 4b6323e78f58 mDNSResponder.cpp --- a/mDNSResponder.cpp Tue Sep 10 13:13:45 2019 +0000 +++ b/mDNSResponder.cpp Wed Sep 11 10:40:41 2019 +0000 @@ -41,8 +41,10 @@ #define MDBG(x...) #endif -mDNSResponder::mDNSResponder(EthernetInterface interface) : IP_str(NULL), mdns_sock(&interface) -{} +mDNSResponder::mDNSResponder(EthernetInterface interface) : IP_str(NULL) +{ + mdns_sock.open(&interface); +} /* initialize static instance */ char mDNSResponder::query_buf[1500] = @@ -57,7 +59,7 @@ { { .inst_len = 5, - .instance = {'s','P','y','O','S'}, + .instance = {'s','p','y','o','s'}, .serv_len = 12, .service = {'_','s','m','a','r','t','e','n','e','r','g','y',}, .trl_len = 4, @@ -154,21 +156,22 @@ void mDNSResponder::announce(const char* ip) { send_endpt.set_ip_address(MCAST); - + send_endpt.set_port(MDNS_PORT); + mdns_sock.bind(MDNS_PORT); if (mdns_sock.join_multicast_group(send_endpt) != 0) { printf("Error joining the multicast group\n"); while(true); } - send_endpt.set_port(MDNS_PORT); + IP_str = new char[16]; strcpy(IP_str, ip); IPstringToByte(IP_str); char instance_number[4]; - //printf("%.2X%.2X", 0, IP_byte[3]); + register_service(instance_number); query_domain(); @@ -197,7 +200,7 @@ p = p_dot + 1; p_dot = strstr(p, "."); - memcpy(ip3, p, p_dot-p); + memcpy(ip3, p, p_dot - p); IP_byte[2] = (uint8_t)atoi((const char*)ip3); p = p_dot + 1; @@ -583,12 +586,11 @@ struct dns_hdr* hdr; char *queryptr; uint8_t is_request; - int len; MDBG("MDNS Process\n"); - while ((len = mdns_sock.recvfrom(&rcv_endpt, - rcv_buf, sizeof(rcv_buf))) != 0) + while(mdns_sock.recvfrom(&rcv_endpt, + rcv_buf, sizeof(rcv_buf)) != 0) { hdr = (struct dns_hdr *)rcv_buf; queryptr = (char *)hdr + sizeof(*hdr); @@ -697,9 +699,6 @@ if (type == DNS_TYPE_A || type == DNS_TYPE_A) { char instance_number[4]; - /*printf("%.2X%.2X", - (uint8_t)(rand()%256), - IP_byte[3]);*/ register_service(instance_number); query_domain(); } @@ -709,4 +708,3 @@ } } #endif -