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

Function key_sockaddrcmp

freebsd/netipsec/key.c:4299–4344  ·  view source on GitHub ↗

returns 0 on match */

Source from the content-addressed store, hash-verified

4297#define satosin6(s) ((const struct sockaddr_in6 *)s)
4298/* returns 0 on match */
4299int
4300key_sockaddrcmp(const struct sockaddr *sa1, const struct sockaddr *sa2,
4301 int port)
4302{
4303 if (sa1->sa_family != sa2->sa_family || sa1->sa_len != sa2->sa_len)
4304 return 1;
4305
4306 switch (sa1->sa_family) {
4307#ifdef INET
4308 case AF_INET:
4309 if (sa1->sa_len != sizeof(struct sockaddr_in))
4310 return 1;
4311 if (satosin(sa1)->sin_addr.s_addr !=
4312 satosin(sa2)->sin_addr.s_addr) {
4313 return 1;
4314 }
4315 if (port && satosin(sa1)->sin_port != satosin(sa2)->sin_port)
4316 return 1;
4317 break;
4318#endif
4319#ifdef INET6
4320 case AF_INET6:
4321 if (sa1->sa_len != sizeof(struct sockaddr_in6))
4322 return 1; /*EINVAL*/
4323 if (satosin6(sa1)->sin6_scope_id !=
4324 satosin6(sa2)->sin6_scope_id) {
4325 return 1;
4326 }
4327 if (!IN6_ARE_ADDR_EQUAL(&satosin6(sa1)->sin6_addr,
4328 &satosin6(sa2)->sin6_addr)) {
4329 return 1;
4330 }
4331 if (port &&
4332 satosin6(sa1)->sin6_port != satosin6(sa2)->sin6_port) {
4333 return 1;
4334 }
4335 break;
4336#endif
4337 default:
4338 if (bcmp(sa1, sa2, sa1->sa_len) != 0)
4339 return 1;
4340 break;
4341 }
4342
4343 return 0;
4344}
4345
4346/* returns 0 on match */
4347int

Callers 10

ipsec_if_inputFunction · 0.85
ipsec_srcaddrFunction · 0.85
ipsec_set_addressesFunction · 0.85
ipsec_check_historyFunction · 0.85
key_allocsa_tcpmd5Function · 0.85
key_allocsaFunction · 0.85
key_allocsa_tunnelFunction · 0.85
key_cmpsaidxFunction · 0.85
key_cmpspidx_exactlyFunction · 0.85
key_getsav_tcpmd5Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected