| version 1.72, 2002/10/23 09:14:28 |
version 1.73, 2002/11/26 18:44:35 |
| Line 1476 filt_sordetach(struct knote *kn) |
|
| Line 1476 filt_sordetach(struct knote *kn) |
|
| struct socket *so; |
struct socket *so; |
| |
|
| so = (struct socket *)kn->kn_fp->f_data; |
so = (struct socket *)kn->kn_fp->f_data; |
| SLIST_REMOVE(&so->so_rcv.sb_sel.si_klist, kn, knote, kn_selnext); |
SLIST_REMOVE(&so->so_rcv.sb_sel.sel_klist, kn, knote, kn_selnext); |
| if (SLIST_EMPTY(&so->so_rcv.sb_sel.si_klist)) |
if (SLIST_EMPTY(&so->so_rcv.sb_sel.sel_klist)) |
| so->so_rcv.sb_flags &= ~SB_KNOTE; |
so->so_rcv.sb_flags &= ~SB_KNOTE; |
| } |
} |
| |
|
| Line 1507 filt_sowdetach(struct knote *kn) |
|
| Line 1507 filt_sowdetach(struct knote *kn) |
|
| struct socket *so; |
struct socket *so; |
| |
|
| so = (struct socket *)kn->kn_fp->f_data; |
so = (struct socket *)kn->kn_fp->f_data; |
| SLIST_REMOVE(&so->so_snd.sb_sel.si_klist, kn, knote, kn_selnext); |
SLIST_REMOVE(&so->so_snd.sb_sel.sel_klist, kn, knote, kn_selnext); |
| if (SLIST_EMPTY(&so->so_snd.sb_sel.si_klist)) |
if (SLIST_EMPTY(&so->so_snd.sb_sel.sel_klist)) |
| so->so_snd.sb_flags &= ~SB_KNOTE; |
so->so_snd.sb_flags &= ~SB_KNOTE; |
| } |
} |
| |
|
| Line 1580 soo_kqfilter(struct file *fp, struct kno |
|
| Line 1580 soo_kqfilter(struct file *fp, struct kno |
|
| default: |
default: |
| return (1); |
return (1); |
| } |
} |
| SLIST_INSERT_HEAD(&sb->sb_sel.si_klist, kn, kn_selnext); |
SLIST_INSERT_HEAD(&sb->sb_sel.sel_klist, kn, kn_selnext); |
| sb->sb_flags |= SB_KNOTE; |
sb->sb_flags |= SB_KNOTE; |
| return (0); |
return (0); |
| } |
} |