• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/netinet6/

Lines Matching defs:pr

88 prison_restrict_ip6(struct prison *pr, struct in6_addr *newip6)
93 ppr = pr->pr_parent;
94 if (!(pr->pr_flags & PR_IP6_USER)) {
96 if (pr->pr_ip6s < ppr->pr_ip6s) {
113 free(pr->pr_ip6, M_PRISON);
114 pr->pr_ip6 = newip6;
115 pr->pr_ip6s = ppr->pr_ip6s;
119 pr->pr_ip6s = ppr->pr_ip6s;
120 if (pr->pr_ip6s > 0)
121 bcopy(ppr->pr_ip6, pr->pr_ip6,
122 pr->pr_ip6s * sizeof(*newip6));
123 else if (pr->pr_ip6 != NULL) {
124 free(pr->pr_ip6, M_PRISON);
125 pr->pr_ip6 = NULL;
127 } else if (pr->pr_ip6s > 0) {
130 if (IN6_ARE_ADDR_EQUAL(&pr->pr_ip6[0],
136 bcopy(pr->pr_ip6 + 1, pr->pr_ip6,
137 --pr->pr_ip6s * sizeof(*pr->pr_ip6));
140 for (ij = 1; ii < pr->pr_ip6s; ) {
141 if (IN6_ARE_ADDR_EQUAL(&pr->pr_ip6[ii],
147 prison_qcmp_v6(&pr->pr_ip6[ii], &ppr->pr_ip6[ij])) {
149 bcopy(pr->pr_ip6 + ii + 1, pr->pr_ip6 + ii,
150 (--pr->pr_ip6s - ii) * sizeof(*pr->pr_ip6));
161 if (pr->pr_ip6s == 0) {
162 free(pr->pr_ip6, M_PRISON);
163 pr->pr_ip6 = NULL;
180 struct prison *pr;
185 pr = cred->cr_prison;
186 if (!(pr->pr_flags & PR_IP6))
188 mtx_lock(&pr->pr_mtx);
189 if (!(pr->pr_flags & PR_IP6)) {
190 mtx_unlock(&pr->pr_mtx);
193 if (pr->pr_ip6 == NULL) {
194 mtx_unlock(&pr->pr_mtx);
198 bcopy(&pr->pr_ip6[0], ia6, sizeof(struct in6_addr));
199 mtx_unlock(&pr->pr_mtx);
213 struct prison *pr;
223 pr = cred->cr_prison;
224 if (pr->pr_flags & PR_IP6_SADDRSEL)
276 struct prison *pr;
282 pr = cred->cr_prison;
283 if (!(pr->pr_flags & PR_IP6))
285 mtx_lock(&pr->pr_mtx);
286 if (!(pr->pr_flags & PR_IP6)) {
287 mtx_unlock(&pr->pr_mtx);
290 if (pr->pr_ip6 == NULL) {
291 mtx_unlock(&pr->pr_mtx);
300 if (v6only != 0 && pr->pr_ip6s == 1)
301 bcopy(&pr->pr_ip6[0], ia6, sizeof(struct in6_addr));
302 mtx_unlock(&pr->pr_mtx);
306 error = prison_check_ip6_locked(pr, ia6);
308 bcopy(&pr->pr_ip6[0], ia6, sizeof(struct in6_addr));
312 mtx_unlock(&pr->pr_mtx);
324 struct prison *pr;
329 pr = cred->cr_prison;
330 if (!(pr->pr_flags & PR_IP6))
332 mtx_lock(&pr->pr_mtx);
333 if (!(pr->pr_flags & PR_IP6)) {
334 mtx_unlock(&pr->pr_mtx);
337 if (pr->pr_ip6 == NULL) {
338 mtx_unlock(&pr->pr_mtx);
343 prison_check_ip6_locked(pr, ia6) == EADDRNOTAVAIL) {
344 bcopy(&pr->pr_ip6[0], ia6, sizeof(struct in6_addr));
345 mtx_unlock(&pr->pr_mtx);
352 mtx_unlock(&pr->pr_mtx);
363 prison_check_ip6_locked(const struct prison *pr, const struct in6_addr *ia6)
370 if (IN6_ARE_ADDR_EQUAL(&pr->pr_ip6[0], ia6))
377 z = pr->pr_ip6s - 2;
380 d = prison_qcmp_v6(&pr->pr_ip6[i+1], ia6);
395 struct prison *pr;
401 pr = cred->cr_prison;
402 if (!(pr->pr_flags & PR_IP6))
404 mtx_lock(&pr->pr_mtx);
405 if (!(pr->pr_flags & PR_IP6)) {
406 mtx_unlock(&pr->pr_mtx);
409 if (pr->pr_ip6 == NULL) {
410 mtx_unlock(&pr->pr_mtx);
414 error = prison_check_ip6_locked(pr, ia6);
415 mtx_unlock(&pr->pr_mtx);