Lines Matching full:so
69 * Must be passed a malloc'd structure so we don't explode if the kld is
165 accept_filt_getopt(struct socket *so, struct sockopt *sopt) in accept_filt_getopt() argument
172 SOCK_LOCK(so); in accept_filt_getopt()
173 if (!SOLISTENING(so)) { in accept_filt_getopt()
177 if (so->sol_accept_filter == NULL) { in accept_filt_getopt()
181 strcpy(afap->af_name, so->sol_accept_filter->accf_name); in accept_filt_getopt()
182 if (so->sol_accept_filter_str != NULL) in accept_filt_getopt()
183 strcpy(afap->af_arg, so->sol_accept_filter_str); in accept_filt_getopt()
185 SOCK_UNLOCK(so); in accept_filt_getopt()
193 accept_filt_setopt(struct socket *so, struct sockopt *sopt) in accept_filt_setopt() argument
208 SOCK_LOCK(so); in accept_filt_setopt()
209 if (!SOLISTENING(so)) { in accept_filt_setopt()
210 SOCK_UNLOCK(so); in accept_filt_setopt()
213 if (so->sol_accept_filter == NULL) { in accept_filt_setopt()
214 SOCK_UNLOCK(so); in accept_filt_setopt()
217 if (so->sol_accept_filter->accf_destroy != NULL) in accept_filt_setopt()
218 so->sol_accept_filter->accf_destroy(so); in accept_filt_setopt()
219 if (so->sol_accept_filter_str != NULL) in accept_filt_setopt()
220 free(so->sol_accept_filter_str, M_ACCF); in accept_filt_setopt()
221 so->sol_accept_filter = NULL; in accept_filt_setopt()
222 so->sol_accept_filter_arg = NULL; in accept_filt_setopt()
223 so->sol_accept_filter_str = NULL; in accept_filt_setopt()
224 so->so_options &= ~SO_ACCEPTFILTER; in accept_filt_setopt()
231 TAILQ_FOREACH_SAFE(sp, &so->sol_incomp, so_list, sp1) { in accept_filt_setopt()
234 TAILQ_REMOVE(&so->sol_incomp, sp, so_list); in accept_filt_setopt()
235 TAILQ_INSERT_TAIL(&so->sol_comp, sp, so_list); in accept_filt_setopt()
238 so->sol_incqlen--; in accept_filt_setopt()
239 so->sol_qlen++; in accept_filt_setopt()
245 solisten_wakeup(so); /* unlocks */ in accept_filt_setopt()
247 SOLISTEN_UNLOCK(so); in accept_filt_setopt()
278 SOCK_LOCK(so); in accept_filt_setopt()
279 if (__predict_false(!SOLISTENING(so))) { in accept_filt_setopt()
283 if (__predict_false(so->sol_accept_filter != NULL)) { in accept_filt_setopt()
290 * socket mutex is held over this call, so create methods for filters in accept_filt_setopt()
294 accept_filter_arg = afp->accf_create(so, afap->af_arg); in accept_filt_setopt()
300 so->sol_accept_filter = afp; in accept_filt_setopt()
301 so->sol_accept_filter_arg = accept_filter_arg; in accept_filt_setopt()
302 so->sol_accept_filter_str = accept_filter_str; in accept_filt_setopt()
304 so->so_options |= SO_ACCEPTFILTER; in accept_filt_setopt()
306 SOCK_UNLOCK(so); in accept_filt_setopt()