Lines Matching full:service

9  * RFC 6763 - DNS-Based Service Discovery\n
129 /* Lookup for service types */
131 /* Lookup for instances of service */
133 /* Lookup for location of service instance */
135 /* Lookup for text info on service instance */
143 /** Description of a service */
147 /** Name of service, like 'myweb' */
149 /** Type of service, like '_http' */
150 char service[MDNS_LABEL_MAXLEN + 1]; member
159 /** Port of the service */
234 /* Reply bitmask per service */
438 * @param service The service to build TXT record for
441 mdns_prepare_txtdata(struct mdns_service *service) in mdns_prepare_txtdata() argument
443 memset(&service->txtdata, 0, sizeof(struct mdns_domain)); in mdns_prepare_txtdata()
444 if (service->txt_fn) { in mdns_prepare_txtdata()
445 service->txt_fn(service, service->txt_userdata); in mdns_prepare_txtdata()
578 * Build domain name for a service
580 * @param service The service struct, containing service name, type and protocol
581 * @param include_name Whether to include the service name in the domain
582 * @return ERR_OK if domain was written. If service name is included,
587 mdns_build_service_domain(struct mdns_domain *domain, struct mdns_service *service, int include_nam… in mdns_build_service_domain() argument
592 res = mdns_domain_add_label(domain, service->name, (u8_t)strlen(service->name)); in mdns_build_service_domain()
595 res = mdns_domain_add_label(domain, service->service, (u8_t)strlen(service->service)); in mdns_build_service_domain()
597 …res = mdns_domain_add_label(domain, dnssd_protos[service->proto], (u8_t)strlen(dnssd_protos[servic… in mdns_build_service_domain()
672 * Check which replies we should send for a service based on question
673 * @param service A registered MDNS service
678 check_service(struct mdns_service *service, struct mdns_rr_info *rr) in check_service() argument
692 /* Request for all service types */ in check_service()
696 res = mdns_build_service_domain(&mydomain, service, 0); in check_service()
699 /* Request for the instance of my service */ in check_service()
703 res = mdns_build_service_domain(&mydomain, service, 1); in check_service()
705 /* Request for info about my service */ in check_service()
1158 mdns_add_servicetype_ptr_answer(struct mdns_outpacket *reply, struct mdns_service *service) in mdns_add_servicetype_ptr_answer() argument
1161 mdns_build_service_domain(&service_type, service, 0); in mdns_add_servicetype_ptr_answer()
1163 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Responding with service type PTR record\n")); in mdns_add_servicetype_ptr_answer()
1164 …return mdns_add_answer(reply, &service_dnssd, DNS_RRTYPE_PTR, DNS_RRCLASS_IN, 0, service->dns_ttl,… in mdns_add_servicetype_ptr_answer()
1169 mdns_add_servicename_ptr_answer(struct mdns_outpacket *reply, struct mdns_service *service) in mdns_add_servicename_ptr_answer() argument
1172 mdns_build_service_domain(&service_type, service, 0); in mdns_add_servicename_ptr_answer()
1173 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_servicename_ptr_answer()
1174 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Responding with service name PTR record\n")); in mdns_add_servicename_ptr_answer()
1175 …return mdns_add_answer(reply, &service_type, DNS_RRTYPE_PTR, DNS_RRCLASS_IN, 0, service->dns_ttl, … in mdns_add_servicename_ptr_answer()
1180 …uct mdns_outpacket *reply, u16_t cache_flush, struct mdns_host *mdns, struct mdns_service *service) in mdns_add_srv_answer() argument
1184 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_srv_answer()
1195 srvdata[2] = lwip_htons(service->port); in mdns_add_srv_answer()
1197 …add_answer(reply, &service_instance, DNS_RRTYPE_SRV, DNS_RRCLASS_IN, cache_flush, service->dns_ttl, in mdns_add_srv_answer()
1203 mdns_add_txt_answer(struct mdns_outpacket *reply, u16_t cache_flush, struct mdns_service *service) in mdns_add_txt_answer() argument
1206 mdns_build_service_domain(&service_instance, service, 1); in mdns_add_txt_answer()
1207 mdns_prepare_txtdata(service); in mdns_add_txt_answer()
1209 …add_answer(reply, &service_instance, DNS_RRTYPE_TXT, DNS_RRCLASS_IN, cache_flush, service->dns_ttl, in mdns_add_txt_answer()
1210 (u8_t *) &service->txtdata.name, service->txtdata.length, NULL); in mdns_add_txt_answer()
1253 struct mdns_service *service; in mdns_send_outpacket() local
1305 /* Write answers to service questions */ in mdns_send_outpacket()
1307 service = mdns->services[i]; in mdns_send_outpacket()
1308 if (!service) { in mdns_send_outpacket()
1313 res = mdns_add_servicetype_ptr_answer(outpkt, service); in mdns_send_outpacket()
1321 res = mdns_add_servicename_ptr_answer(outpkt, service); in mdns_send_outpacket()
1329 res = mdns_add_srv_answer(outpkt, outpkt->cache_flush, mdns, service); in mdns_send_outpacket()
1337 res = mdns_add_txt_answer(outpkt, outpkt->cache_flush, service); in mdns_send_outpacket()
1347 service = mdns->services[i]; in mdns_send_outpacket()
1348 if (!service) { in mdns_send_outpacket()
1353 /* Our service instance requested, include SRV & TXT in mdns_send_outpacket()
1356 res = mdns_add_srv_answer(outpkt, outpkt->cache_flush, mdns, service); in mdns_send_outpacket()
1364 res = mdns_add_txt_answer(outpkt, outpkt->cache_flush, service); in mdns_send_outpacket()
1372 /* If service instance, SRV, record or an IP address is requested, in mdns_send_outpacket()
1496 struct mdns_service *service; in mdns_handle_question() local
1527 service = mdns->services[i]; in mdns_handle_question()
1528 if (!service) { in mdns_handle_question()
1531 reply.serv_replies[i] |= check_service(service, &q.info); in mdns_handle_question()
1617 service = mdns->services[i]; in mdns_handle_question()
1618 if (!service) { in mdns_handle_question()
1621 match = reply.serv_replies[i] & check_service(service, &ans.info); in mdns_handle_question()
1622 if (match && (ans.ttl > (service->dns_ttl / 2))) { in mdns_handle_question()
1634 res = mdns_build_service_domain(&my_ans, service, 0); in mdns_handle_question()
1636 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Skipping known answer: service type PTR\n")); in mdns_handle_question()
1641 res = mdns_build_service_domain(&my_ans, service, 1); in mdns_handle_question()
1643 LWIP_DEBUGF(MDNS_DEBUG, ("MDNS: Skipping known answer: service name PTR\n")); in mdns_handle_question()
1668 if (len != sizeof(field16) || lwip_ntohs(field16) != service->port) { in mdns_handle_question()
1682 mdns_prepare_txtdata(service); in mdns_handle_question()
1683 if (service->txtdata.length == ans.rd_length && in mdns_handle_question()
1684 pbuf_memcmp(pkt->pbuf, ans.rd_offset, service->txtdata.name, ans.rd_length) == 0) { in mdns_handle_question()
1926 struct mdns_service *service = mdns->services[i]; in mdns_resp_remove_netif() local
1927 if (service) { in mdns_resp_remove_netif()
1928 mem_free(service); in mdns_resp_remove_netif()
1947 * Add a service to the selected network interface.
1948 * @param netif The network interface to publish this service on
1949 * @param name The name of the service
1950 * @param service The service type, like "_http"
1951 * @param proto The service protocol, DNSSD_PROTO_TCP for TCP ("_tcp") and DNSSD_PROTO_UDP
1953 * @param port The port the service listens to
1954 * @param dns_ttl Validity time in seconds to send out for service data in DNS replies
1958 * @return ERR_OK if the service was added to the netif, an err_t otherwise
1961 mdns_resp_add_service(struct netif *netif, const char *name, const char *service, enum mdns_sd_prot… in mdns_resp_add_service() argument
1973 …LWIP_ERROR("mdns_resp_add_service: Service too long", (strlen(service) <= MDNS_LABEL_MAXLEN), retu… in mdns_resp_add_service()
1982 …LWIP_ERROR("mdns_resp_add_service: Service list full (increase MDNS_MAX_SERVICES)", (slot >= 0), r… in mdns_resp_add_service()
1990 MEMCPY(&srv->service, service, LWIP_MIN(MDNS_LABEL_MAXLEN, strlen(service))); in mdns_resp_add_service()
2014 * @param service The service provided to the get_txt callback
2020 mdns_resp_add_service_txtitem(struct mdns_service *service, const char *txt, u8_t txt_len) in mdns_resp_add_service_txtitem() argument
2022 LWIP_ASSERT("mdns_resp_add_service_txtitem: service != NULL", service); in mdns_resp_add_service_txtitem()
2025 return mdns_domain_add_label(&service->txtdata, txt, txt_len); in mdns_resp_add_service_txtitem()