accf_data.c (66798) | accf_data.c (95552) |
---|---|
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 * | 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 66798 2000-10-07 23:15:17Z alfred $ | 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 | 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(); |
|
59 if (!soreadable(so)) { | 60 if (!soreadable(so)) { |
61 SIGIO_SUNLOCK(); |
|
60 return; 61 } 62 63 so->so_upcall = NULL; 64 so->so_rcv.sb_flags &= ~SB_UPCALL; | 62 return; 63 } 64 65 so->so_upcall = NULL; 66 so->so_rcv.sb_flags &= ~SB_UPCALL; |
65 soisconnected(so); | 67 soisconnected_locked(so); 68 SIGIO_SUNLOCK(); |
66 return; 67} | 69 return; 70} |