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

Function sctp_cmpaddr

freebsd/netinet/sctputil.c:4650–4690  ·  view source on GitHub ↗

* are the two addresses the same? currently a "scopeless" check returns: 1 * if same, 0 if not */

Source from the content-addressed store, hash-verified

4648 * if same, 0 if not
4649 */
4650int
4651sctp_cmpaddr(struct sockaddr *sa1, struct sockaddr *sa2)
4652{
4653
4654 /* must be valid */
4655 if (sa1 == NULL || sa2 == NULL)
4656 return (0);
4657
4658 /* must be the same family */
4659 if (sa1->sa_family != sa2->sa_family)
4660 return (0);
4661
4662 switch (sa1->sa_family) {
4663#ifdef INET6
4664 case AF_INET6:
4665 {
4666 /* IPv6 addresses */
4667 struct sockaddr_in6 *sin6_1, *sin6_2;
4668
4669 sin6_1 = (struct sockaddr_in6 *)sa1;
4670 sin6_2 = (struct sockaddr_in6 *)sa2;
4671 return (SCTP6_ARE_ADDR_EQUAL(sin6_1,
4672 sin6_2));
4673 }
4674#endif
4675#ifdef INET
4676 case AF_INET:
4677 {
4678 /* IPv4 addresses */
4679 struct sockaddr_in *sin_1, *sin_2;
4680
4681 sin_1 = (struct sockaddr_in *)sa1;
4682 sin_2 = (struct sockaddr_in *)sa2;
4683 return (sin_1->sin_addr.s_addr == sin_2->sin_addr.s_addr);
4684 }
4685#endif
4686 default:
4687 /* we don't do these... */
4688 return (0);
4689 }
4690}
4691
4692void
4693sctp_print_address(struct sockaddr *sa)

Callers 6

sctp_v6src_match_nexthopFunction · 0.85
sctp_findnetFunction · 0.85
sctp_del_remote_addrFunction · 0.85

Calls 1

SCTP6_ARE_ADDR_EQUALFunction · 0.85

Tested by

no test coverage detected