Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/ip6_output.c
Show First 20 Lines • Show All 1,899 Lines • ▼ Show 20 Lines | #undef OPTSET | ||||
break; | break; | ||||
} | } | ||||
INP_WUNLOCK(in6p); | INP_WUNLOCK(in6p); | ||||
break; | break; | ||||
#if defined(IPSEC) || defined(IPSEC_SUPPORT) | #if defined(IPSEC) || defined(IPSEC_SUPPORT) | ||||
case IPV6_IPSEC_POLICY: | case IPV6_IPSEC_POLICY: | ||||
if (IPSEC_ENABLED(ipv6)) { | if (IPSEC_ENABLED(ipv6)) { | ||||
INP_WLOCK(in6p); | |||||
error = IPSEC_PCBCTL(ipv6, in6p, sopt); | error = IPSEC_PCBCTL(ipv6, in6p, sopt); | ||||
if (!error) | |||||
INP_WUNLOCK(in6p); | |||||
break; | break; | ||||
} | } | ||||
/* FALLTHROUGH */ | /* FALLTHROUGH */ | ||||
#endif /* IPSEC */ | #endif /* IPSEC */ | ||||
default: | default: | ||||
error = ENOPROTOOPT; | error = ENOPROTOOPT; | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 218 Lines • ▼ Show 20 Lines | #endif | ||||
case IPV6_MULTICAST_LOOP: | case IPV6_MULTICAST_LOOP: | ||||
case IPV6_MSFILTER: | case IPV6_MSFILTER: | ||||
error = ip6_getmoptions(in6p, sopt); | error = ip6_getmoptions(in6p, sopt); | ||||
break; | break; | ||||
#if defined(IPSEC) || defined(IPSEC_SUPPORT) | #if defined(IPSEC) || defined(IPSEC_SUPPORT) | ||||
case IPV6_IPSEC_POLICY: | case IPV6_IPSEC_POLICY: | ||||
if (IPSEC_ENABLED(ipv6)) { | if (IPSEC_ENABLED(ipv6)) { | ||||
INP_WLOCK(in6p); | |||||
error = IPSEC_PCBCTL(ipv6, in6p, sopt); | error = IPSEC_PCBCTL(ipv6, in6p, sopt); | ||||
INP_WUNLOCK(in6p); | |||||
break; | break; | ||||
} | } | ||||
/* FALLTHROUGH */ | /* FALLTHROUGH */ | ||||
#endif /* IPSEC */ | #endif /* IPSEC */ | ||||
default: | default: | ||||
error = ENOPROTOOPT; | error = ENOPROTOOPT; | ||||
break; | break; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 949 Lines • Show Last 20 Lines |