MCPcopy Create free account
hub / github.com/F-Stack/f-stack / routename

Function routename

tools/route/route.c:583–712  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

581}
582
583static const char *
584routename(struct sockaddr *sa)
585{
586 struct sockaddr_dl *sdl;
587 const char *cp;
588 int n;
589
590 if (!domain_initialized) {
591 domain_initialized = true;
592 if (gethostname(domain, MAXHOSTNAMELEN) == 0 &&
593 (cp = strchr(domain, '.'))) {
594 domain[MAXHOSTNAMELEN] = '\0';
595 (void)strcpy(domain, cp + 1);
596 } else
597 domain[0] = '\0';
598 }
599
600 /* If the address is zero-filled, use "default". */
601 if (sa->sa_len == 0 && nflag == 0)
602 return ("default");
603#if defined(INET) || defined(INET6)
604 switch (sa->sa_family) {
605#ifdef INET
606 case AF_INET:
607 /* If the address is zero-filled, use "default". */
608 if (nflag == 0 &&
609 ((struct sockaddr_in *)(void *)sa)->sin_addr.s_addr ==
610 INADDR_ANY)
611 return("default");
612 break;
613#endif
614#ifdef INET6
615 case AF_INET6:
616 /* If the address is zero-filled, use "default". */
617 if (nflag == 0 &&
618 IN6_IS_ADDR_UNSPECIFIED(&((struct sockaddr_in6 *)(void *)sa)->sin6_addr))
619 return("default");
620 break;
621#endif
622 }
623#endif
624
625 switch (sa->sa_family) {
626#if defined(INET) || defined(INET6)
627#ifdef INET
628 case AF_INET:
629#endif
630#ifdef INET6
631 case AF_INET6:
632#endif
633 {
634 struct sockaddr_storage ss;
635 int error;
636 char *p;
637
638 memset(&ss, 0, sizeof(ss));
639 if (sa->sa_len == 0)
640 ss.ss_family = sa->sa_family;

Callers 3

flushroutes_fibFunction · 0.70
print_getmsgFunction · 0.70
pmsg_addrsFunction · 0.70

Calls 11

strchrFunction · 0.85
memsetFunction · 0.85
inet_ntopFunction · 0.85
gai_strerrorFunction · 0.85
strncpyFunction · 0.85
strcmpFunction · 0.85
snprintfFunction · 0.85
link_ntoaFunction · 0.85
sprintfFunction · 0.85
gethostnameFunction · 0.50
memcpyFunction · 0.50

Tested by

no test coverage detected