1/*-
2 * Copyright (c) 2000 Alfred Perlstein <alfred@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 9 unchanged lines hidden (view full) ---
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/netinet/accf_data.c 95552 2002-04-27 08:24:29Z tanimura $
27 */
28
29#define ACCEPT_FILTER_MOD
30
31#include <sys/param.h>
32#include <sys/sysctl.h>
33#include <sys/kernel.h>
34#include <sys/socketvar.h>
--- 16 unchanged lines hidden (view full) ---
51};
52
53DECLARE_MODULE(accf_data, accf_data_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
54
55static void
56sohasdata(struct socket *so, void *arg, int waitflag)
57{
58
59 SIGIO_SLOCK();
60 if (!soreadable(so)) {
61 SIGIO_SUNLOCK();
62 return;
63 }
64
65 so->so_upcall = NULL;
66 so->so_rcv.sb_flags &= ~SB_UPCALL;
67 soisconnected_locked(so);
68 SIGIO_SUNLOCK();
69 return;
70}
2 * Copyright (c) 2000 Alfred Perlstein <alfred@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 9 unchanged lines hidden (view full) ---
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/netinet/accf_data.c 95552 2002-04-27 08:24:29Z tanimura $
27 */
28
29#define ACCEPT_FILTER_MOD
30
31#include <sys/param.h>
32#include <sys/sysctl.h>
33#include <sys/kernel.h>
34#include <sys/socketvar.h>
--- 16 unchanged lines hidden (view full) ---
51};
52
53DECLARE_MODULE(accf_data, accf_data_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
54
55static void
56sohasdata(struct socket *so, void *arg, int waitflag)
57{
58
59 SIGIO_SLOCK();
60 if (!soreadable(so)) {
61 SIGIO_SUNLOCK();
62 return;
63 }
64
65 so->so_upcall = NULL;
66 so->so_rcv.sb_flags &= ~SB_UPCALL;
67 soisconnected_locked(so);
68 SIGIO_SUNLOCK();
69 return;
70}