// PrintServiceInfo prints the service information to standard out // A real application might want to do something else with the information static void PrintServiceInfo(SearcherServices *services) { OTLink *link = OTReverseList(OTLIFOStealList(&services->serviceinfolist)); while (link) { linkedServiceInfo *s = OTGetLinkObject(link, linkedServiceInfo, link); if (!services->headerPrinted) { printf("%-55s Type Domain Target Host IP Address Port Info\n", "Name"); services->headerPrinted = true; } if (s->dom) { if (s->add) printf("%-55s available for browsing\n", s->domn); else printf("%-55s no longer available for browsing\n", s->domn); } else { char ip[16]; unsigned char *p = (unsigned char *)&s->address; sprintf(ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); printf("%-55s %-16s %-14s ", s->name, s->type, s->domn); if (s->add) printf("%-15s %-15s %5d %s\n", s->host, ip, mDNSVal16(s->notAnIntPort), s->text); else printf("Removed\n"); } link = link->fNext; OTFreeMem(s); } }
void EndpointHander::CleanupEndpoints(void) { OTLink *list = OTLIFOStealList(gDeadEndpoints); OTLink *link; EndpointHander *endpoint; while ((link = list) != NULL) { list = link->fNext; endpoint = OTGetLinkObject(link, EndpointHander, mLink); delete endpoint; } }
// PrintServiceInfo prints the service information to standard out // A real application might want to do something else with the information static void PrintServiceInfo(SearcherServices *services) { OTLink *link = OTReverseList(OTLIFOStealList(&services->serviceinfolist)); while (link) { linkedServiceInfo *ls = OTGetLinkObject(link, linkedServiceInfo, link); ServiceInfo *s = &ls->i; if (!services->headerPrinted) { printf("%-55s Type Domain IP Address Port Info\n", "Name"); services->headerPrinted = true; } if (ls->dom) { char c_dom[MAX_ESCAPED_DOMAIN_NAME]; ConvertDomainNameToCString(&s->name, c_dom); if (ls->add) printf("%-55s available for browsing\n", c_dom); else printf("%-55s no longer available for browsing\n", c_dom); } else { domainlabel name; domainname type, domain; char c_name[MAX_DOMAIN_LABEL+1], c_type[MAX_ESCAPED_DOMAIN_NAME], c_dom[MAX_ESCAPED_DOMAIN_NAME], c_ip[20]; DeconstructServiceName(&s->name, &name, &type, &domain); ConvertDomainLabelToCString_unescaped(&name, c_name); ConvertDomainNameToCString(&type, c_type); ConvertDomainNameToCString(&domain, c_dom); sprintf(c_ip, "%d.%d.%d.%d", s->ip.ip.v4.b[0], s->ip.ip.v4.b[1], s->ip.ip.v4.b[2], s->ip.ip.v4.b[3]); printf("%-55s %-16s %-14s ", c_name, c_type, c_dom); if (ls->add) printf("%-15s %5d %#s\n", c_ip, mDNSVal16(s->port), s->TXTinfo); else printf("Removed\n"); } link = link->fNext; OTFreeMem(ls); } }