Lines Matching full:service
9 * RFC 6763 - DNS-Based Service Discovery\n
133 /* Lookup for service types */
135 /* Lookup for instances of service */
137 /* Lookup for location of service instance */
139 /* Lookup for text info on service instance */
160 /** Description of a service */
164 /** Name of service, like 'myweb' */
166 /** Type of service, like '_http' */
167 char service[MDNS_LABEL_MAXLEN + 1]; member
176 /** Port of the service */
257 /* Reply bitmask per service */
489 * @param service The service to build TXT record for
492 mdns_prepare_txtdata(struct mdns_service *service) in mdns_prepare_txtdata() argument
494 memset(&service->txtdata, 0, sizeof(struct mdns_domain)); in mdns_prepare_txtdata()
495 if (service->txt_fn) { in mdns_prepare_txtdata()
496 service->txt_fn(service, service->txt_userdata); in mdns_prepare_txtdata()
635 * Build domain name for a service
637 * @param service The service struct, containing service name, type and protocol
638 * @param include_name Whether to include the service name in the domain
639 * @return ERR_OK if domain was written. If service name is included,
644 mdns_build_service_domain(struct mdns_domain *domain, struct mdns_service *service, int include_nam… in mdns_build_service_domain() argument
650 res = mdns_domain_add_label(domain, service->name, (u8_t)strlen(service->name)); in mdns_build_service_domain()
653 res = mdns_domain_add_label(domain, service->service, (u8_t)strlen(service->service)); in mdns_build_service_domain()
655 …res = mdns_domain_add_label(domain, dnssd_protos[service->proto], (u8_t)strlen(dnssd_protos[servic… in mdns_build_service_domain()
730 * Check which replies we should send for a service based on question
731 * @param service A registered MDNS service
736 check_service(struct mdns_service *service, struct mdns_rr_info *rr) in check_service() argument
750 /* Request for all service types */ in check_service()
754 res = mdns_build_service_domain(&mydomain, service, 0); in check_service()
757 /* Request for the instance of my service */ in check_service()
761 res = mdns_build_service_domain(&mydomain, service, 1); in check_service()
763 /* Request for info about my service */ in check_service()
1216 mdns_add_servicetype_ptr_answer(struct mdns_outpacket *reply, struct mdns_service *service) in mdns_add_servicetype_ptr_answer() argument
1219 mdns_build_service_domain(&service_type, service, 0); in mdns_add_servicetype_ptr_answer()
1221 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Responding with service type PTR record\n")); in mdns_add_servicetype_ptr_answer()
1222 …return mdns_add_answer(reply, &service_dnssd, DNS_RRTYPE_PTR, DNS_RRCLASS_IN, 0, service->dns_ttl,… in mdns_add_servicetype_ptr_answer()
1227 mdns_add_servicename_ptr_answer(struct mdns_outpacket *reply, struct mdns_service *service) in mdns_add_servicename_ptr_answer() argument
1230 mdns_build_service_domain(&service_type, service, 0); in mdns_add_servicename_ptr_answer()
1231 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_servicename_ptr_answer()
1232 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Responding with service name PTR record\n")); in mdns_add_servicename_ptr_answer()
1233 …return mdns_add_answer(reply, &service_type, DNS_RRTYPE_PTR, DNS_RRCLASS_IN, 0, service->dns_ttl, … in mdns_add_servicename_ptr_answer()
1238 …uct mdns_outpacket *reply, u16_t cache_flush, struct mdns_host *mdns, struct mdns_service *service) in mdns_add_srv_answer() argument
1242 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_srv_answer()
1253 srvdata[2] = lwip_htons(service->port); in mdns_add_srv_answer()
1255 …add_answer(reply, &service_instance, DNS_RRTYPE_SRV, DNS_RRCLASS_IN, cache_flush, service->dns_ttl, in mdns_add_srv_answer()
1261 mdns_add_txt_answer(struct mdns_outpacket *reply, u16_t cache_flush, struct mdns_service *service) in mdns_add_txt_answer() argument
1264 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_txt_answer()
1265 mdns_prepare_txtdata(service); in mdns_add_txt_answer()
1267 …add_answer(reply, &service_instance, DNS_RRTYPE_TXT, DNS_RRCLASS_IN, cache_flush, service->dns_ttl, in mdns_add_txt_answer()
1268 (u8_t *) &service->txtdata.name, service->txtdata.length, NULL); in mdns_add_txt_answer()
1311 struct mdns_service *service; in mdns_send_outpacket() local
1364 /* Write answers to service questions */ in mdns_send_outpacket()
1366 service = mdns->services[i]; in mdns_send_outpacket()
1367 if (!service) { in mdns_send_outpacket()
1372 res = mdns_add_servicetype_ptr_answer(outpkt, service); in mdns_send_outpacket()
1380 res = mdns_add_servicename_ptr_answer(outpkt, service); in mdns_send_outpacket()
1388 res = mdns_add_srv_answer(outpkt, outpkt->cache_flush, mdns, service); in mdns_send_outpacket()
1396 res = mdns_add_txt_answer(outpkt, outpkt->cache_flush, service); in mdns_send_outpacket()
1413 service = mdns->services[i]; in mdns_send_outpacket()
1414 if (!service) { in mdns_send_outpacket()
1419 /* Our service instance requested, include SRV & TXT in mdns_send_outpacket()
1422 res = mdns_add_srv_answer(outpkt, outpkt->cache_flush, mdns, service); in mdns_send_outpacket()
1430 res = mdns_add_txt_answer(outpkt, outpkt->cache_flush, service); in mdns_send_outpacket()
1438 /* If service instance, SRV, record or an IP address is requested, in mdns_send_outpacket()
1564 struct mdns_service *service; in mdns_handle_question() local
1601 service = mdns->services[i]; in mdns_handle_question()
1602 if (!service) { in mdns_handle_question()
1605 reply.serv_replies[i] |= check_service(service, &q.info); in mdns_handle_question()
1692 service = mdns->services[i]; in mdns_handle_question()
1693 if (!service) { in mdns_handle_question()
1696 match = reply.serv_replies[i] & check_service(service, &ans.info); in mdns_handle_question()
1697 if (match && (ans.ttl > (service->dns_ttl / 2))) { in mdns_handle_question()
1709 res = mdns_build_service_domain(&my_ans, service, 0); in mdns_handle_question()
1711 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Skipping known answer: service type PTR\n")); in mdns_handle_question()
1716 res = mdns_build_service_domain(&my_ans, service, 1); in mdns_handle_question()
1718 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Skipping known answer: service name PTR\n")); in mdns_handle_question()
1743 if (len != sizeof(field16) || lwip_ntohs(field16) != service->port) { in mdns_handle_question()
1757 mdns_prepare_txtdata(service); in mdns_handle_question()
1758 if (service->txtdata.length == ans.rd_length && in mdns_handle_question()
1759 pbuf_memcmp(pkt->pbuf, ans.rd_offset, service->txtdata.name, ans.rd_length) == 0) { in mdns_handle_question()
1827 struct mdns_service* service = mdns->services[i]; in mdns_handle_response() local
1828 if (!service) { in mdns_handle_response()
1831 res = mdns_build_service_domain(&domain, service, 1); in mdns_handle_response()
1833 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Probe response matches service domain!")); in mdns_handle_response()
1969 struct mdns_service* service = mdns->services[i]; in mdns_send_probe() local
1970 if (!service) { in mdns_send_probe()
1973 mdns_build_service_domain(&domain, service, 1); in mdns_send_probe()
2127 struct mdns_service *service = mdns->services[i]; in mdns_resp_remove_netif() local
2128 if (service) { in mdns_resp_remove_netif()
2129 mem_free(service); in mdns_resp_remove_netif()
2178 * Add a service to the selected network interface.
2179 * @param netif The network interface to publish this service on
2180 * @param name The name of the service
2181 * @param service The service type, like "_http"
2182 * @param proto The service protocol, DNSSD_PROTO_TCP for TCP ("_tcp") and DNSSD_PROTO_UDP
2184 * @param port The port the service listens to
2185 * @param dns_ttl Validity time in seconds to send out for service data in DNS replies
2189 * @return service_id if the service was added to the netif, an err_t otherwise
2192 mdns_resp_add_service(struct netif *netif, const char *name, const char *service, enum mdns_sd_prot… in mdns_resp_add_service() argument
2205 …LWIP_ERROR("mdns_resp_add_service: Service too long", (strlen(service) <= MDNS_LABEL_MAXLEN), retu… in mdns_resp_add_service()
2214 …LWIP_ERROR("mdns_resp_add_service: Service list full (increase MDNS_MAX_SERVICES)", (slot >= 0), r… in mdns_resp_add_service()
2220 MEMCPY(&srv->service, service, LWIP_MIN(MDNS_LABEL_MAXLEN, strlen(service))); in mdns_resp_add_service()
2236 * Delete a service on the selected network interface.
2237 * @param netif The network interface on which service should be removed
2238 * @param slot The service slot number returned by mdns_resp_add_service
2239 * @return ERR_OK if the service was removed from the netif, an err_t otherwise
2249 …LWIP_ERROR("mdns_resp_del_service: Invalid Service ID", (slot >= 0) && (slot < MDNS_MAX_SERVICES),… in mdns_resp_del_service()
2250 …LWIP_ERROR("mdns_resp_del_service: Invalid Service ID", (mdns->services[slot] != NULL), return ERR… in mdns_resp_del_service()
2260 * Update name for an MDNS service.
2262 * @param slot The service slot number returned by mdns_resp_add_service
2263 * @param name The new name for the service
2264 * @return ERR_OK if name could be set on service, an err_t otherwise
2279 …LWIP_ERROR("mdns_resp_rename_service: Invalid Service ID", (slot >= 0) && (slot < MDNS_MAX_SERVICE… in mdns_resp_rename_service()
2280 …LWIP_ERROR("mdns_resp_rename_service: Invalid Service ID", (mdns->services[slot] != NULL), return … in mdns_resp_rename_service()
2296 * @param service The service provided to the get_txt callback
2302 mdns_resp_add_service_txtitem(struct mdns_service *service, const char *txt, u8_t txt_len) in mdns_resp_add_service_txtitem() argument
2305 LWIP_ASSERT("mdns_resp_add_service_txtitem: service != NULL", service); in mdns_resp_add_service_txtitem()
2308 return mdns_domain_add_label(&service->txtdata, txt, txt_len); in mdns_resp_add_service_txtitem()