| version 1.54.2.17, 2002/11/11 22:14:07 |
version 1.54.2.18, 2002/12/11 06:43:10 |
| Line 1341 sosetopt(struct socket *so, int level, i |
|
| Line 1341 sosetopt(struct socket *so, int level, i |
|
| goto bad; |
goto bad; |
| } |
} |
| tv = mtod(m, struct timeval *); |
tv = mtod(m, struct timeval *); |
| if (tv->tv_sec * hz + tv->tv_usec / tick > SHRT_MAX) { |
if (tv->tv_sec > (SHRT_MAX - tv->tv_usec / tick) / hz) { |
| error = EDOM; |
error = EDOM; |
| goto bad; |
goto bad; |
| } |
} |
| val = tv->tv_sec * hz + tv->tv_usec / tick; |
val = tv->tv_sec * hz + tv->tv_usec / tick; |
| |
if (val == 0 && tv->tv_usec != 0) |
| |
val = 1; |
| |
|
| switch (optname) { |
switch (optname) { |
| |
|
| Line 1476 filt_sordetach(struct knote *kn) |
|
| Line 1478 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 1509 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 1582 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); |
| } |
} |